Soumettre un job

Exemple de script SLURM

#!/bin/bash
#SBATCH --job-name=nom_du_job  # nom du job
#SBATCH --nodes=4              # demande de 4 noeuds
#SBATCH --ntasks=32            # demander 32 tâches MPI
#SBATCH --cpus-per-task=2      # demander 2 processeurs par tâche (pour de l'openMP par exemple)
#SBATCH --mem-per-cpu=2048     # demander 2 Go de RAM par CPU
#SBATCH -t 48:00:00            # limiter la simulation à 2 jours (temps réel, pas en temps cpu)
#SBATCH -p xeonv1              # utiliser la partition xeonv1

module load openmpi-x86_64
export OMP_NUM_THREADS=2
mpirun ./mon_executable_mpi > out

D’autres exemples sont disponibles là : /share/apps/common/Exemples_slurm/

N’hésitez pas à proposer vos exemples de job slurm dans le répertoire cité précédement..

Explications

Déclarer le shell à utiliser

#!/bin/bash

Nom du job

#SBATCH -J my_job

Sur combien de machines ? 3 ?

#SBATCH -N 3

Combien de processeurs ? 48 ?

#SBATCH -n 48

Si je veux 10 coeurs avec 2 threads par coeur (configurez OMP_NUM_THREADS=2)

#SBATCH -n 10 -c 2

Si je veux lancer 4 programmes par noeud sur 6 noeuds, pour un total de 24 processus

#SBATCH -N 6 --tasks-per-node=4

Combien de mémoire par noeud (en Mo)

#SBATCH --mem 2048

Combien de mémoire par processeurs (toujours en Mo)

#SBATCH --mem-per-cpu=512

Combien de temps maximum doit durer le calcul ? (ici 2 jours)

#SBATCH -t 48:00:00

Pour une durée de 10 minutes

#SBATCH -t 10

Pour 10 minutes et 20 secondes

#SBATCH -t 10:20

Pour 10 heures, 20minutes et 30 seconds

#SBATCH -t 10:20:30

Quelle partition utiliser ?

#SBATCH -p my_partition

Si je veux un noeud entier pour moi

#SBATCH --exclusive

Si je veux partager le noeud que je vais utiliser

#SBATCH --oversubcribe

Pour faire de la dépendance de job (à adapter)

sbatch --dependency=afterok:$SLURM_JOB_ID job2.sh 

Pour plus/d’autres informations

man sbatch