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.