Exercício - Adicionar uma matriz de nós personalizada a um cluster HPC
Atenção
Este conteúdo faz referência ao CentOS, uma distribuição Linux com status de Fim de Vida (EOL). Por favor, considere o seu uso e planeje de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.
Um nodearray é uma coleção de nós configurados de forma idêntica de um cluster do Azure CycleCloud. Sua finalidade é acomodar o dimensionamento horizontal dos recursos de computação do cluster à medida que o número de trabalhos enfileirados muda. Cada nodearray tem um nome, um conjunto de atributos que se aplicam a cada um de seus nós e atributos opcionais que descrevem como o nodearray deve ser dimensionado.
As partições do agendador de tarefas Slurm agrupam nós em conjuntos lógicos e potencialmente sobrepostos. Seu objetivo é otimizar o processamento de trabalhos, levando em conta suas restrições específicas, como recursos ou limites de tempo. O agendador aloca trabalhos para nós dentro de uma partição até que seus recursos se esgotem ou todos os trabalhos sejam processados.
Você deseja modificar seu cluster gerenciado pelo Azure CycleCloud recém-implantado para levar em conta as necessidades de recursos específicos do trabalho. Para atingir esse objetivo, você decide aplicar mais alterações ao modelo subjacente e validar 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 propriedades de 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
Nota
Certifique-se de que 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ê começará adicionando uma definição de uma matriz de nós dentro do modelo Slurm que você personalizou no exercício anterior. O modelo de exemplo inclui duas partições rotuladas hpc e htc. Você criará outra partição e a matriz de nós correspondente destinada a trabalhos que se beneficiam dos recursos CUDA (Compute Unified Device Architecture).
Navegue para o portal do Azure. Quando solicitado, autentique-se com uma conta da 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 seu ícone na barra de ferramentas ao lado da caixa de texto de pesquisa e verifique se você está executando uma sessão Bash.
Execute o seguinte comando no Cloud Shell para definir o diretório de trabalho como aquele 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 nano editor, role até a
[parameters About]
seção 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
Nota
Se estiver a utilizar um computador Windows, pode colar o conteúdo da área de transferência utilizando a combinação de teclas Shift + Insert .
Nota
Suas alterações definem uma matriz de nós extra.
Tarefa 2: Adicionar parâmetros de interface gráfica ao modelo do Azure CycleCloud
Para poder modificar os valores dos parâmetros do modelo com a interface gráfica do Azure CycleCloud, você aplicará mais alterações ao modelo.
Na interface do nano editor, role até a
[[parameters Auto-Scaling]]
seção 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
[[[parameter HPCMaxScalesetSize]]]
seção 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
[[[parameter SchedulerClusterInitSpecs]]]
seção 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
[[parameters Advanced Networking]]
seção 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 propriedades de 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
Nota
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 seus valores:
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.json
Execute o seguinte comando para revisar a lista exportada de parâmetros e seus valores:
cat ~/params.json
Tarefa 4: Editar o arquivo de propriedades para incluir os novos parâmetros
Embora as edições aplicadas ao modelo do Azure CycleCloud incluíssem valores padrão para todos os parâmetros recém-introduzidos, talvez seja necessário modificá-los para levar em conta 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 nano editor, role até o final do arquivo e adicione o seguinte conteúdo começando 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 adicionada 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 seu arquivo de parâmetros para o cluster existente, substituindo sua configuração atual.
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
Nota
Você deve especificar o nome do cluster de destino e o
--force
sinalizador para substituir a configuração do cluster existente.No computador, abra outra janela do navegador e navegue até o URL IP_address https://><. Se lhe for pedido, confirme que pretende 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 Edit contoso-custom-slurm-lab-cluster, na página Sobre, selecione Avançar.
Na página Configurações necessárias, verifique a presença da entrada Tipo de VM CUDA definida como Standard_NC6 valor e as opções de dimensionamento automático correspondentes:
Parabéns! Concluiu com sucesso o segundo exercício deste módulo. Neste exercício, você personalizou ainda mais seu cluster do Azure CycleCloud usando um modelo modificado, incluindo a definição de uma nova matriz de nós com a partição correspondente. Para atingir esse objetivo, depois de editar o modelo, você exportou e editou o arquivo de parâmetros do cluster e o importou, juntamente com o modelo modificado, para o cluster.
Nota
Não exclua os recursos implantados e configurados neste exercício se planeja executar o próximo exercício. Estes recursos são necessários para concluir o próximo exercício.