jug status 'Active' 是什么意思,为什么它不等于请求的 proc 数量?

What does jug status 'Active' mean, and why does it not equal the number of procs requested?

我无法找到 'Active' 任务的状态。我使用的是 JUG 2.1.1,我没有看到该词出现在手册的任何地方,除了关于 'active-wait'.

的脚注

我正在使用 LSF 阵列 运行 大量(数十万)分钟长的单核作业。特别是,虽然工作确实从 'Ready' 移动到 'Complete',并且 none 被列为 'Failed' 或 'Waiting',但我在 status 的输出中没有列'Running'(我在工作示例中看到过),而是有一个名为 'Active' 的列。活动任务的数量各不相同,但对于具有 2000 个元素的 LSF 阵列,其数量在 800 到 950 之间。根据 LSF(bjobs -r 的输出),作业数组中的每个元素都显示状态 'RUN'。虽然我没有详尽地完成它,但手动 sshing 到一个节点我的一些工作已经着陆,然后 运行ning 'htop' 查看利用率显示了预期的进程数,每个进程固定一个可用的核心。可以想象,我的作业数组中有一些进程没有这样做,但是,因为我所做的相当于抽查。

Running == Active 是否用于 jug status 的输出?我是否没有使用大约 1100 个处理器,而我 none 却占用了名义上的单线程作业?

感谢您的投入。很乐意根据需要提供更多详细信息。

(jug 的作者在这里):它的意思是“现在 运行 的工作”。

如果您正在使用文件后端,并且同时有 运行 1,000 个作业,可能只是计数没有正确同步:因为 jug status 正在工作,一些作业可能是 运行,但它不会将它们视为 运行,因为在它开始列出锁和检查作业列表之间,它们已经完成而其他人开始。此外,锁列表在网络文件系统上可能不同步(实际创建锁应该无关紧要,但该过程要慢得多,我们不希望支付 jug status 的成本)。

对于 redis 后端,这应该不那么严重,顺便说一句。