如何查看脚本使用的实际 CPU 数量?

How to see the actual number of CPUs a script used?

我想知道执行的脚本实际使用了多少预留 CPU,以便我可以优化 CPU 预留(不要过度预留 CPU)

例如,如果我执行了带有限制的脚本
srun -t 60 -c 4 --mem=10000 SOMECOMMAND
工作完成后,我可以获得工作的统计信息,例如
sacct -l -j JOBNR

从这些统计数据中,我看到 "MaxRSS" 作业的内存消耗,但我不知道如何查看使用的 CPU 的数量?

"AllocCPUS" 和请求的 CPUs "ReqTres" 总是相同的。我明白 CPUTime 给了我 Elapsed time * CPU 但这似乎总是 AllocCPUS * Elapsed time.

我是否遗漏了某些字段,或者我所有的工作实际上都使用了所有 CPU,或者这根本没有被 slurm 显示?

您要找的字段是TotalCPU。来自 sacct 联机帮助页:

TotalCPU The sum of the SystemCPU and UserCPU time used by the job or job step.

将其除以 CPUTime 得到效率。

CPUTime Formatted (Elapsed time * CPU) count used by a job or step.

Slurm 附带一个 Perl 脚本来计算名为 seff 的作业的效率(在 'contrib' 部分)。参见 here