Executa várias tarefas no mesmo trabalhador de slurm em paralelo

1

Temos alguns nós bastante gordurosos em nosso cluster SLURM (por exemplo, 14 núcleos). Estou tentando configurá-lo para que vários trabalhos em lote possam ser executados em paralelo, cada um solicitando, por exemplo, três núcleos. No entanto, não consigo fazer isso funcionar.

Exemplo de trabalho em lote:

#!/bin/bash
#
#SBATCH --job-name=job1
#SBATCH --output=job1.txt
#
#SBATCH -c 3
#SBATCH -N 1
srun sleep 300
srun echo $HOSTNAME

Trecho do arquivo slurm.conf:

TaskPlugin=task/cgroup
SelectType=select/cons_res
SelectTypeParameters=CR_CORE
NodeName=some-node NodeAddr=192.168.60.106 CPUs=12 State=UNKNOWN

Mas, se eu executar os dois trabalhos, recebo o seguinte erro:

sbatch: error: CPU count per node can not be satisfied

Encontrei alguns exemplos onde a opção sbatch -n é o que controla a quantidade de CPUs ou núcleos por trabalho em lote, no entanto, isso não faz sentido para mim desde que a documentação declara:

Controls the number of tasks to be created for the job

Se eu tentar, basta executar os trabalhos sequencialmente:

         JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            16  mainpart     job2  some-user PD       0:00      1 (Resources)
            15  mainpart     job1  some-user  R       4:04      1 some-node
    
por rob 12.06.2017 / 11:00

1 resposta

0

Eu tive o mesmo problema por dias com o SLURM executando apenas um trabalho por nó, não importando o que eu colocasse nos arquivos de lote. A seguinte combinação de configurações finalmente me permitiu obter vários lotes em execução em um único nó.

Antes de começar, certifique-se de que não haja trabalhos em execução e elimine seus nós. Veja esta resposta para mais sobre o serviço vs systemctl para fazê-lo na maioria dos sistemas Linux. / p>

sudo service slurmd stop
sudo service slurmctld stop

Em /etc/slurm-llnl/slurm.conf (a localização pode ser diferente)

...
SelectType=select/cons_res
SelectTypeParameters=CR_Core
...
NodeName=a NodeAddr=192.168.1.2 CPUs=16 Sockets=2 CoresPerSocket=4 ThreadsPerCore=2 RealMemory=12005 State=UNKNOWN

Isso é obviamente específico para um nó em particular, e o seu será diferente. Mas, se o nó não estiver configurado corretamente, o SLURM poderá retornar erros sobre a indisponibilidade de recursos. Para obter informações confiáveis sobre seu nó, tente o seguinte em cada nó:

sudo slurmd -C

Em seguida, use sua saída para definir cada nó no arquivo slurm.conf do controlador. Quando as coisas estiverem configuradas, inicie o backup do SLURM novamente e envie alguns lotes de teste para ver se eles se espalham pelos nós corretamente.

sudo service slurmd start
sudo service slurmctld start
    
por 12.05.2018 / 01:43

Tags