【发布时间】:2023-03-23 23:25:01
【问题描述】:
我的目标是使用 slurm 依赖项构建管道并处理 slurm 作业崩溃的情况。
基于answer和guide第29节,建议使用scontrol requeue $jobID,这将重新排队已经取消的作业。
如果可以从提交脚本中检测到作业崩溃,以及 崩溃是随机的,您可以简单地使用
scontrol requeue $SLURM_JOB_ID重新排队作业,以便它再次运行。
在我重新排队取消的作业后,它的依赖作业仍为DependencyNeverSatisfied,甚至依赖作业完成也没有任何反应。如果取消的作业再次重新排队,有什么方法可以更新相关作业的状态?
示例:
$ sbatch run.sh
Submitted batch job 1
$ sbatch --dependency=aftercorr:1 run.sh
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
89 debug run.sh alper PD 0:00 1 (Dependency)
88 debug run.sh alper R 0:23 1 ebloc1
$ scancel 1
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
89 debug run.sh alper PD 0:00 1 (DependencyNeverSatisfied)
$ scontrol requeue 1
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
89 debug run.sh alper PD 0:00 1 (DependencyNeverSatisfied)
88 debug run.sh alper R 0:00 1 ebloc1
#After running job completed dependent job still remain as DependencyNeverSatisfied state:
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
89 debug run.sh alper PD 0:00 1 (DependencyNeverSatisfied)
【问题讨论】:
标签: slurm