Slurm:即使资源可用,也无法分配资源

时间:2018-06-10 14:21:37

标签: slurm

我正在尝试使用SLURM在集群上执行套接字编程代码以进行节点分配。我使用slurm脚本如下:

#!/bin/bash
#SBATCH --job-name="abcd"
#SBATCH --ntasks=2
#SBATCH --nodes=2-2
#SBATCH --cpus-per-task=128
#SBATCH --partition=knl
./a.out

当作为sbatch脚本运行时,我收到错误“sbatch:error:批处理作业提交失败:请求的节点配置不可用”。

但是,我确实看到一些节点满足上面的配置。两个节点的scontrol输出如下所示:

NodeName=compute140 Arch=x86_64 CoresPerSocket=64
   CPUAlloc=20 CPUErr=0 CPUTot=256 CPULoad=20.01
   AvailableFeatures=knl
   ActiveFeatures=knl
   Gres=(null)
   NodeAddr=compute140 NodeHostName=compute140 Version=16.05
   OS=Linux RealMemory=96000 AllocMem=81920 FreeMem=102580 Sockets=1 Boards=1
   MemSpecLimit=1024
   State=MIXED ThreadsPerCore=4 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   BootTime=2018-06-04T12:41:22 SlurmdStartTime=2018-06-04T12:47:01
   CapWatts=n/a
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s


NodeName=compute141 Arch=x86_64 CoresPerSocket=64
   CPUAlloc=20 CPUErr=0 CPUTot=256 CPULoad=20.01
   AvailableFeatures=knl
   ActiveFeatures=knl
   Gres=(null)
   NodeAddr=compute141 NodeHostName=compute141 Version=16.05
   OS=Linux RealMemory=96000 AllocMem=81920 FreeMem=87441 Sockets=1 Boards=1
   MemSpecLimit=1024
   State=MIXED ThreadsPerCore=4 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   BootTime=2018-06-04T12:46:37 SlurmdStartTime=2018-06-04T12:52:11
   CapWatts=n/a
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

我不确定为什么我在slurm应该为我分配请求的配置时收到错误。

我想在两个不同的knl节点上运行客户端 - 服务器应用程序,每个任务都是多线程的,每个任务有128个线程。

请帮助我尝试了几件事,但没有任何对我有用。

1 个答案:

答案 0 :(得分:2)

您没有明确指定每个CPU的内存要求,因此默认适用。如果默认值大于RealMemory / CPUTot,在您的情况下96000MB / 128 = 750MB,则任务无法保存在一个节点中。

因此,如果默认值为4GB / CPU,并且每个节点请求一个任务,每个任务请求128CPU,则每个节点有效地请求524GB的RAM,而您的群集无法提供这些RAM。

相关问题