Commandes de surveillance des jobs SLURM

1. Informations sur les partitions et les nœuds

  • Affiche un résumé des partitions et des nœuds disponibles, y compris leur état (disponible, occupé, etc.):

sinfo sinfo -Nel scontrol show partition

2. Détails des ressources de GPU

  • Permet de filtrer le détail des ressources de GPU :

sinfo -Ne -p gpu --format "%.15N %.4c %.7m %G"

3. Utilisation dans le temps

  • Pour regarder l’utilisation dans le temps :

sreport cluster UserUtilizationByAccount user=$USER start=2024-12-01 -t hours

4. Historique des calculs

  • Pour récupérer l'historique des calculs :

sacct -u $USER --format=JobID,JobName,partition,node,alloccpus,state,elapsed,maxrss,totalcpu,start,end -S 2024-12-01

5. Informations sur un job spécifique

  • Pour un job en cours ou terminé :

sacct -j $JobID

  • Afficher des informations détaillées sur un job spécifique en cours d'exécution ou en attente :

scontrol show job <job-id>

6. Suivi de la file d'attente des jobs

  • Pour suivre la file d'attente des jobs en cours (PD: Pending, R: Running, ...):

Tous les utilisateurs :

squeue -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"

Ses propres jobs :

squeue -u $USER -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"

7. Création d'un alias dans .bashrc

  • Pour créer un alias dans le fichier .bashrc :

alias squeue='squeue -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"'

8. Analyse de l'efficacité des calculs

  • Pour récupérer les JobID, utilisez la commande suivante (adaptez la date à vos besoins) :

sacct -u $USER --format=JobID,state --starttime=2025-01-01 --noheader | grep COMPLETED | egrep -v ".0|bat|ext" | awk '{print $1}' > job_$USER.out

  • Pour analyser l'efficacité des calculs, une fois la liste des jobs récupérée dans job_$USER.out, exécutez la commande suivante :

for i in $(cat job_$USER.out); do seff $i; done | egrep "Job ID|CPU Efficiency|Memory Efficiency" > seff_$USER.out

Note : $USER est predefini, il correspond à votre identifiant eXplor.

Surveillance de l'utilisation des ressources (CPU et mémoire) dans les nœuds où le calcul est en cours

Pour utiliser ces commandes, connectez-vous d'abord au nœud où votre calcul est en cours en utilisant la commande suivante :

ssh <identifiant du nœud>

9. Surveillez l’utilisation du cluster et le statut des nœuds

  • Pour surveiller le cluster, utilisez les commandes suivantes : sinfo, sinfo -Nel, qstat -q.
  • Afin d’adapter les ressources à allouer, utilisez des outils comme top, htop ou nvidia-smi.

10. Commande pour rapporter l'utilisation du CPU

mpstat -P ALL

Exemple de sortie

[login@vm-projet ~]$ ssh cnh01
[login@cnh01 ~]$ mpstat -P ALL
Linux 3.10.0-327.el7.x86_64 (cnh01.prod.explor)         03/10/2025      _x86_64_        (8 CPU)

09:45:00 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:45:00 PM  all   93.47    0.00    2.21    0.00    0.00    1.37    0.00    0.00    0.00    2.95
09:45:00 PM    0   88.91    0.00    3.31    0.00    0.00    2.71    0.00    0.00    0.00    5.07
09:45:00 PM    1   97.05    0.00    1.23    0.00    0.00    0.01    0.00    0.00    0.00    1.71
09:45:00 PM    2   89.50    0.00    3.24    0.00    0.00    2.99    0.00    0.00    0.00    4.27
09:45:00 PM    3   97.32    0.00    1.21    0.00    0.00    0.00    0.00    0.00    0.00    1.47
09:45:00 PM    4   90.01    0.00    3.24    0.00    0.00    2.51    0.00    0.00    0.00    4.23
09:45:00 PM    5   97.46    0.00    1.15    0.00    0.00    0.00    0.00    0.00    0.00    1.38
09:45:00 PM    6   90.03    0.00    3.10    0.00    0.00    2.75    0.00    0.00    0.00    4.12
09:45:00 PM    7   97.45    0.00    1.18    0.00    0.00    0.00    0.00    0.00    0.00    1.36

Lorsque vous exécutez mpstat -P ALL, vous verrez généralement une sortie qui inclut les colonnes suivantes :

- **CPU** : Le numéro du CPU (ou "all" pour la moyenne sur tous les CPUs).
- **%usr** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau utilisateur (application).
- **%nice** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau utilisateur avec une priorité "nice".
- **%sys** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau système (noyau).
- **%iowait** : Pourcentage de temps que le CPU ou les CPUs étaient inactifs pendant que le système avait une requête d'E/S disque en attente.
- **%irq** : Pourcentage de temps passé par le CPU à traiter les interruptions matérielles.
- **%soft** : Pourcentage de temps passé par le CPU à traiter les interruptions logicielles.
- **%steal** : Pourcentage de temps que le CPU virtuel attend le CPU réel pendant que l'hyperviseur sert un autre processeur virtuel.
- **%guest** : Pourcentage de temps passé à exécuter un CPU virtuel pour des systèmes d'exploitation invités.
- **%gnice** : Pourcentage de temps passé à exécuter un invité avec une priorité "nice".
- **%idle** : Pourcentage de temps que le CPU était inactif et que le système n'avait pas de requête d'E/S disque en attente.

Rappel

Vous avez accès au nœud uniquement lorsque vous avez un calcul en cours.