如何在 SLURM 的数组作业中获取失败和完成的作业数
How to get count of failed and completed jobs in an array job of 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 列。然后将输出送入 sort
和 uniq
命令进行计数。
如果你真的需要两个单独的命令,你可以很容易地适应上面的一行。您可以将其设为脚本或 Bash 函数以便于使用。
如果您想要更详细的解决方案,可以查看 smanage
我正在 运行 使用 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 列。然后将输出送入 sort
和 uniq
命令进行计数。
如果你真的需要两个单独的命令,你可以很容易地适应上面的一行。您可以将其设为脚本或 Bash 函数以便于使用。
如果您想要更详细的解决方案,可以查看 smanage