slurm:有没有办法返回未使用的核心号?

alp*_*per 3 slurm

我们知道squeue返回正在运行的作业的状态。

squeue
         JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
           130     debug   run.sh    user PD       0:00      1 (Resources)
           131     debug   run.sh    user PD       0:00      1 (Resources)
           128     debug 52546914    user  R       7:28      1 node1
           129     debug   run.sh    user  R       0:02      1 node1
Run Code Online (Sandbox Code Playgroud)

例如我的核心号码是 2。

[Q]有没有办法只返回未使用的核心数?在示例中,未使用的核心编号应返回 0。

我是否应该为此编写一个解析器以检索每个 旁边的核心编号R,添加它们,然后从总核心编号中减去它,如下所示:

squeue | grep -P ' R       ' | awk '{print $7}' | paste -sd+ - | bc
Run Code Online (Sandbox Code Playgroud)

dam*_*ois 7

要了解集群中可用的核心(CPU)数量,您可以使用以下sinfo命令:

$ sinfo -o%C
CPUS(A/I/O/T)
0/1920/0/1920
Run Code Online (Sandbox Code Playgroud)

您可以轻松地将数字检索到 Bash 变量中

IFS=/ read A  I O T <<<$(sinfo -h -o%C)
Run Code Online (Sandbox Code Playgroud)

运行上述命令后,A将包含分配的内核I数,空闲内核数,O保存“其他”内核数,即耗尽,关闭等,T并将是系统中的内核总数.

请注意,在您的问题中,您谈论的是核心数,但实际上是计算节点数。如果您想要的是节点数,则可以使用:

$ sinfo -o%A
NODES(A/I)
0/80
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅sinfo 手册页