Descrever como executar o Slurm com o Azure CycleCloud

Concluído

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:

  1. Conecte-se a uma Instância do Azure CycleCloud implantada e autentique-se.

  2. Na página Criar um Novo Cluster, revise as opções disponíveis e, na seção Agendadores, selecione Slurm.

    A screenshot depicting the Create a New Cluster page of the Azure CycleCloud web application.

  3. Na guia Sobre da página Novo Cluster Slurm, na caixa de texto Nome do Cluster, forneça um nome para o cluster Slurm.

  4. 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.

    A screenshot depicting the Required Settings tab of the New Slurm Cluster page of the Azure CycleCloud web application.

  5. 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.

  6. 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.

    A screenshot depicting the Advanced Settings tab of the New Slurm Cluster page of the Azure CycleCloud web application.

  7. 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