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 avecsrun
- 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 connexionssh
vers les nœuds pendant le calcul - les lignes des steps
JobID.StepIP
correspondent aux commandes exécutées avecsrun
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.