在slurm中,查询job 运行在CPU上的CPU ids
时间: 2023-12-03 14:47:19 浏览: 154
你可以使用scontrol命令来查询job运行在CPU上的CPU ids。具体命令如下:
```
scontrol show job <job_id> | grep "CPU Affinity"
```
其中,<job_id>是你要查询的job的ID。该命令将返回类似于以下内容的输出:
```
CPU Affinity=0-3,16-19
```
这表示该job运行在CPU 0,1,2,3以及16,17,18,19上。
相关问题
在slurm中, 查询job在哪些sockets, cores, CPU上运行过, 以CPU ids 表示
要查询一个job在哪些sockets,cores和CPU上运行过,可以使用sacct命令。具体命令如下:
```
sacct -j jobid -o NodeList,CPUTaskList
```
其中,`jobid`是要查询的job的ID。`-o`选项用于指定输出格式,`NodeList`表示节点列表,`CPUTaskList`表示CPU ID列表。
输出结果会包括每个节点上job运行的CPU ID列表。示例输出如下:
```
NodeList CPUTaskList
------------------ ------------------
node1 0-7,16-23
node2 8-15,24-31
```
这表示job在`node1`上运行了CPU 0到7和16到23,以及在`node2`上运行了CPU 8到15和24到31。
在slurm中,查询job 在哪些CPU上执行任务.
要查询一个job在哪些CPU上执行任务,可以使用 `scontrol` 命令。具体操作步骤如下:
1. 首先通过 `squeue` 命令查看你的job ID,比如你的job ID是 1234:
```
$ squeue -u <username>
```
2. 然后通过 `scontrol` 命令查询job的详细信息,包括任务运行的节点和CPU信息,命令如下:
```
$ scontrol show jobid -dd 1234
```
这个命令会输出job的详细信息,包括任务运行的节点、CPU信息、任务的状态等。其中,CPU信息在 `JobNodes` 字段中。
例如,输出信息中可能包含以下内容:
```
JobId=1234 JobName=myjob
UserId=myusername(1234) GroupId=mygroup(5678)
Priority=100 Nice=0 Account=(null) QOS=normal
JobState=RUNNING Reason=None Dependency=(null)
Requeue=0 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0
RunTime=00:01:23 TimeLimit=00:30:00 TimeMin=N/A
SubmitTime=2021-06-01T10:00:00 EligibleTime=2021-06-01T10:00:00
StartTime=2021-06-01T10:00:00 EndTime=2021-06-01T10:30:00
PreemptTime=None SuspendTime=None SecsPreSuspend=0
LastSchedEval=2021-06-01T10:00:00
Partition=my_partition AllocNode:Sid=compute-0-0:1234
ReqNodeList=(null) ExcNodeList=(null)
NodeList=compute-0-0
BatchHost=compute-0-0
NumNodes=1 NumCPUs=16 NumTasks=1 CPUs/Task=16 ReqB:S:C:T=0:0:*:*
TRES=cpu=16,mem=64000M,node=1,billing=16
Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*
MinCPUsNode=1 MinMemoryNode=64000M MinTmpDiskNode=0
Features=(null) DelayBoot=00:00:00
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
Command=(null)
WorkDir=/home/myusername/myjob
StdErr=/home/myusername/myjob/slurm-%j.err
StdIn=/dev/null
StdOut=/home/myusername/myjob/slurm-%j.out
Power= (null)
CleanUp=1
JobCheckpoint=(null)
OutOfMemory=0
Proctrack=proctrack/cgroup
TRESBillingWeights=CPU=1.000000,Mem=1.000000,Node=1.000000,GRES/Billing=1.000000
Reservation=(null)
Licenses=(null)
Flags= ArrayJobId=1234 ArrayTaskId=1
JobNodeMatchPolicy=EXACTNODE
SelectTypeParameters=(null)
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30 (seconds)
JobAcctGatherDetail=standard
AccountingStorageTRES=cpu=00:01:23,mem=00:00:00,nvidia-smi=00:00:00
JobSubmitCapabilities=(null)
```
其中,`NodeList` 字段表示任务运行的节点,`NumCPUs` 字段表示任务使用的CPU数目。
所以,这个job在 `compute-0-0` 节点上运行,并且使用了16个CPU。
另外,如果你的job正在运行,你也可以使用 `top` 命令查看任务的CPU使用情况。
阅读全文