Slurm 作业待处理,但资源可用

Sim*_*guy 7 batch scheduled-tasks queue-management

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

> sbatch run.sh
Run Code Online (Sandbox Code Playgroud)

run.sh 看起来像:

#! /bin/bash

#SBATCH --ntasks=4

export OMP_THREAD_LIMIT=4
/home/Benchmarks/Graph500/omp-csr/omp-csr -s 23
Run Code Online (Sandbox Code Playgroud)

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

> 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
Run Code Online (Sandbox Code Playgroud)

每个作业只需要 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
Run Code Online (Sandbox Code Playgroud)

我会感谢任何帮助/提示。

Bru*_*ira 7

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

需要为资源共享配置 SLURM,这应该相当简单并且有据可查。

添加到 slurm.conf 文件(通常位于 /etc/slurm 下)的示例如下:

SelectType=select/cons_res
SelectTypeParameters=
DefMemPerCPU=
Run Code Online (Sandbox Code Playgroud)

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

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

CR_CPU:CPU 是消耗性资源。
CR_CPU_Memory:将内存作为消耗品添加到 CR_CPU。
CR_Core Cores:核心是消耗性资源。
CR_Core_Memory:将内存作为消耗品添加到 CR_CPU_Memory。

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

  • 选项“shared=yes”去哪里了? (2认同)