srun : Used to submit/initiate job or job step
Typically, srun is invoked from a SLURM job script but alternatively, srun can be run directly from the command, in which case srun will first create a resource allocation for running the parallel job (the salloc is implicit)
srun -N 1 -c 16 -p HPC_4_Days --time=1:00:00 --pty /bin/bash
This command will request 16 cores (
-c) of one Node (
-N) for 1h00 in the partition (
-p) HPC_4_Days. Please note that this is subject to Nodes availability, if no Nodes are available your request will be put in the queue waiting for resources.
The srun may also be executed inside a shell script.
#!/bin/bash #SBATCH -N 3 #SBATCH -p HPC_4_Days echo Starting job $SLURM_JOB_ID echo SLURM assigned me these nodes srun -l hostname
This batch job will result in the following output:
Starting job 51057 SLURM assigned me these nodes 0: wn054.b.incd.pt 1: wn055.b.incd.pt 2: wn057.b.incd.pt
The 3 allocated nodes are released after the
By default srun will use the
pmi2, but you may consult the full list of the available mpi types.
$ srun --mpi=list srun: MPI types are... srun: pmi2 srun: openmpi srun: none
To use a different mpi type e.g.
For more detailed information, please see man srun