如何在SLURM的数组作业中获取失败作业和已完成作业的计数



我正在使用slurm运行多个数组作业。对于给定的数组作业id,比如885881,我想列出失败和完成的作业数。类似这样的东西:

输入:

<some-command> -j 885881

输出:假设我们在数组中有200个作业。

count | status
120   | failed
80    | completed

其次,如果我能得到任务失败的唯一原因列表,那就太好了。

输入:

`<some-command> -j 885881`

输出:

count | reason
80    | OUT_OF_MEMORY
40    | TIMED_OUT

我相信sacct命令可以以某种方式获得这些结果,但不确定如何获得。

使用像这样的一行,您可以同时获得这两种信息

$ sacct -n -X -j 885881 -o state%20 | sort | uniq -c
16            COMPLETED
99               FAILED
32        OUT_OF_MEMORY
1              PENDING

sacct命令深入挖掘会计信息。-n -X参数用于简化输出并减少不必要的行数,而-o参数仅要求显示STATE列。然后,输出被馈送到进行计数的sortuniq命令中。

如果您真的需要两个单独的命令,您可以很容易地调整上面的一个命令行。为了便于使用,您可以将其作为脚本或Bash函数。

如果你想要一个更精细的解决方案,你可以看看smanage和atools

最新更新