После того, как я поставил в очередь отмененную работу, ее зависимая работа остается как DependencyNeverSatisfied, и даже зависимая работа завершена, ничего не происходит.Есть ли способ обновить состояние зависимого задания, если отмененное задание снова ставится в очередь?
Да, это довольно просто.Сбросьте зависимость с помощью scontrol
.
scontrol update jobid = [идентификатор зависимого задания] зависимость = после: [идентификатор заданного задания]
Я сделал это в качестве примера с версией Slurm 17.11:
$ sbatch --begin=now+60 --wrap="exit 1"
Submitted batch job 540912
$ sbatch --dependency=afterok:540912 --wrap=hostname
Submitted batch job 540913
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
540912 debug wrap marshall PD 0:00 1 (BeginTime)
540913 debug wrap marshall PD 0:00 1 (Dependency)
$ scancel 540912
$ scontrol requeue 540912
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
540912 debug wrap marshall PD 0:00 1 (BeginTime)
540913 debug wrap marshall PD 0:00 1 (DependencyNeverSatisfied)
На данный момент, я повторил вашу ситуацию.Задание 540912 было поставлено в очередь, а задание 540913 имеет причину "DependencyNeverSatisfied".
Теперь вы можете исправить это, введя scontrol update job
:
$ scontrol update jobid=540913 dependency=after:540912
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
540912 debug wrap marshall PD 0:00 1 (BeginTime)
540913 debug wrap marshall PD 0:00 1 (Dependency)
Состояние исправлено!После запуска задания также выполняется зависимое задание: вывод
$ scontrol update jobid=540912 starttime=now
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
540912 debug wrap marshall CG 0:00 1 v1
540913 debug wrap marshall PD 0:00 1 (Dependency)
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
squeue
пуст, поскольку задание уже выполнено.
Вы можете увидеть задания после их завершенияс sacct
:
$ sacct -j 540912,540913
JobID JobName Partition Account AllocCPUS State ExitCode
------------ ---------- ---------- ---------- ---------- ---------- --------
540912 wrap debug test 2 FAILED 1:0
540912.batch batch test 2 FAILED 1:0
540912.exte+ extern test 2 COMPLETED 0:0
540913 wrap debug test 2 COMPLETED 0:0
540913.batch batch test 2 COMPLETED 0:0
540913.exte+ extern test 2 COMPLETED 0:0