Job dependencies

SLURM allows you to define different kind of dependencies between jobs, for instance to make sure that certain jobs will run only if another job succeeded/failed. The dependencies can be added to your job script using the following line:

#SBATCH --dependency=type:jobid1:jobid2:jobidN,type:jobid1:jobid2:jobidN,...

The job id should belong to an already submitted job, while type should be one of the following:

Type Meaning
after Start this job after the specified jobs have started
afterany Start this job after the specified jobs have completed
afternotokStart this job after the specified jobs have failed
afterok Start this job after the specified jobs have successfully completed
expand Use this job allocation to expand the job allocation of the specified job (just one, must be in the same partition and have a similar wall clock time)
singleton Start this job after all previously submitted jobs with the same name have completed
$ sbatch jobscript.sh
Submitted batch job 12345

$ sbatch jobscript.sh
Submitted batch job 12346

$ sbatch --dependency=afterok:12345:12346 jobscript.sh
Submitted batch job 12347