如何在 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 列。然后将输出送入 sortuniq 命令进行计数。

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

如果您想要更详细的解决方案,可以查看 smanage