Descrever como executar o Slurm com o Azure CycleCloud
Depois de concluir esta unidade, você poderá usar o Slurm no Azure CycleCloud.
Ativando o Slurm no CycleCloud
Você pode implantar um cluster HPC usando o Azure CycleCloud executando as seguintes etapas:
Conecte-se a uma Instância do Azure CycleCloud implantada e autentique-se.
Na página Criar um Novo Cluster, revise as opções disponíveis e, na seção Agendadores, selecione Slurm.
Na guia Sobre da página Novo Cluster Slurm, na caixa de texto Nome do Cluster, forneça um nome para o cluster Slurm.
Na guia Configurações Necessárias da página Novo Cluster Slurm, na caixa de texto Nome do Cluster, defina as seguintes configurações:
- Região. Isso define qual datacenter hospedará nós de cluster.
- Tipo de VM do agendador. Permite especificar a SKU da VM da máquina virtual que hospedará o agendador de tarefas.
- Tipo de VM HPC. Permite especificar a SKU da VM da máquina virtual que hospedará cargas de trabalho de partição HPC.
- Tipo HTC VM. Permite especificar a VM SKU da máquina virtual que hospedará cargas de trabalho de partição HTC.
- Dimensionamento Automático. Permite habilitar ou desabilitar o início e a parada de instâncias de VM que hospedam nós de partição quando esses nós são necessários ou não são mais necessários.
- Max núcleos HPC. O número máximo de núcleos de CPU que podem ser alocados para partições HPC durante o dimensionamento automático.
- Max HTC Cores. O número máximo de núcleos de CPU que podem ser alocados para partições HTC durante o dimensionamento automático.
- Máximo de VMs por Scaleset. Número máximo de VMs que podem ser usadas para hospedar cargas de trabalho de partição.
- Use instâncias spot. Se você deseja permitir que instâncias spot do Azure sejam usadas. Embora as instâncias spot sejam substancialmente mais baratas de executar, elas podem ser removidas sem aviso, o que pode afetar a execução do trabalho.
- ID da sub-rede. A sub-rede de rede virtual do Azure que hospedará VMs de nó de cluster.
Na página Armazenamento Conectado à Rede, configure se você usará as opções NFS Interno ou Externo para a montagem de armazenamento conectado à rede. Quando você seleciona Builtin, o nó do agendador será configurado como um servidor NFS que funciona como o ponto de montagem para outros nós. Se você especificar NFS Externo, poderá fornecer os detalhes de um dispositivo de armazenamento conectado à rede, como Arquivos NetApp do Azure, Cache HPC ou uma VM especialmente configurada executando um servidor NFS.
Na página Configurações avançadas, você pode especificar as seguintes configurações:
- Versão Slurm. A versão do Slurm que será usada com o cluster.
- Contabilidade de Trabalho. Se você deseja habilitar a contabilização de tarefas e as configurações, você escolherá armazenar dados de contabilidade.
- Política de desligamento. Você pode escolher entre encerrar a instância ou deslocá-la.
- Credenciais. As credenciais usadas para se conectar à assinatura associada do Azure.
- SO Agendador. Qual sistema operacional Linux é usado para hospedar o agendador. O padrão é o CentOS 8, mas você pode escolher uma imagem personalizada.
- SO HPC. Qual sistema operacional Linux é usado para hospedar o agendador. O padrão é o CentOS 8, mas você pode escolher uma imagem personalizada.
- Inicialização do cluster do agendador. Instruções personalizadas para aplicar à VM do agendador.
- HTC Cluster Init. Instruções personalizadas para aplicar aos nós HTC.
- Rede avançada. Permite ativar o Proxy de Retorno, se o nó principal pode ser acessado a partir de endereços da Internet e se os nós de execução podem ser acessados da Internet.
O cloud-init permite que você passe definições de configuração personalizadas para nós de máquinas virtuais depois que eles forem implantados.
Configurações de memória
O CycleCloud define automaticamente a quantidade de memória disponível para o Slurm usar para fins de agendamento. Como a quantidade de memória disponível pode mudar ligeiramente devido a diferentes opções do kernel Linux, e o sistema operacional e a VM podem usar uma pequena quantidade de memória que, de outra forma, estaria disponível para trabalhos, o CycleCloud reduz automaticamente a quantidade de memória na configuração do Slurm. Por padrão, o CycleCloud retém 5% da memória disponível relatada em uma VM, mas esse valor pode ser substituído no modelo de cluster definindo slurm.dampen_memory para a porcentagem de memória a ser retida. Por exemplo, para reter 20% da memória de uma VM:
slurm.dampen_memory=20
Configurando partições Slurm
O modelo padrão fornecido com o Azure CycleCloud tem duas partições (hpc e htc) e você pode definir matrizes de nó personalizadas que mapeiam diretamente para partições Slurm. Por exemplo, para criar uma partição GPU, adicione a seguinte seção ao seu modelo de cluster:
[[nodearray gpu]]
MachineType = $GPUMachineType
ImageName = $GPUImageName
MaxCoreCount = $MaxGPUExecuteCoreCount
Interruptible = $GPUUseLowPrio
AdditionalClusterInitSpecs = $ExecuteClusterInitSpecs
[[[configuration]]]
slurm.autoscale = true
# Set to true if nodes are used for tightly-coupled multi-node jobs
slurm.hpc = false
[[[cluster-init cyclecloud/slurm:execute:2.0.1]]]
[[[network-interface eth0]]]
AssociatePublicIpAddress = $ExecuteNodesPublic
Editando clusters Slurm existentes
Se você modificar e aplicar alterações a um cluster Slurm existente, será necessário reconstruir o arquivo slurm.conf e atualizar os nós existentes no cluster. Você pode fazer isso usando um script presente em clusters Slurm implantados no Azure cyclecloud usando um script especial chamado cyclecloud_slurm.sh localizado no diretório /opt/cycle/slurm no nó do agendador Slurm. Depois de fazer as alterações no cluster, execute o script a seguir como root com o parâmetro apply_changes. Por exemplo:
/opt/cycle/slurm/cyclecloud_slurm.sh apply_changes
Se você fizer alterações que afetem os nós que participam de uma partição MPI (Message Passing Interface).
Desativando o dimensionamento automático para nós ou partições
Você pode desativar o dimensionamento automático para um cluster Slurm em execução editando o arquivo slurm.conf diretamente. Você pode excluir nós individuais ou partições inteiras do dimensionamento automático.
Para excluir um nó ou vários nós do dimensionamento automático, adicione SuspendExcNodes=<listofnodes> ao arquivo de configuração do Slurm. Por exemplo, para excluir os nós 1 e 2 da partição hpc, adicione o seguinte a /sched/slurm.conf e reinicie o serviço slurmctld:
SuspendExcNodes=hpc-pg0-[1-2]
Você exclui partições de você também modifica o arquivo /sched/slurm.conf. Por exemplo, para excluir a partição hpc do dimensionamento automático, adicione a seguinte linha ao slurm.conf e reinicie o serviço slurmctld.
SuspendExcParts=hpc