目前,我们已经建立了 Slurm 来管理一个由六个节点组成的小型集群,每个节点有四个 GPU。到目前为止效果很好,但现在我们希望将Intel Core i7-5820K CPU 用于只需要 CPU 处理能力的工作。每个 CPU 有 6 个内核和 12 个线程,每个 GPU 需要一个线程/逻辑内核,因此剩余 8 个线程(每个节点)可用于“仅 CPU”作业。
当前配置:
猫 /etc/slurm-llnl/gres.conf
Name=gpu File=/dev/nvidia0
Name=gpu File=/dev/nvidia1
Name=gpu File=/dev/nvidia2
Name=gpu File=/dev/nvidia3
cat /etc/slurm-llnl/slurm.conf(摘录)
SchedulerType=sched/builtin
SelectType=select/cons_res
SelectTypeParameters=CR_Core
AccountingStorageType=accounting_storage/none
GresTypes=gpu
MaxTasksPerNode=4
NodeName=node1 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
NodeName=node2 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
NodeName=node3 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
NodeName=node4 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
NodeName=node5 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
NodeName=node6 CoresPerSocket=4 Procs=8 Sockets=1 ThreadsPerCore=2 Gres=gpu:4 State=UNKNOWN
PartitionName=gpu Nodes=node[2-6] Default=NO Shared=NO MaxTime=INFINITE State=UP
PartitionName=short Nodes=node1 Default=YES Shared=NO MaxTime=INFINITE State=UP
我想第一步是更改CoresPerSocket=4 Procs=8
为CoresPerSocket=6 Procs=12
,因为这将与实际硬件匹配。
我已经尝试查阅文档,但我仍然不知道该怎么做。我需要修改gres.conf
吗?File=
我应该为 CPU 指定哪个?然后,我想我会添加第三个分区,也许叫做cpuonly
. 但这甚至是完成我想做的事情的正确方法吗?我想我必须Gres=
在以NodeName
.