Slurm: Имейте две отдельные очереди для задач только для GPU и CPU

На данный момент мы настроили Slurm для управления небольшим кластером из шести узлов с четырьмя графическими процессорами в каждом. До сих пор это работало отлично, но теперь мы хотим использовать процессоры Intel Core i7-5820K для задач, требующих только вычислительной мощности процессора. Каждый ЦП имеет шесть ядер и 12 потоков, каждому графическому процессору требуется один поток / логическое ядро, поэтому остается 8 потоков (на узел), которые можно использовать для заданий «только ЦП».

Текущая конфигурация:

cat /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 = я должен указать для ЦП? Затем я подумал, что добавлю третий раздел, возможно, с названием cpuonly . Но действительно ли это правильный способ достичь того, что я пытаюсь сделать? Думаю, мне нужно что-то добавить к параметру Gres = в строках, начинающихся с NodeName .

1
задан 19 May 2016 в 18:56
1 ответ
  • Настройте два раздела: один для графического процессора, а другой - для задач центрального процессора. Для каждого используйте MaxCPUsPerNode .
  • Настройте узлы с помощью параметра CPUs . Все добавленные MaxCPUsPerNode должны быть меньше или соответствовать этому (доступные процессоры / ядра / потоки)
  • Использовать SelectTypeParameters = CR_CPU
  • Использовать SchedulerType = sched / backfill
1
ответ дан 3 December 2019 в 23:46

Теги

Похожие вопросы