Slurm: Tem duas filas separadas para trabalhos somente com GPU e CPU

1

No momento, configuramos o Slurm para gerenciar um pequeno cluster de seis nós com quatro GPUs cada. Isso tem funcionado muito bem até agora, mas agora queremos utilizar as CPUs Intel Core i7-5820K para tarefas que exigem apenas o poder de processamento da CPU. Cada CPU tem seis núcleos e 12 threads, cada GPU requer um thread / core lógico, então existem 8 threads restantes (por nó) que podem ser usados para jobs "somente CPU".

Configuração atual:

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 (excerto)

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

Acho que o primeiro passo seria alterar CoresPerSocket=4 Procs=8 para CoresPerSocket=6 Procs=12 , porque isso corresponderia ao hardware real.

Eu já tentei consultar a documentação, mas ainda não sei o que fazer. Preciso modificar o gres.conf ? Qual File= devo especificar para uma CPU? Então, pensei em adicionar uma terceira partição, talvez chamada cpuonly . Mas isso é o caminho certo para realizar o que estou tentando fazer? Eu acho que tenho que adicionar algo ao parâmetro Gres= nas linhas começando com NodeName .

    
por Micha 19.05.2016 / 17:56

1 resposta

1
  • Configure duas partições, uma para GPU, uma para tarefas de CPU. Use MaxCPUsPerNode para cada.
  • Configure os nós usando o parâmetro CPUs . Todos os MaxCPUsPerNode adicionados devem ser menores ou superiores a isso (CPUs / Cores / Threads disponíveis)
  • Use SelectTypeParameters=CR_CPU
  • Use SchedulerType=sched/backfill
por 22.05.2016 / 23:57