Partition / global = 3 jobs max par utilisateur :
- small : exclusive, 2 jobs max, pas plus de 6 noeuds par jobs, max walltime par job 4H
- big : exclusive, 1 job max, pas plus de 13 noeuds par jobs, max walltime par job 2H
- full : exclusive, 1 job max, au moins 14 noeuds par jobs, max walltime par job 20H
- shared : non exclusive, 2 jobs max, pas plus de 1 GPU, 40 cpu et 256G ram par jobs, max walltime par job 4H
- visu : non exclusive, 1 job max, max 50Go RAM max 8 cpu par job, max walltime par job 4H
Afin de ne pas monopoliser l’ensemble des noeuds du cluster en journée :
- la partition "full" est activée du lundi au vendredi à 18H00
- la partition "full" est désactivée du lundi au jeudi ainsi que le dimanche à partir de 22H00
Lorsque la partition est désactivée, les soumissions sont possibles, mais les jobs sont suspendus jusqu’à l’activation de la partition. A la désactivation, les jobs RUNNING sur la partition "full" ne sont pas arrêtés.
Comment lancer un script sbatch ?
- Exemple script exclusif, 2 nœuds, 160 processeurs, le temps d'exécution moins de 4H
- Exemple script shared, 1 nœud, 40 processeurs, le temps d'exécution moins de 4H
Exemple script exclusif, 2 nœuds, 160 processeurs, le temps d'exécution moins de 4H
#!/bin/bash
#SBATCH -N 2
#SBATCH -n 160
#SBATCH --gres=gpu:2
#SBATCH -p small
#SBATCH --ntasks-per-node=80
#SBATCH --time=00:10:00
module purge
module load gnu/11.2.0
module load openmpi/gnu/4.1.4-gpu
nodeset -e ${SLURM_JOB_NODELIST} | tr ' ' '\n' > hostfile_${SLURM_JOBID}
mpirun -hostfile ./hostfile_${SLURM_JOBID} -n 160 ./exec
Exemple script shared, 1 nœud, 40 processeurs, le temps d'exécution moins de 4H
#!/bin/bash #SBATCH -N 1 #SBATCH -n 40 #SBATCH --gres=gpu:1 #SBATCH -p shared #SBATCH --ntasks-per-node=40 #SBATCH --time=00:10:00 module purge module load gnu/11.2.0 module load openmpi/gnu/4.1.4-gpu mpirun -n 40 ./exec
Informations sur le job
Il est possible pour visualiser simplement des information sur son job d'utiliser la commande "jobinfo <jobid>" :
jobinfo 6101
Job Infos :
Name : Test partition small - 4 noeuds
User : marteau
Partition : small
NNodes : 4
Nodes : turpancomp[0-3]
State : COMPLETED
Submit : 2023-04-14T16:08:02
Start : 2023-04-14T16:08:02
End : 2023-04-14T16:08:05
Reserved walltime : 04:00:00
Used walltime : 00:00:03
Used CPU time : 00:01.884
% User Computation) : 0 % (00:00.658)
% System (I/O) : 100.00 % (00:01.225)
Mem reserved : 2.0T
Max Mem used : 24M
Max Disk Write : 0
Max Disk Read : 0
Energy consumption : 1W.h
Utilisé à la fin d'un script sbatch, jobinfo donnera des informations très utilies si vous contactez le support :
#!/bin/bash
#SBATCH -N 2
#SBATCH -n 160
#SBATCH --gres=gpu:2
#SBATCH -p small
#SBATCH --ntasks-per-node=80
#SBATCH --time=00:10:00
# Chargement des modules
module purge
module load gnu/11.2.0
module load openmpi/gnu/4.1.4-gpu
# Preparation de l'environnement d'execution
myProjectDir=/users/sysadmin/marteau/slurm-scripts/mpi_hello_world_project
myExec="mpi_hello_world"
myWorkDir="${SLURM_JOBID}"
mkdir -p "${myWorkDir}"
cd "${myWorkDir}"
cp "${0}" .
cp ${myProjectDir}/${myExec} .
nodeset -e "${SLURM_JOB_NODELIST}" | tr ' ' '\n' > "hostfile_${SLURM_JOBID}"
mpirun -hostfile "./hostfile_${SLURM_JOBID}" -n 160 "./${myExec}"
jobinfo "${SLURM_JOBID}"
Ce qui affiche dans la sortie slurm (slurm-<jobid>.out):
[...]Job Infos : Name : partition-small-jobinfo.sbatch User : marteau Partition : small NNodes : 2 Nodes : turpancomp[0-1] State : RUNNING Submit : 2023-04-17T17:58:37 Start : 2023-04-17T17:58:37 End : Unknown Reserved walltime : 00:10:00 Used walltime : 00:01:04 Used CPU time : 00:46.488 % User Computation) : 41.00 % (00:19.439) % System (I/O) : 58.00 % (00:27.049) Mem reserved : 1008G Max Mem used : 9.8G Max Disk Write : 329M Max Disk Read : 250M Energy consumption : 3W.h Debug Infos : BatchHost : turpancomp0 Command : /users/sysadmin/marteau/slurm-scripts/partition-small-jobinfo.sbatch StdOut : /tmpdir/marteau/slurm-6154.out StdErr : /tmpdir/marteau/slurm-6154.out WorkDir : /tmpdir/marteau
Note : Il peut être utile de mettre une petite temporisation avant la commande jobinfo pour permettre d'avoir les dernières valeurs de l'accounting slurm s'il est utilisé dans un script sbatch:
sleep 10 jobinfo
Conteneurs
- Exécuter des codes dans des conteneurs apptainer