Ubuntu
Slurm:有兩個單獨的隊列用於 GPU 和 CPU-only 作業
目前,我們已經建立了 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
.
- 設置兩個分區,一個用於 GPU,一個用於 CPU 作業。為每個使用
MaxCPUsPerNode
。- 使用參數設置節點
CPUs
。添加的所有MaxCPUsPerNode
內容都應小於或等於此(可用的 CPU/核心/執行緒)- 採用
SelectTypeParameters=CR_CPU
- 採用
SchedulerType=sched/backfill