strigger
не является подходящим инструментом для достижения этой цели, он больше ориентирован на администраторов, чем на обычных пользователей. Только slurm user
может фактически установить триггеры (см. «Важное примечание» на справочной странице Strigger ).
В вашем случае вы должны отправить все три задания одновременно с установленными между ними зависимостями.
Например:
$ partA_ID=$(sbatch --parsable partA.sh)
$ partB_ID=$(sbatch --parsable --dependency=afterany:${partA_ID} partB.sh)
$ partC_ID=$(sbatch --parsable --dependency=afterany:${partB_ID} partC.sh)
При этом будут отправлены три массива заданий, но второй начнется только после завершения всех заданий в первом. А третий запускается только после завершения всех заданий во втором.
Альтернативой может быть
$ partA_ID=$(sbatch --parsable partA.sh)
$ partB_ID=$(sbatch --parsable --dependency=aftercorr:${partA_ID} partB.sh)
$ partC_ID=$(sbatch --parsable --dependency=aftercorr:${partB_ID} partC.sh)
Это передаст три массива заданий, но все задания второго не начнутся до тех пор, пока не закончится соответствующее задание в первом (то есть задание с таким же $SLURM_ARRAY_TASK_ID
). И все задания в третьем запускаются только после того, как соответствующее задание во втором завершено.
Подробнее см. Раздел --dependency
в справочной странице sbatch .