Nous donnons un exemple de script pour une application purement OpenMP déployant 36 threads.
L’argument --cpus-per-task=36
correspond au nombre de cœurs qui seront dédiés aux threads OpenMP. Ainsi le chiffre indiqué doit correspondre à la valeur des variables d'environnement OMP_NUM_THREADS
ou MKL_NUM_THREADS
Un script utilisant srun devient :
#!/bin/bash
#SBATCH -J script_art613
#SBATCH -N 1
#SBATCH -n 1
#SBATCH --threads-per-core=1
#SBATCH --cpus-per-task=36
workdir=${SLURM_SUBMIT_DIR}/JOB_${SLURM_JOBID}
mkdir ${workdir}
cd ${workdir}
cp $0 .
export SRUN_CPUS_PER_TASK=${SLURM_CPUS_PER_TASK}
export OMP_NUM_THREADS=36
export MKL_NUM_THREADS=$OMP_NUM_THREADS
srun $(placement) ./mon_appli.exe > output_${SLURM_JOBID}.log