Cluster de Calcul
Documentation Cluster de Calcul
Cette page documente l'utilisation des gestionnaires de ressources OAR et Slurm.
OAR
Lancer un job simple
Session interactive simple :
Usage avancé (GPU et IA)
Réserver des ressources GPU
Réserver un seul GPU :
<login>@frontend:~$ oarsub -I -q default -l "gpu=1"
# Setting queue to: p1
# Tie job resource request for GPU to resources with GPU
# Set walltime to default (3600 s).
OAR_JOB_ID=2895832
# Interactive mode: waiting...
# Starting...
Note : Sur les nœuds multi-GPU, réserver un seul GPU alloue une fraction des ressources CPU et mémoire (ex: moitié sur un nœud bi-GPU).
Réserver plusieurs GPU sur le même nœud :
Sélectionner un modèle de GPU spécifique :
Vérifier les modèles de GPU disponibles :
<login>@frontend:~$ oarnodes -J | jq -r '.[] | select(.production == "YES" and .gpu_model != null and .gpu_model != "") | .gpu_model' | sort | uniq
A100-PCIE-40GB
A40
H100 NVL
L40S
...
Réservation de nœuds entiers :
Vérifier le pilote GPU et version CUDA (sur le nœud) :
Environnements IA
Support des modules, Conda et conteneurs.
Modules
Lister les modules disponibles :
Charger un module spécifique :
Conda
Créer un environnement (ex: PyTorch) :
<login>@node:~$ module load conda
<login>@node:~$ conda create --name PyTorch python=3.11
<login>@node:~$ conda activate PyTorch
Installer PyTorch avec support CUDA :
Attention : La version de
pytorch-cudadoit correspondre à la version CUDA du système ou du module chargé.
Vérification :
<login>@node:~$ python -c 'import torch; print(torch.__version__, torch.cuda.is_available());'
2.5.1 True
Singularity / Apptainer
Exécuter une image :
<login>@node:~$ module load singularity
<login>@node:~$ singularity run --nv tensorflow_21.09-tf2-py3.sif
Slurm
Lancer un job simple
Session interactive (équivalent à oarsub -I) :
Soumettre un script (batch) :
Usage avancé (GPU)
Réserver 1 GPU en interactif :
Exemple de script de soumission (job_gpu.slurm) :
#!/bin/bash
#SBATCH --job-name=mon_job_ia
#SBATCH --output=resultats.out
#SBATCH --error=erreurs.err
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --gres=gpu:1 # Demande 1 GPU
#SBATCH --time=01:00:00 # Temps limite 1h
#SBATCH --partition=gpu # Partition GPU
module load cuda/12.1
python script_ia.py
État des jobs :
État des nœuds :