SLURM:一个作业中不能使用超过8个CPU



很抱歉问了一个愚蠢的问题。我们使用slurm-16.05.9设置了一个小集群。sinfo命令显示:

NODELIST   NODES PARTITION       STATE CPUS    S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
g01            1    batch*        idle   40   2:20:2 258120    63995      1   (null) none
g02            1    batch*        idle   40   2:20:2 103285    64379      1   (null) none
g03            1    batch*        idle   40   2:20:2 515734    64379      1   (null) none

所以每个节点有2个套接字,每个套接字有20个内核,总共有40个CPU。但是,我们不能提交使用超过8个CPU的作业。例如,使用以下作业描述文件:

#!/bin/bash
#SBATCH -J Test       # Job name
#SBATCH -p batch
#SBATCH --nodes=1
#SBATCH --tasks=1
#SBATCH --cpus-per-task=10
#SBATCH -o log
#SBATCH -e err

然后提交此作业会出现以下错误消息:

sbatch: error: Batch job submission failed: Requested node configuration is not available

即使集群中根本没有作业,除非我们设置--cpus-per-task<=8.

我们的slurm.conf有以下内容:

ControlMachine=cbc1
ControlAddr=192.168.80.91
AuthType=auth/munge
CryptoType=crypto/munge
MpiDefault=pmi2
ProctrackType=proctrack/pgid
ReturnToService=0
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
SlurmUser=slurm
StateSaveLocation=/var/lib/slurm-llnl/slurmctld
SwitchType=switch/none
TaskPlugin=task/none
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0
DefMemPerCPU=128000
FastSchedule=0
MaxMemPerCPU=128000
SchedulerType=sched/backfill
SchedulerPort=7321
SelectType=select/cons_res
SelectTypeParameters=CR_Core_Memory
AccountingStorageType=accounting_storage/none
AccountingStoreJobComment=YES
ClusterName=cluster
JobCompType=jobcomp/none
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
GresTypes=gpu
NodeName=g01 CPUs=40 Sockets=2 CoresPerSocket=20 ThreadsPerCore=2 RealMemory=256000 State=UNKNOWN
NodeName=g02 CPUs=40 Sockets=2 CoresPerSocket=20 ThreadsPerCore=2 RealMemory=256000 State=UNKNOWN Gres=gpu:P100:1
NodeName=g03 CPUs=40 Sockets=2 CoresPerSocket=20 ThreadsPerCore=2 RealMemory=256000 State=UNKNOWN
PartitionName=batch Nodes=g0[1-3] Default=YES MaxTime=UNLIMITED State=UP

有人能告诉我们如何解决这个问题吗?

非常感谢。

谢长廷

问题很可能不是CPU的数量,而是内存。作业脚本没有指定内存需求,并且配置状态为

DefMemPerCPU=128000

因此,具有10个CPU的作业总共请求128万MB的

在旧版本的Slurm中,每个作业的内存计算可能与内核而非线程有关,因此实际请求将是640 000的一半单个节点上的RAM,而最大可用容量为515 734 MB。

在该假设下,请求8个CPU的作业请求512000MB。您可以使用scontrol show job <JOBID>进行确认

最新更新