我可以仅取消 slurm 中的阵列作业吗?

Ben*_*Ben 9 slurm

我有一堆作业作为 slurm 中的数组作业运行:

123_[1-500] PD my_job 0:00 me
123_2       R  my_job 9:99 me
123_3       R  my_job 9:99 me
123_4       R  my_job 9:99 me
123_5       R  my_job 9:99 me
...
Run Code Online (Sandbox Code Playgroud)

当我阅读scancel的手册页时,它似乎表明如果我执行scancel 123它将停止一切

我错了,还是有其他方法可以停止数组作业?我希望已经运行的作业完成,我只是不想再创建任何作业123,并且我真的不想弄清楚如果我不小心中途杀死了哪些作业需要重新运行

dam*_*ois 15

您可以scancel使用附加--state标签发出:

 scancel --state=PENDING 123
Run Code Online (Sandbox Code Playgroud)

或者,简而言之:

 scancel -t PD 123
Run Code Online (Sandbox Code Playgroud)

这只会取消 123 阵列中待处理的作业,而让已启动的作业继续运行。

  • 两者都可以是“--state=PENDING”或“--state PENDING”。这在许多 UNIX CLI 程序中很常见。有关详细信息,请参阅[此](https://unix.stackexchange.com/questions/573377/do-command-line-options-take-an-equals-sign- Between-option-name-and-value)。 (2认同)