Script SLURM pour Application OpenMP ou Multithreadée

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

Voir aussi

FAQ

Questions fréquentes et messages d'erreurs