web-dev-qa-db-fra.com

Découvrez le temps CPU et l'utilisation de la mémoire d'un travail slurm

Je suppose que c'est une question assez banale mais néanmoins, je recherche la commande (sacct je suppose) qui affichera le temps CPU et la mémoire utilisés par un ID de tâche slurm.

33
user1701545

Vous avez raison de dire que la commande sacct est ce que vous recherchez. Le commutateur --format est l'autre élément clé. Si vous exécutez cette commande:

sacct -e

vous obtiendrez une impression des différents champs qui peuvent être utilisés pour le commutateur --format. Les détails de chaque champ sont décrits dans la section Champs du compte de travail de la page de manuel. Pour le temps CPU et la mémoire, CPUTime et MaxRSS sont probablement ce que vous recherchez. cputimeraw peut également être utilisé si vous voulez le nombre en secondes, par opposition au format d'heure Slurm habituel.

sacct --format="CPUTime,MaxRSS"
40
aaron.kizmiller

sacct est en effet la commande à utiliser pour les travaux terminés. Pour exécuter des travaux, vous pouvez consulter la commande sstat.

15
damienfrancois

@ aaron.kizmiller a raison, sacct est la commande à utiliser.

On peut récupérer tous les champs suivants en les passant dans saact --format="field,field"

Champs:

Account           AdminComment      AllocCPUS         AllocGRES
AllocNodes        AllocTRES         AssocID           AveCPU
AveCPUFreq        AveDiskRead       AveDiskWrite      AvePages
AveRSS            AveVMSize         BlockID           Cluster
Comment           ConsumedEnergy    ConsumedEnergyRaw CPUTime
CPUTimeRAW        DerivedExitCode   Elapsed           ElapsedRaw
Eligible          End               ExitCode          GID
Group             JobID             JobIDRaw          JobName
Layout            MaxDiskRead       MaxDiskReadNode   MaxDiskReadTask
MaxDiskWrite      MaxDiskWriteNode  MaxDiskWriteTask  MaxPages
MaxPagesNode      MaxPagesTask      MaxRSS            MaxRSSNode
MaxRSSTask        MaxVMSize         MaxVMSizeNode     MaxVMSizeTask
McsLabel          MinCPU            MinCPUNode        MinCPUTask
NCPUS             NNodes            NodeList          NTasks
Priority          Partition         QOS               QOSRAW
ReqCPUFreq        ReqCPUFreqMin     ReqCPUFreqMax     ReqCPUFreqGov
ReqCPUS           ReqGRES           ReqMem            ReqNodes
ReqTRES           Reservation       ReservationId     Reserved
ResvCPU           ResvCPURAW        Start             State
Submit            Suspended         SystemCPU         Timelimit
TotalCPU          UID               User              UserCPU
WCKey             WCKeyID           WorkDir

Par exemple, pour répertorier tous les ID de tâche, le temps écoulé et la taille max VM, vous pouvez exécuter:

sacct --format='JobID,Elapsed,MaxVMSize'

7
duhaime

L'autre répond à tous les formats de détail pour la sortie de sacct, ce qui est idéal pour regarder plusieurs tâches agrégées dans une table.

Cependant, parfois, vous souhaitez examiner un travail spécifique plus en détail, afin de savoir si votre travail a utilisé efficacement les ressources allouées. Pour cela, seff est très utile. La syntaxe est simplement seff <Jobid>. Par exemple, voici un travail récent à moi (qui a échoué):

$ seff 15780625

Job ID: 15780625
Cluster: mycluster
User/Group: myuser/mygroup
State: OUT_OF_MEMORY (exit code 0)
Nodes: 1
Cores per node: 16
CPU Utilized: 12:06:01
CPU Efficiency: 85.35% of 14:10:40 core-walltime
Job Wall-clock time: 00:53:10
Memory Utilized: 1.41 GB
Memory Efficiency: 70.47% of 2.00 GB

Notez que la métrique principale du CPU, CPU Utilized, correspond au champ TotalCP de sacct, tandis que Memory Utilized correspond à MaxRSS.

3
spinup