Tenho acesso a um grupo de servidores conectados a uma LAN de 1 Gb, e cada um deles possui mais de 40 núcleos e sistema operacional Ubuntu. Todos eles têm um NAS comum. Instalei o SLURM em alguns deles e configurei-o para que cada servidor seja um nó de controle e de computação, e os servidores não estejam conectados. As análises necessárias são bioinformáticas e vinculadas à CPU, mas com arquivos em GB. Minhas perguntas são as seguintes:
- Este não é um cluster de computação, correto? O que seria necessário para vincular esses servidores em um único cluster?
- É uma prática válida usar gerenciadores HPC como o Slurm nesta configuração? Como os dados seriam compartilhados? Eles têm um NAS comum, mas executar quaisquer cálculos diretamente no NAS é muito lento em comparação com os arquivos locais.
Minha solução ideal seria puxar os arquivos para uma máquina local (de preferência, independentemente de sua localização, mas o NAS poderia ser o hub comum), realizar o cálculo e possivelmente retornar os arquivos de saída. Este é um pedido irracional ou um problema resolvido?
Desde já, obrigado!
Responder1
Sim, isso é um cluster de computação. Tenho uma definição ampla, como vários nós de computação encarregados da mesma carga de trabalho. Grande farm de construção com vários hosts executando trabalhadores de computação qualificados. O mesmo acontece com os enormes sistemas da lista TOP500.
Mais importante ainda, faça uso da capacidade do slurm para gerenciar vários nós. Caso contrário, um controlador gerenciando apenas a si mesmo é bastante complexo, pois não possui muitos recursos em comparação com sistemas mais simples. Adicione todos os nós e divida-os em partições.
Jobs que solicitam mais de um nó exigem que os programas reconheçam vários nós, como no MPI. Para programas inconscientes regulares, basta manter as solicitações em um nó.
Armazenamento, você precisará projetar algo para levar os arquivos aos nós. Normalmente as opções incluem:
- Copie os arquivos para o armazenamento local de cada nó. (slurm sbcast)
- Distribua um armazenamento distribuído em vários discos de nós. (Lustre, Ceph)
- Compartilhamento de arquivos de alto desempenho montado em cada nó. (Todos os arrays flash servindo NFS)