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.
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"
sacct
est en effet la commande à utiliser pour les travaux terminés. Pour exécuter des travaux, vous pouvez consulter la commande sstat
.
@ 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"
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'
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.