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