Ubuntu

Slurm:有兩個單獨的隊列用於 GPU 和 CPU-only 作業

  • May 22, 2016

目前,我們已經建立了 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=8CoresPerSocket=6 Procs=12,因為這將與實際硬體匹配。

我已經嘗試查閱文件,但我仍然不知道該怎麼做。我需要修改gres.conf嗎?File=我應該為 CPU 指定哪個?然後,我想我會添加第三個分區,也許叫做cpuonly. 但這甚至是完成我想做的事情的正確方法嗎?我想我必須Gres=在以NodeName.

  • 設置兩個分區,一個用於 GPU,一個用於 CPU 作業。為每個使用MaxCPUsPerNode
  • 使用參數設置節點CPUs。添加的所有MaxCPUsPerNode內容都應小於或等於此(可用的 CPU/核心/執行緒)
  • 採用SelectTypeParameters=CR_CPU
  • 採用SchedulerType=sched/backfill

引用自:https://serverfault.com/questions/777807