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 de computação de alto desempenho (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, forneça um nome para o cluster Slurm na caixa de texto Nome do Cluster.
Na guia Configurações Necessárias da página Novo Cluster Slurm, defina as seguintes configurações na caixa de texto Nome do Cluster:
- Região: 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.
- HTC VM Type: Permite especificar a VM SKU da máquina virtual que irá alojar cargas de trabalho de partição HTC.
- Dimensionamento automático: permite habilitar ou desabilitar o início e a interrupção 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 HPC Cores: 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.
- Max VMs por Scaleset: o número máximo de VMs que podem ser usadas para hospedar cargas de trabalho de partição.
- Usar instâncias spot: determina se você deseja permitir o uso de instâncias spot do Azure. 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 é 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 do Slurm: Escolha a versão do Slurm a ser usada com o cluster.
- Contabilidade de trabalho: especifique se deseja habilitar a contabilidade de tarefas e as configurações escolhidas para armazenar dados de contabilidade.
- Política de desligamento: você pode escolher entre encerrar a instância ou deslocá-la.
- Credenciais: as credenciais para se conectar à assinatura associada do Azure.
- Scheduler OS: Escolha qual sistema operacional Linux é usado para hospedar o agendador.
- HPC OS: Especifique qual sistema operacional Linux é usado para hospedar o agendador.
- Inicialização do Cluster do Agendador: aqui, você especifica instruções personalizadas a serem aplicadas à VM do Agendador.
- HTC Cluster Init: Especifique instruções personalizadas para aplicar aos nós HTC.
- Rede Avançada: Esta opção 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 página Cloud-init permite que você passe definições de configuração personalizadas para nós de máquina virtual 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 cinco por cento da memória disponível relatada em uma VM, mas você pode substituir esse valor no modelo de cluster definindo slurm.dampen_memory
a porcentagem de memória a ser retida. Por exemplo, para reter 20% da memória de uma VM, use:
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, precisará reconstruir o slurm.conf
arquivo 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
. O script está localizado no /opt/cycle/slurm
diretório no nó do agendador Slurm. Depois de fazer as alterações no cluster, execute o script a seguir como root com o apply_changes
parâmetro. Por exemplo, use/opt/cycle/slurm/cyclecloud_slurm.sh apply_changes
se você fizer alterações que afetem 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 slurm.conf
arquivo 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, em seguida, reinicie o serviço slurmctld:
SuspendExcNodes=hpc-pg0-[1-2]
Para excluir partições, você também modifica o /sched/slurm.conf
arquivo. Por exemplo, para excluir a partição HPC do dimensionamento automático, adicione a seguinte linha e slurm.conf
reinicie o slurmctld
serviço:
SuspendExcParts=hpc