Вы можете отправить 5 заданий с параметром --dependency
, равным sbatch
.
На странице :
-d, -Зависимость = Отложить запуск этого задания до тех пор, пока указанные зависимости не будут выполнены.
В вашем случае это будет выглядеть так:
A=$(sbatch --parsable a.slurm)
B=$(sbatch --parsable --dependency=afterok:$A a.slurm)
C=$(sbatch --parsable --dependency=afterok:$B a.slurm)
D=$(sbatch --parsable --dependency=afterok:$B a.slurm)
E=$(sbatch --parsable --dependency=afterok:$D a.slurm)
Обратите внимание, что в таком случаеЗадания, зависящие от других заданий, будут оставаться в ожидании бесконечно, если зависимое задание не будет выполнено.Вам придется либо чистить их вручную, либо отправлять пустые задания для случаев, когда задание не выполняется с --dependency=afternotok:...
.
Если ваш рабочий процесс усложняется, может быть интересно исследовать использование рабочего процесса менеджеры такие как Боско или Фейерверк .