Aller au contenu principal

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​

PartitionUsage recommandé
debugTests courts et débogage, selon les limites en vigueur
stdCalcul CPU général
highmemCalcul nécessitant beaucoup de mémoire RAM
gpuCalcul utilisant des GPU
visuVisualisation distante et applications graphiques

Vérifiez les partitions réellement disponibles :

sinfo

Choisir la partition​

  • utilisez debug pour valider rapidement un script ;
  • utilisez std pour un calcul CPU courant ;
  • utilisez highmem lorsque la mémoire est la contrainte principale ;
  • utilisez gpu si le programme exploite un GPU ;
  • utilisez visu pour 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œudsGPU
gpua[01-02]NVIDIA Quadro RTX 6000 Ada, 24 GB
gpub01NVIDIA 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

Pages associées​