Ressources et partitions SLURM
SLURM attribue les ressources demandées par un job : CPU, mémoire, GPU et durée. Le choix de la partition doit correspondre au type de traitement et aux ressources nécessaires.
Pour l'inventaire matériel détaillé, consultez Ressources de calcul.
Partitions principales
| Partition | Usage recommandé |
|---|---|
debug | Tests courts et débogage, selon les limites en vigueur |
std | Calcul CPU général |
highmem | Calcul nécessitant beaucoup de mémoire RAM |
gpu | Calcul utilisant des GPU |
visu | Visualisation distante et applications graphiques |
Vérifiez les partitions réellement disponibles :
sinfo
Choisir la partition
- utilisez
debugpour valider rapidement un script ; - utilisez
stdpour un calcul CPU courant ; - utilisez
highmemlorsque la mémoire est la contrainte principale ; - utilisez
gpusi le programme exploite un GPU ; - utilisez
visupour les sessions graphiques et TurboVNC.
CPU et tâches
Pour un seul processus multithreadé :
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
Pour plusieurs processus :
#SBATCH --ntasks=8
#SBATCH --cpus-per-task=1
Demander davantage de CPU n'accélère pas un programme qui ne sait pas les exploiter.
Mémoire
Demande de mémoire totale :
#SBATCH --mem=16G
Demande par CPU :
#SBATCH --mem-per-cpu=2G
N'utilisez pas les deux options simultanément sans connaître le comportement de la configuration locale.
Un manque de mémoire peut provoquer un arrêt OOM. Une demande excessive peut augmenter le temps d'attente.
GPU
Demandez un GPU uniquement si l'application est compatible et l'utilise réellement :
#SBATCH --partition=gpu
#SBATCH --gres=gpu:1
#SBATCH --cpus-per-task=4
#SBATCH --mem=16G
Vérifiez le GPU attribué :
nvidia-smi --query-gpu=name,memory.total --format=csv
Les GPU disponibles incluent notamment les familles suivantes :
| Nœuds | GPU |
|---|---|
gpua[01-02] | NVIDIA Quadro RTX 6000 Ada, 24 GB |
gpub01 | NVIDIA L40, 48 GB |
gpuc[01-13] | NVIDIA RTX 6000 Pro BSE, 96 GB |
gpud[01-03] | NVIDIA H200, 141 GB |
visu[01-02] | NVIDIA L4, 24 GB |
Durée
Demandez une durée légèrement supérieure au temps attendu, sans ajouter une marge excessive. Une demande réaliste facilite la planification et limite la réservation inutile de ressources.
Consulter l'utilisation
Après un job terminé :
sacct -j <job_id> \
--format=JobID,State,Elapsed,AllocCPUS,MaxRSS,AllocTRES
Comparez les ressources demandées et utilisées, puis ajustez les prochains jobs.
Exemple complet
#!/bin/bash
#SBATCH --job-name=mon-calcul
#SBATCH --partition=std
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G
#SBATCH --time=01:00:00
#SBATCH --output=logs/%x-%j.out
#SBATCH --error=logs/%x-%j.err
set -euo pipefail
mkdir -p logs
module load <module>
python script.py