Réservation des ressources. Deux exemples: Code MPI avec 5 tâches et 10GB de mémoire; Code Multithreaded avec 5 threads et 10GB de mémoire.
Code MPI. 5 tâches et 10GB de mémoire
Il faut OBLIGATOIREMENT que votre script comporte à minima les informations suivantes (notamment l’allocation mémoire en MB) :
#!/bin/bash
#SBATCH -J script_art610
#SBATCH -N 1
#SBATCH -n 5
#SBATCH --ntasks-per-node=5
#SBATCH --ntasks-per-core=1
#SBATCH --mem=10000
#SBATCH --time=01:00:00
#SBATCH --mail-user=toto [at] mail [dot] com
Dans cet exemple on réserve 10GB de mémoire sur 1 nœud pour lancer 5 tâches durant 1 heure.
Le paramètre time est optionnel mais très important, si on évalue correctement le temps d’exécution on a des chances de passer plus rapidement
La suite du script, en particulier les options de réservation est inchangée par rapport à ce qui est décrit ici
Code Multithreaded. 5 threads et 10GB de mémoire
Il faut OBLIGATOIREMENT que votre script comporte à minima les informations suivantes (notamment l’allocation mémoire en MB) :
#!/bin/bash
#SBATCH -J script_art610
#SBATCH -N 1
#SBATCH -n 1
#SBATCH --cpus-per-task=5
#SBATCH --threads-per-core=1
#SBATCH --mem=10000
#SBATCH --time=01:00:00
#SBATCH --mail-user=toto [at] mail [dot] com
# The following variable is REALLY IMPORTANT.
# If the variable is not set up all the threads will run on 1 core
export SRUN_CPUS_PER_TASK=${SLURM_CPUS_PER_TASK}
# If the code is OpenMP
export OMP_NUM_THREADS=5
Dans cet exemple on réserve 10GB de mémoire sur 1 nœud pour lancer 5 threads durant 1 heure.
Le paramètre time est optionnel mais très important, si on évalue correctement le temps d’exécution on a des chances de passer plus rapidement
La suite du script, en particulier les options de réservation est inchangée par rapport à ce qui est décrit ici