问题描述
我在 Slurm 集群中分配 GPU 资源时遇到问题。
指定1个GPU,如下图运行,提示无法分配gres资源。如果不止一个,结果相同。
$ srun --gres=gpu:1 --pty bash
srun: error: Unable to create step for job 73: Invalid generic resource (gres) specification
计算节点的gres信息好像正确出来了,如下
$ sinfo -o "%20N %10c %10m %25f %10G "
NODELIST cpuS MEMORY AVAIL_FEATURES GRES
gpu_svr[1-4 72 515484 (null) gpu:8
slurm.conf中的Node配置如下
/etc/slurm/slurm.conf
GresTypes=gpu
NodeName=gpu_svr1 NodeAddr=x.x.x.1 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr2 NodeAddr=x.x.x.2 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr3 NodeAddr=x.x.x.3 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr4 NodeAddr=x.x.x.4 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
PartitionName=v100 Nodes=ALL Default=YES MaxTime=INFINITE State=UP
这里是计算节点上的 gres.conf
gres.conf
NodeName=gpu_svr[1-4] Name=gpu File=/dev/nvidia[0-7]
解决方法
解决了。
slurm.conf 中应说明以下选项
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
JobAcctGatherType=jobacct_gather/cgroup