Slurm 工作正在进行中,但有可用资源

Slurm 工作正在进行中,但有可用资源

我使用 SLURM 作为作业调度程序,并为小型集群(具有 64 个核心的单个节点)排队。要提交批处理作业,我使用:

> sbatch run.sh

其中 run.sh 如下所示:

#! /bin/bash

#SBATCH --ntasks=4

export OMP_THREAD_LIMIT=4
/home/Benchmarks/Graph500/omp-csr/omp-csr -s 23

但是,当我一个接一个地提交两个批处理作业时,我得到:

> squeue
     JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
        29     debug   run.sh anonymou PD       0:00      1 (Resources)
        28     debug   run.sh anonymou  R       1:13      1 localhost

每个作业只需要 4 个核心,因此两个作业都应该运行。也许我错误配置了 slurm 控制器,/etc/slurm.conf 中的相关行是:

# COMPUTE NODES
NodeName=localhost CPUs=64 Sockets=4 CoresPerSocket=8 ThreadsPerCore=2 State=UNKNOWN
PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP

如有任何帮助/提示我将不胜感激。

答案1

SLURM 默认不允许资源共享,因此当一个作业在 1 个节点上运行时,其余作业会等待它完成后才能在同一节点上执行任何其他作业。

SLURM 需要进行配置以实现资源共享,这应该相当简单且有据可查。

以下是要添加到您的 slurm.conf 文件(通常位于 /etc/slurm 下)的内容的示例:

SelectType=select/cons_res
SelectTypeParameters=
DefMemPerCPU=

这将允许使用插件共享节点的资源con_res

select/con_res插件允许使用多种参数(SelectTypeParameters)。最突出的参数如下(有关参数的完整列表,请参阅 slurm.conf 的手册页):

CR_CPU:CPU 是可消耗资源。
CR_CPU_内存:将内存作为消耗品添加到CR_CPU。
CR_Core 核心:核心是可消耗资源。
CR_核心_内存:将内存作为消耗品添加到 CR_CPU_Memory。

完成后,您已经选择了要在 SLURM 中用作消耗品的资源类型,您需要做的就是将选项添加到默认队列并在用作控制器的节点中shared=yes发出命令。scontrol reconfigure

相关内容