代码之家  ›  专栏  ›  技术社区  ›  Mayank Jain

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

  •  2
  • Mayank Jain  · 技术社区  · 7 年前

    我正试图在集群上使用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:batch job submission failed:requested node configuration is not available”。

    不过,我确实看到一些节点满足上述配置。控制两个节点的输出,如下所示:

    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 回复  |  直到 7 年前
        1
  •  2
  •   damienfrancois    7 年前

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

    因此,如果默认值是4gb/cpu,并且每个节点请求一个任务,每个任务请求128cpu,那么实际上每个节点请求524gb的ram,这是集群无法提供的。