Aller au contenu principal

Exemples de scripts SLURM

Des exemples de scripts SLURM pour certains codes sont disponibles sur zeus dans le répertoire /share/doc/submission/:

jan.gmys@zeus-2:~$ ls /share/doc/submission/
abaqus cp2k dlpoly gaussian gromacs lammps matlab molpro namd polyrate R tensorflow theano vasp

Si vous disposez d'un cas test pour un module, ou qu'aucun exemple de soumission n'existe, n'hésitez pas à nous contacter pour que nous le créions.

Dans les exemples ci-dessous, il faut noter la différence entre les demandes pour les processus (MPI) et les threads (OpenMP) :

  • --ntasks-per-node : nombre de processus MPI
  • --cpus-per-task : nombre de threads OpenMP

Monocoeur

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --time=24:00:00
#SBATCH --job-name=my_serial_job
#SBATCH --mem=1536M

./my_program

Ce script lance un job appelé my_serial_job demandant 1 cœur sur 1 nœud avec un maximum de 1536 Mo de mémoire pour une durée de 24 heures.

Multi-noeud (MPI)

#!/bin/bash                                                                                                               
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=16
#SBATCH --time=48:00:00
#SBATCH --job-name=my_mpi_job
#SBATCH --mem=4096M

mpiexec ./my_program

Ce script lance un job appelé my_mpi_job demandant 16 cœurs sur 2 nœuds (donc 32 cœurs au total) avec un maximum de 4096 Mo de mémoire par nœud (donc 8 Go au total) pour une durée de 48 heures.

Multi-coeur (OpenMP)

#!/bin/bash                                                                                                               
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=8
#SBATCH --time=48:00:00
#SBATCH --job-name=my_openmp_job
#SBATCH --mem=4096M

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
./my_program

Ce script lance un job appelé my_openmp_job demandant 8 cœurs sur 1 nœuds avec un maximum de 4096 Mo de mémoire par nœud pour une durée de 48 heures.

SLURM_CPUS_PER_TASK is an environment variable that is set if the --cpus-per-task option is specified. A complete list of environment variables set by Slurm can be found here

MPI+OpenMP

#!/bin/bash                                                                                                               
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=4
#SBATCH --cpus-per-task=4
#SBATCH --time=48:00:00
#SBATCH --job-name=my_mpi_openmp_job
#SBATCH --mem=4096M

export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
mpiexec ./my_program

Ce script lance un job appelé my_mpi_openmp_job demandant 16 cœurs (4 processus mpi utilisant chacun 4 threads OpenMP) sur 2 nœuds (donc 32 cœurs au total) avec un maximum de 4096 Mo de mémoire par nœud (donc 8 Go au total) pour une durée de 48 heures.