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

标签 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

比如我的核心数是2。

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

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

squeue | grep -P ' R       ' | awk '{print $7}' | paste -sd+ - | bc

最佳答案

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

$ sinfo -o%C
CPUS(A/I/O/T)
0/1920/0/1920

您可以使用

轻松地将数字检索到 Bash 变量中
IFS=/ read A  I O T <<<$(sinfo -h -o%C)

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

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

$ sinfo -o%A
NODES(A/I)
0/80

sinfo man page了解更多详情。

关于slurm:有没有办法返回未使用的核心号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50084142/

相关文章:

slurm - 如何更新 Slurm 中的作业节点号?

linux - slurm 脚本给出 "command not found"

Slurm 和 Munge "Invalid Credential"

python - numpy 矩阵 mult 在 HPC 上并行化时不起作用

Slurm 设置 : Error connecting slurm stream socket

python - 如何检查 slurm 作业是否是数组中最后一个 **RUNNING**?

bash - 并行执行多个作业时指定 SLURM 资源

r - 加载共享库时出错 : libicuuc. so.50

time - 由于时间限制,作业意外取消

ubuntu - 在 Ubuntu 16.04 桌面 : slurmd fails to start 上安装/模拟 SLURM