Exercício – adicionar uma matriz de nós personalizada a um cluster de HPC
Cuidado
Esse conteúdo faz referência ao CentOS, uma distribuição Linux com status de EOL (fim do serviço). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.
Um nodearray é uma coleção de nós configurados de maneira idêntica de um cluster do Azure CycleCloud. A finalidade deles é acomodar a escala horizontal dos recursos de computação do cluster conforme o número de trabalhos em fila muda. Cada nodearray tem um nome, um conjunto de atributos que se aplicam a cada um dos nós e atributos opcionais dele que descrevem como o nodearray deve ser dimensionado.
O agendador de trabalhos Slurm particiona os nós do grupo em conjuntos lógicos e potencialmente sobrepostos. Seu objetivo é otimizar o processamento de trabalhos, levando em conta suas restrições específicas, como limites de recursos ou de tempo. O agendador aloca trabalhos para nós dentro de uma partição até que os recursos deles sejam esgotados ou todos os trabalhos sejam processados.
Você deseja modificar seu cluster gerenciado pelo Azure CycleCloud recentemente implantado para considerar as necessidades de recursos específicas a cada trabalho. Para alcançar essa meta, você decide aplicar mais alterações ao modelo subjacente e validar a sua abordagem.
Neste exercício, você executará as seguintes tarefas:
- Tarefa 1: adicionar uma definição de nodearray ao modelo do Azure CycleCloud
- Tarefa 2: adicionar parâmetros de interface gráfica ao modelo do Azure CycleCloud
- Tarefa 3: exportar as propriedades do cluster do Azure CycleCloud
- Tarefa 4: editar o arquivo de propriedades para incluir os novos parâmetros
- Tarefa 5: importar o modelo modificado e o arquivo de parâmetros para o cluster existente
Observação
Certifique-se de que você concluiu com êxito o exercício anterior antes de iniciar este exercício.
Tarefa 1: adicionar uma definição de nodearray ao modelo do Azure CycleCloud
Você iniciará adicionando uma definição de nodearray no modelo Slurm personalizado no exercício anterior. O modelo de exemplo inclui duas partições rotuladas hpc e htc. Você criará outra partição e o nodearray correspondente, destinado a trabalhos que se beneficiam das funcionalidades de CUDA (arquitetura de dispositivo unificado de computação).
Navegue até o Portal do Azure. Quando solicitado, autentique com uma conta Microsoft ou uma conta do Microsoft Entra que tenha a função de Colaborador ou Proprietário na assinatura do Azure que você está usando neste módulo.
No portal do Azure, abra o Cloud Shell selecionando o ícone correspondente na barra de ferramentas ao lado da caixa de texto de pesquisa e verifique se você está executando uma sessão do Bash.
Execute o seguinte comando no Cloud Shell para definir o diretório de trabalho como o que hospeda o repositório GitHub que você buscou no exercício anterior:
cd ~/cyclecloud-slurm/templates
Execute o seguinte comando para abrir o modelo baixado no editor nano:
nano slurm.txt
Na interface do editor nano, role até a seção
[parameters About]
e adicione o seguinte conteúdo diretamente antes dela:[[nodearray cuda]] MachineType = $CUDAMachineType ImageName = $CUDAImageName MaxCoreCount = $MaxCUDAExecuteCoreCount AdditionalClusterInitSpecs = $CUDAClusterInitSpecs [[[configuration]]] slurm.autoscale = true slurm.hpc = true [[[cluster-init cyclecloud/slurm:execute]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $ExecuteNodesPublic
Observação
Se estiver usando um computador Windows, poderá colar o conteúdo da área de transferência usando a combinação de teclas Shift + Insert.
Observação
Suas alterações definem um nodearray extra.
Tarefa 2: adicionar parâmetros de interface gráfica ao modelo do Azure CycleCloud
Para poder modificar os valores dos parâmetros de modelo com a interface gráfica do Azure CycleCloud, você aplicará mais alterações ao modelo.
Na interface do editor nano, role até a seção
[[parameters Auto-Scaling]]
e adicione o seguinte conteúdo diretamente antes dela:[[[parameter CUDAMachineType]]] Label = CUDA VM Type Description = The VM type for CUDA execute nodes ParameterType = Cloud.MachineType DefaultValue = Standard_NC24
Role até a seção
[[[parameter HPCMaxScalesetSize]]]
e adicione o seguinte conteúdo diretamente antes dela:[[[parameter MaxCUDAExecuteCoreCount]]] Label = Max CUDA Cores Description = The total number of CUDA execute cores to start DefaultValue = 100 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 0 Config.IntegerOnly = true
Role até a seção
[[[parameter SchedulerClusterInitSpecs]]]
e adicione o seguinte conteúdo diretamente antes dela:[[[parameter CUDAImageName]]] Label = CUDA OS ParameterType = Cloud.Image Config.OS = linux DefaultValue = cycle.image.centos7 Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}
Role até a seção
[[parameters Advanced Networking]]
e adicione o seguinte conteúdo diretamente antes dela:[[[parameter CUDAClusterInitSpecs]]] Label = CUDA Cluster-Init DefaultValue = =undefined Description = Cluster init specs to apply to CUDA execute nodes ParameterType = Cloud.ClusterInitSpecs
Selecione a combinação de teclas Ctrl + O, selecione a tecla Enter e, em seguida, selecione a combinação de teclas Ctrl + X para salvar as alterações feitas e fechar o arquivo.
Tarefa 3: exportar as propriedades do cluster do Azure CycleCloud
Antes de aplicar as alterações de configuração feitas no modelo do Azure CycleCloud ao cluster de destino, primeiro você precisará exportar as propriedades do cluster.
Execute o seguinte comando no Cloud Shell para listar os clusters existentes:
cyclecloud show_cluster
Observação
Verifique se a saída inclui a entrada contoso-custom-slurm-lab-cluster.
Execute o seguinte comando para exportar para o arquivo params.json a lista de parâmetros do cluster contoso-custom-slurm-lab-cluster e os respectivos valores:
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
Execute o seguinte comando para examinar a lista exportada com os parâmetros e os valores correspondentes:
cat ~/params.json
Tarefa 4: editar o arquivo de propriedades para incluir os novos parâmetros
Mesmo que as edições aplicadas ao modelo do Azure CycleCloud tenham incluído valores padrão para todos os parâmetros introduzidos recentemente, talvez seja necessário modificá-los para considerar os seus requisitos específicos. Nesta tarefa, você definirá os valores dos parâmetros CUDAMachineType e MaxCUDAExecuteCoreCount.
Execute o seguinte comando no Cloud Shell para abrir o arquivo de parâmetros baixado no editor nano:
nano ~/params.json
No editor nano, role até o final do arquivo e adicione o seguinte conteúdo, iniciando com uma nova linha antes das chaves de fechamento (}):
"CUDAMachineType" : "Standard_NC6", "MaxCUDAExecuteCoreCount" : 60
Adicione uma vírgula ao final da linha que precede a linha que você adicionou na etapa anterior:
"CUDAMachineType" : "Standard_NC6"
Selecione a combinação de teclas Ctrl + O, selecione a tecla Enter e, em seguida, selecione a combinação de teclas Ctrl + X para salvar as alterações feitas e fechar o arquivo.
Tarefa 5: importar o modelo modificado e o arquivo de parâmetros para o cluster existente
Para concluir este exercício, você importará o modelo modificado e o arquivo de parâmetros correspondente para o cluster existente, substituindo a configuração atual dele.
Execute o seguinte comando no Cloud Shell para importar o modelo modificado e seu arquivo de parâmetros para o cluster existente:
cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --force
Observação
Você deve especificar o nome do cluster de destino e o sinalizador
--force
para sobrescrever a configuração do cluster existente.No computador, abra outra janela do navegador e navegue até a URL https://<endereço_IP>. Se solicitado, confirme que você deseja continuar.
Se você for solicitado a autenticar, entre fornecendo credenciais da mesma conta de usuário do aplicativo Azure CycleCloud usada para configurar a CLI do Azure CycleCloud.
Na interface gráfica do Azure CycleCloud, navegue até a página Clusters. Na lista de clusters, selecione a entrada contoso-custom-slurm-lab-cluster e, em seguida, selecione Editar.
Na janela pop-up Editar contoso-custom-slurm-lab-cluster, na página Sobre, selecione Próximo.
Na página Configurações necessárias, verifique a presença da entrada Tipo de VM CUDA definida para o valor Standard_NC6 e as opções de dimensionamento automático correspondentes:
Parabéns! Você concluiu com sucesso o segundo exercício deste módulo. Neste exercício, você personalizou ainda mais o seu cluster do Azure CycleCloud usando um modelo modificado, incluindo a definição de um novo nodearray com a partição correspondente. Para atingir essa meta, depois de editar o modelo, você exportou e editou o arquivo de parâmetros de cluster e o importou, juntamente com o modelo modificado, para o cluster.
Observação
Não exclua os recursos implantados e configurados neste exercício se estiver planejando executar o próximo exercício. Esses recursos são necessários para a conclusão do próximo exercício.