Criar um cluster do Slurm autogerenciado com uma VM A4
Nesta página, descrevemos como criar e implantar rapidamente um cluster Slurm otimizado com IA usando tipos de máquina otimizados para acelerador A4 com a CLI gcloud e o Cluster Toolkit.
Os tipos de máquina otimizados para aceleradores A4 vêm com GPUs NVIDIA B200 anexadas e são projetados especificamente para computação intensiva de IA para ajudar seu cluster do Slurm a lidar com eficiência com o treinamento e a inferência de modelos em grande escala. Para mais informações sobre os tipos de máquina otimizados para aceleradores A4 no Google Cloud, consulte Tipos de máquina de GPU.
Como alternativa, use o Cluster Director para criar um cluster do Slurm baseado em A4. O Cluster Director é um serviço gerenciado que simplifica e automatiza a implantação de clusters, reduzindo a sobrecarga operacional. Para mais informações, consulte Criar um cluster do Slurm totalmente gerenciado com duas VMs A4.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud , clique em Orientação:
Visão geral sobre o tutorial
Neste tutorial, descrevemos as etapas para configurar um cluster Slurm otimizado para IA usando tipos de máquina otimizados para aceleradores A4. Especificamente, você vai configurar um cluster com máquinas virtuais do Compute Engine, criar um bucket do Cloud Storage para armazenar os módulos necessários do Terraform e configurar uma instância do Filestore para provisionar o cluster do Slurm. Para concluir as etapas deste tutorial, siga este processo:
- Configure o projeto do Google Cloud com as permissões necessárias para este guia e as variáveis de ambiente para reservar a máquina.
- Criar um bucket do Cloud Storage.
- Configure as variáveis de ambiente de armazenamento.
- Configurar o Cluster Toolkit.
- Mude para o diretório do Cluster Toolkit.
- Crie um arquivo YAML de implantação do Slurm.
- Provisione um cluster do Slurm usando um blueprint.
- Conecte-se ao cluster do Slurm.
Antes de começar
- Reserve um bloco de capacidade ou crie uma reserva no modo calendário para uma máquina
a4-highgpu-8g. Verifique se você tem cota suficiente do Managed Lustre (um mínimo de 36.000 GiB de cota de capacidade de armazenamento e 18 GBps de cota de capacidade de processamento) para provisionar os recursos do blueprint.
- Para instruções detalhadas sobre como verificar as cotas, consulte Conferir a cota específica da API.
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Compute Engine, Managed Lustre, Service Networking, Cloud Storage, Service Usage e API Resource Manager:
Funções exigidas
Para receber as permissões necessárias para implantar um cluster do Slurm, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Administrador do Storage (
roles/storage.admin) no projeto - Admin da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na própria conta de serviço -
Para consumir uma reserva de projeto único:
Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto -
Para consumir uma reserva compartilhada:
Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto proprietário e em qualquer projeto consumidor em que você queira consumir a reserva
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Custos
O custo de execução deste tutorial varia de acordo com cada seção concluída, como a configuração do tutorial ou a execução de jobs. Você pode calcular o custo usando a calculadora de preços.
Para estimar o custo de configuração deste tutorial, use as seguintes especificações:
- Capacidade do Managed Lustre: 36.000 GiB no nível de desempenho de 500 MBps por TiB. O preço do Managed Lustre depende da capacidade de armazenamento e do nível de desempenho configurado.
- Disco permanente padrão:50 GB
pd-standardpara o nó de login do Slurm. - Discos permanentes de desempenho (SSD):
pd-ssdde 50 GB para o controlador Slurm. - Instância do Compute Engine: 1
a4-highgpu-8g.
Iniciar o Cloud Shell
Neste tutorial, você usará o Cloud Shell, um ambiente de shell para gerenciar recursos hospedados no Google Cloud.
O Cloud Shell vem pré-instalado com a Google Cloud CLI. A CLI gcloud fornece a principal interface de linha de comando para o Google Cloud. Inicie o Cloud Shell
Acesse o console do Google Cloud .
No canto superior direito do console, clique no botão Ativar Cloud Shell:

Uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando.
Use esse shell para executar comandos do gcloud e do Cluster Toolkit.
Definir variáveis de capacidade de reserva de máquina
No Cloud Shell, defina as seguintes variáveis de ambiente de capacidade de reserva. Essas variáveis de ambiente definem valores do marcador
para configurar o projeto para acessar a máquina a4-highgpu-8g reservada.
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Substitua:
A4_RESERVATION_PROJECT_ID: o ID do projeto Google Cloud que recebeu o bloco de reserva do tipo de máquina A4.A4_RESERVATION_NAME: o nome da reserva de GPU usada no projeto. Por exemplo,a4high-exr.A4_DEPLOYMENT_NAME: um nome exclusivo para a implantação do cluster do Slurm. Por exemplo,my-slurm-cluster-deployment.A4_REGION: a região que está executando o bloco de reserva de máquina A4 reservado. Por exemplo,us-central1.A4_ZONE: a zona que contém as máquinas reservadas. Essa string precisa conter a região e a zona. Por exemplo,us-central1-a.A4_DEPLOYMENT_FILE_NAME: um nome exclusivo para o arquivo YAML do modelo do Slurm. Se você concluir este tutorial mais de uma vez, escolha um nome de implantação exclusivo a cada vez.
Mudar para o projeto aprovado em A4
Mude para o projeto Google Cloud que tem o bloco de reserva aprovado para o tipo de máquina A4:
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Criar um bucket do Cloud Storage
Quando você implanta um blueprint e os módulos dele, o Terraform cria um arquivo de estado que mapeia o blueprint para os recursos na nuvem. Para manter um registro confiável da sua infraestrutura, uma prática recomendada é armazenar os arquivos de estado do Terraform em um local remoto com controle de versões, como um bucket do Cloud Storage com controle de versões ativado.
Para armazenar o arquivo de estado, crie um bucket do Cloud Storage com o controle de versões ativado no Cloud Shell:
gcloud storage buckets create gs://${BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${BUCKET_NAME} --versioning
Substitua:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.A4_RESERVATION_PROJECT_ID: o ID do projeto Google Cloud que recebeu o bloco de reserva do tipo de máquina A4.BUCKET_LOCATION: a região do Google Cloudem que o bucket do Cloud Storage será criado, comous-central1. O Terraform armazena o arquivo de estado nesse local.
Definir variáveis de capacidade de armazenamento
No Cloud Shell, crie as variáveis de ambiente para o bucket que você criou na etapa anterior.
export BUCKET_NAME=BUCKET_NAME export BUCKET_LOCATION=BUCKET_LOCATION
Substitua:
BUCKET_NAME: o nome do bucket.BUCKET_LOCATION: a região em que o bucket está localizado.
Configurar o Cluster Toolkit
Para criar um cluster do Slurm em um projeto do Google Cloud , use o Cluster Toolkit para processar a implantação e o provisionamento do cluster. O Cluster Toolkit é um software de código aberto oferecido pelo Google Cloud para simplificar o processo de implantação de cargas de trabalho no Google Cloud.
Siga as etapas abaixo para configurar o Cluster Toolkit.
Instalar o Cluster Toolkit
Para instalar o Cluster Toolkit, faça o download e extraia o pacote binário pré-criado para sua plataforma. Os arquivos ZIP e TAR (.tgz) estão disponíveis.
- Acesse a página de versões do Cluster Toolkit no GitHub.
- Baixe o pacote que corresponde à sua plataforma e arquitetura. As
seguintes opções estão disponíveis:
gcluster_bundle_linux_amd64.zipougcluster_bundle_linux_amd64.tgzgcluster_bundle_linux_arm64.zipougcluster_bundle_linux_arm64.tgzgcluster_bundle_mac_amd64.zipougcluster_bundle_mac_amd64.tgzgcluster_bundle_mac_arm64.zipougcluster_bundle_mac_arm64.tgz
- No terminal, extraia os arquivos do pacote para um novo diretório:
-
Se você baixou um pacote ZIP, extraia os arquivos usando o comando
unzip:unzip BUNDLE_FILENAME -d cluster-toolkit
-
Se você baixou um pacote tar, extraia os arquivos usando o comando
tar:mkdir -p cluster-toolkit tar -xzf BUNDLE_FILENAME -C cluster-toolkit
Substitua
BUNDLE_FILENAMEpelo nome do pacote que você baixou. -
- Acesse o novo diretório:
cd cluster-toolkit
- Verifique a instalação:
./gcluster --version
A saída mostra a versão atual do Cluster Toolkit que você está usando.
Depois de instalar o binário, você já pode implantar clusters para executar seus jobs ou cargas de trabalho.
Criar um arquivo de implantação
No diretório do Cluster Toolkit, crie o arquivo YAML de implantação do Slurm.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlCole o conteúdo a seguir no arquivo YAML.
--- terraform_backend_defaults: type: gcs configuration: bucket: BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Para salvar e sair do arquivo, pressione Ctrl+O > Enter > Ctrl+X.
Provisionar o cluster do Slurm
Para provisionar o cluster Slurm, execute o comando de implantação a seguir. Esse
comando provisiona o cluster do Slurm com o
arquivo de blueprint
examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml.
Por padrão, esse blueprint implanta instâncias de computação (Compute Engine instances)
que usam Advanced Compute Images pré-criadas.
Para saber mais sobre os drivers pré-instalados e as ferramentas de configuração que você está implantando, consulte Visão geral das Advanced Compute Images.
No Cloud Shell, use o comando gcluster deploy para iniciar a criação do cluster.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Conexão ao cluster
Após a implantação, conecte-se ao console do Google Cloud para conferir o cluster.
Acesse a página Compute Engine > Instâncias de VM no consoleGoogle Cloud .
Localize o nó de login (
a4high-login-001ou similar).Clique em SSH para se conectar.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Destruir o cluster do Slurm
Recomendamos que você limpe seus recursos quando eles não forem mais necessários. Quando você destrói o cluster do Slurm, todos os recursos provisionados são excluídos, incluindo a instância do Managed Lustre e todos os dados armazenados nela.
Antes de executar o comando de destruição, navegue até a raiz do diretório do Cluster Toolkit. Por padrão,
DEPLOYMENT_FOLDERestá localizado na raiz do diretório do Cluster Toolkit.Use o comando
gcluster destroypara destruir o cluster:./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Substitua
DEPLOYMENT_FOLDERpelo nome da pasta de implantação. Geralmente, é o mesmo queDEPLOYMENT_NAME.
Quando a destruição for concluída, uma mensagem semelhante a esta será exibida:
Destroy complete! Resources: xx destroyed.
Excluir o bucket de armazenamento
Exclua o bucket do Cloud Storage depois de verificar se o comando anterior foi concluído sem erros:
gcloud storage buckets delete gs://${BUCKET_NAME}
Solução de problemas
Erro: o Cloud Shell não pode provisionar o cluster porque não há mais armazenamento disponível.
Esse erro pode aparecer se você usa o Cloud Shell com frequência e ficou sem espaço de armazenamento.
Para resolver esse problema, consulte Desativar ou redefinir o Cloud Shell.
Erro: o nome do cluster ou do modelo já existe.
Esse erro pode aparecer se você estiver usando um projeto que já usou os nomes de arquivo exatos usados neste tutorial. Por exemplo, se outra pessoa na sua organização fez todo o tutorial.
Para resolver esse problema, execute o tutorial novamente e escolha um nome exclusivo para o arquivo de implantação. Em seguida, execute o comando de provisionamento do cluster Slurm com o novo arquivo de implantação.
A seguir
- Tarefas avançadas do Slurm:
- Saiba como gerenciar eventos de host:
- Ver a topologia de uma instância de computação
- Monitorar instâncias do Compute Engine e clusters do Slurm
- Reportar host com falha