Using Variables in SLURM Jobs

Revision as of 20:02, 2 August 2021 by Moskalenko (talk | contribs) (Text replacement - "Category:SLURM" to "Category:Scheduler")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Passing variables into a job at submission

It is possible to pass variables into a SLURM job when you submit the job using the --export flag. For example to pass the value of the variables A and b into the job script named jobscript.sbatch you can use:

sbatch --export=A=5,b='test' jobscript.sbatch


sbatch --export=ALL,A=4,b='test' jobscript.sbatch

The first example will replace the user's environment with a new environment containing only values for A and b and the SLURM_* environment variables. The second will add the values for A and b to the existing environment.

Using variables to set SLURM job name and output files

SLURM does not support using variables in the #SBATCH lines within a job script. However, values passed from the command line have precedence over values defined in the job script. So the job name and output/error files can be passed on the sbatch command line:

sbatch --job-name=$A.$ --output=$A.$b.out --export=A=$A,b=$b jobscript.sbatch