Workflow OpenMP

Code execution

Per default our hardware supports hyperthreading, allowing you start 192 processes on Cascade Lake machines (*96 partitions) and 80 on Skylake machines.

#!/bin/bash
#SBATCH -N 4
 
cpus_per_node=${SLURM_JOB_CPUS_PER_NODE%\(*}
export OMP_NUM_THREADS=$(($cpus_per_node*$SLURM_JOB_NUM_NODES))
 
# Run multi-threaded application ./yourexe
#!/bin/bash
#SBATCH -N 4
#SBATCH --tasks-per-node 96
 
tasks_per_node=${SLURM_TASKS_PER_NODE%\(*}
export OMP_NUM_THREADS=$(($tasks_per_node*$SLURM_JOB_NUM_NODES))
 
# Run multi-threaded application ./yourexe

Note that more than one node, as in the example set with -N 4 can only be used with a hybrid MPI-OpenMP job. For pure OpenMP programs, one ‘-N 1’ is meaningful.