在slurm中,查询job 在哪些CPU上执行任务.
时间: 2023-12-03 21:47:27 浏览: 83
查看指定进程的cpu和内存使用情况
4星 · 用户满意度95%
要查询一个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使用情况。
阅读全文