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
.