web-dev-qa-db-ja.com

slurmジョブのCPU時間とメモリ使用量を調べる

かなり些細な質問ですが、それでも、slurmジョブIDで使用されるCPU時間とメモリを表示する(sacctの推測)コマンドを探しています。

33
user1701545

Sacctコマンドが探しているものであることは正しいです。 --formatスイッチはもう1つの重要な要素です。このコマンドを実行する場合:

sacct -e

--formatスイッチに使用できるさまざまなフィールドの出力が表示されます。各フィールドの詳細は、マニュアルページの[ジョブアカウントフィールド]セクションで説明されています。 CPU時間とメモリについては、CPUTimeとMaxRSSがおそらく探しているものです。 cputimerawは、通常のSlurm時間形式とは対照的に、秒単位の数値が必要な場合にも使用できます。

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

sacctは確かに、終了したジョブに使用するコマンドです。実行中のジョブについては、sstatコマンドを見ることができます。

15
damienfrancois

@ aaron.kizmillerが正しい、sacctが使用するコマンドです。

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

たとえば、すべてのジョブID、経過時間、および最大VMサイズをリストするには、次を実行できます。

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

7
duhaime

もう1つは、sacctの出力のすべての詳細形式に回答します。これは、テーブルに集約された複数のジョブを見るのに最適です。

ただし、特定のジョブをより詳細に確認したい場合があります。そのため、割り当てられたリソースをジョブが効率的に使用したかどうかを判断できます。そのため、seffは非常に便利です。構文は単にseff <Jobid>。例えば、ここに私の最近の仕事があります(失敗しました):

$ 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

主要なCPUメトリックであるCPU Utilizedは、sacctの-​​TotalCPフィールドに対応し、Memory UtilizedはMaxRSSに対応することに注意してください。

3
spinup