Aller au contenu

Rapport de consommation

Informations dans le fichier .o

L'epilog (script exécuté en fin de calcul) affiche un rapport de consommation du calcul par step (srun). Le nombre de colonnes sélectionnées étant élevé, nous avons choisi de les afficher dans deux commandes sacct :

$ sacct --format='JobID,Partition,JobName,MaxRSS,MaxVMSize,NTasks,AllocCPUS,Start,End,Elapsed,AveCPU,MinCPU,NNodes,ExitCode,State' -j $SLURM_JOB_ID
JobID          Partition  JobName        MaxRSS     MaxVMSize  NTasks  AllocCPUS  Start                End                  Elapsed   AveCPU    MinCPU    NNodes  ExitCode  State
-----          ---------  -------        -------    ---------  ------  ---------  -----                ---                  -------   ------    ------    ------  --------  -----
123456         2tcourt    Job1                                         48         2024-02-1T14:11:57   2024-02-1T22:43:07  08:31:10                      1       127:0     FAILED
123456.batch              batch          6053968K   11978904K  1       48         2024-02-1T14:11:57   2024-02-1T22:43:07   08:31:10  00:19:34  00:19:34  1       127:0     FAILED
123456.extern             extern         5232K      205588K    1       48         2024-02-1T14:11:57   2024-02-1T22:43:07   08:31:10  00:00:00  00:00:00  1       0:0       COMPLETED
123456.0                  code1.exe      10536032K  12506928K  48      48         2024-02-1T14:15:25   2024-02-1T15:26:35   01:11:10  01:10:42  01:10:29  1       0:0       COMPLETED
123456.1                  code2.exe      540480K    744164K    48      48         2024-02-1T15:26:35   2024-02-1T15:26:52   00:00:17  00:00:15  00:00:00  1       0:0       COMPLETED

$ sacct --format='JobID,JobName,AllocCPUS,ReqTRES,AllocTRES,NNodes,NodeList,Elapsed,CPUTime' -j $SLURM_JOB_ID
JobID          JobName        AllocCPUS  ReqTRES                               AllocTRES                             NNodes  NodeList   Elapsed   CPUTime                                                 
-----          -------        ---------  -------                               ---------                             ------  --------  -------   -------
123456         job1           48         billing=48,cpu=48,mem=240000M,node=1  billing=48,cpu=48,mem=240000M,node=1  1       c23fin81   08:31:10  17-00:56:00                                             
123456.batch   batch          48                                               cpu=48,mem=240000M,node=1             1       c23fin81   08:31:10  17-00:56:00                                             
123456.extern  extern         48                                               billing=48,cpu=48,mem=240000M,node=1  1       c23fin81   08:31:10  17-00:56:00                                             
123456.0       code1.exe      48                                               cpu=48,mem=240000M,node=1             1       c23fin81   01:11:10  2-08:56:00                                              
123456.1       code2.exe      48                                               cpu=48,mem=240000M,node=1             1       c23fin81   00:00:17  00:13:36                                                

Explications sur les colonnes :

Colonnes Explications
MaxVMSize Quantité de mémoire virtuelle (allouée) par le processus parallèle ayant consommé le plus de mémoire virtuelle (Ko)
MaxRSS Quantité de mémoire résidente (utilisée en RAM) par le processus parallèle (tâche MPI) ayant consommé le plus de mémoire résidente (Ko)
AveCPU Temps CPU (user + system) moyen pour toutes les tâches du calcul
MinCPU Temps minimum de toutes les tâches du calcul
ReqTRES Ressources demandées pour le calcul (contient entre autres les GPU)
AllocTRES Ressources attribuées pour le calcul (contient entre autres les GPU)
Elapsed Durée elapse du calcul
CPUTime Durée comptabilisée : Elapsed x AllocCPUS

Les différentes lignes du rapport correspondent aux étapes de votre code :

  • la ligne batch correspond à votre script de soumission, en dehors des commandes exécutées avec srun
  • la ligne extern correspond à ce qui est exécuté en dehors de votre script de soumission. Cela correspond entre autres aux commandes exécutées en cas de connexion ssh vers les nœuds pendant le calcul
  • les lignes des steps JobID.StepIP correspondent aux commandes exécutées avec srun

La comptabilité total de votre calcul correspond à la première ligne.

Commande sacct

Le gestionnaire de batch Slurm met à disposition la commande sacct qui permet d'extraire les informations de comptabilité et d'attribution de ressource pour les calculs.

La commande fonctionne sur les calculs en cours et terminés.
Par défaut, les calculs affichés sont ceux du jour :

$ sacct
JobID           JobName  Partition    Account  AllocCPUS      State ExitCode 
------------ ---------- ---------- ---------- ---------- ---------- -------- 
241748             Job1    2tcourt         ac          4  COMPLETED      0:0 
241748.exte+     extern                    ac          4  COMPLETED      0:0 
241748.0       code.exe                    ac          4  COMPLETED      0:0 
241749             Job2     2tlong         ac        192  COMPLETED      0:0 
241749.exte+     extern                    ac        192  COMPLETED      0:0 
241749.0       code.exe                    ac        192  COMPLETED      0:0 

La période de recherche est modifiable avec les options --start et --end. L'option -X permet d'afficher les informations par calculs et non par step.

$ sacct --start=2024-02-1 --end=2024-02-5 -X
JobID           JobName  Partition    Account  AllocCPUS      State ExitCode 
------------ ---------- ---------- ---------- ---------- ---------- -------- 
121389             Job1   smplarge         ac         56     FAILED      1:0 
124996             Job2   smplarge         ac        200 CANCELLED+      0:0 
124998             Job3    2tcourt         ac        192  COMPLETED      0:0 

La liste des informations souhaitée est paramétrable.
Cette commande affiche le nombre de cœurs attribué, l'efficacité et les mémoires virtuelles et résidentes.
$ sacct --format=AllocCPUs,AveCPU,MaxRSS,MaxVMSize,JobName -j $SLURM_JOB_ID

Pour connaître la liste des paramètres disponibles dans l'option --format : sacct -e

Par défaut sacct n'ajuste pas la largeur des colonnes. Une sortie complète avec des séparateurs | est possible en utilisant l'option -p (parsable).

De nombreuses options sont disponibles. Pour plus d'informations, consulter le manuel man sacct.

Commande sstat

Le gestionnaire de batch Slurm met à disposition la commande sstat qui permet d'afficher la consommation d'un calcul en cours.

Par défaut, le nombre de colonne est important et peu lisible :

$ sstat -j 12345
JobID         MaxVMSize  MaxVMSizeNode  MaxVMSizeTask  AveVMSize     MaxRSS MaxRSSNode MaxRSSTask     AveRSS MaxPages MaxPagesNode   MaxPagesTask   AvePages     MinCPU MinCPUNode MinCPUTask     AveCPU   NTasks AveCPUFreq ReqCPUFreqMin ReqCPUFreqMax ReqCPUFreqGov ConsumedEnergy  MaxDiskRead MaxDiskReadNode MaxDiskReadTask  AveDiskRead MaxDiskWrite MaxDiskWriteNode MaxDiskWriteTask AveDiskWrite TRESUsageInAve TRESUsageInMax TRESUsageInMaxNode TRESUsageInMaxTask TRESUsageInMin TRESUsageInMinNode TRESUsageInMinTask TRESUsageInTot TRESUsageOutAve TRESUsageOutMax TRESUsageOutMaxNode TRESUsageOutMaxTask TRESUsageOutMin TRESUsageOutMinNode TRESUsageOutMinTask TRESUsageOutTot 
------------ ---------- -------------- -------------- ---------- ---------- ---------- ---------- ---------- -------- ------------ -------------- ---------- ---------- ---------- ---------- ---------- -------- ---------- ------------- ------------- ------------- -------------- ------------ --------------- --------------- ------------ ------------ ---------------- ---------------- ------------ -------------- -------------- ------------------ ------------------ -------------- ------------------ ------------------ -------------- --------------- --------------- ------------------- ------------------- --------------- ------------------- ------------------- --------------- 
12345.1        2088588K       c23fin92              0 2127510186    974264K   c23fin92          0  926784853        0     c23fin92              0          0   00:23:30   c23fin92          6   00:23:32       24      1.56M       Unknown       Unknown       Unknown              0     12617232        c23fin92               0     12468938      3526645         c23fin92                0      3506475 cpu=00:23:32,+ cpu=00:23:32,+ cpu=c23fin92,ener+ cpu=00:00:00,fs/d+ cpu=00:23:30,+ cpu=c23fin92,ener+ cpu=00:00:00,fs/d+ cpu=09:24:49,+ energy=0,fs/di+ energy=0,fs/di+ energy=c23fin92,fs+           fs/disk=0 energy=0,fs/di+ energy=c23fin92,fs+           fs/disk=1 energy=0,fs/di+ 

Exemple pour suivre la consommation en mémoire et afficher la colonne TresUsageInMax (utilisation max des ressources par les tâches du calcul) sur 75 caractères :

$ sstat --format='AveCPU,MaxRSS,MaxVMSize,TresUsageInMax%75' -j 12345
    AveCPU     MaxRSS  MaxVMSize                                                              TresUsageInMax 
---------- ---------- ---------- --------------------------------------------------------------------------- 
  00:31:06    974264K   2088588K    cpu=00:31:04,energy=0,fs/disk=12462491,mem=900640K,pages=0,vmem=2075480K

Par défaut, seul le step actif est indiqué. Pour afficher les consommations pour tous les steps, il faut rajouter l'option -a.

Par défaut sstat n'ajuste pas la largeur des colonnes. Une sortie complète avec des séparateurs "|" est possible en utilisant l'option -p (parsable).

$ sstat --format='AveCPU,MaxRSS,MaxVMSize,TRESUsageInMax' -j 12345 -p
AveCPU|MaxRSS|MaxVMSize|TRESUsageInMax|
00:06:02|974584K|2088856K|cpu=00:06:03,energy=0,fs/disk=12617232,mem=974584K,pages=0,vmem=2088856K|

De nombreuses options sont disponibles. Pour plus d'informations, consulter le manuel man sstat.

Différences entre maconso et sacct

La commande maconso correspond aux calculs terminés dans la période.
Les options --start et --end de la commande sacct correspondent à des fenêtres de recherche et non aux calculs terminés sur cet intervalle.


Dernière mise à jour: 6 juin 2024 17:16:29