Criar um cluster Slurm otimizado com IA com um tipo de máquina 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, ajudando seu cluster Slurm a processar com eficiência treinamento e inferência de modelos em grande escala. Para mais informações sobre tipos de máquinas otimizadas para aceleradores A4 no Google Cloud, consulte Tipos de máquinas com GPU.
Como alternativa, use o Cluster Director para criar um cluster 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 otimizado para IA com base em um modelo.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud , clique em Orientação:
Visão geral sobre o tutorial
Este tutorial descreve as etapas para configurar um cluster Slurm otimizado com IA usando tipos de máquina A4 otimizados para aceleradores. Especificamente, você configura um cluster com máquinas virtuais do Compute Engine, cria um bucket do Cloud Storage para armazenar os módulos necessários do Terraform e configura uma instância do Filestore para provisionar seu cluster do Slurm. Para concluir as etapas deste tutorial, siga este processo:
- Configure o projeto Google Cloud com as permissões e as variáveis de ambiente necessárias.
- Configure um bucket do Cloud Storage
- 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 para uma máquina
a4-highgpu-8g. Essas máquinas são necessárias para este tutorial. Verifique se você tem cota suficiente do Filestore para provisionar o cluster do Slurm. Você precisa de pelo menos 10.240 GiB de capacidade zonal, também conhecida como capacidade de SSD de alta escala.
Para conferir sua cota do Filestore, acesse Cotas e limites do sistema no console Google Cloud e filtre a tabela para mostrar apenas os recursos do Filestore.
- Para instruções detalhadas sobre como verificar as cotas do Filestore, consulte Conferir a cota específica da API.
- Se você não tiver cota suficiente, solicite um aumento de cota.
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Compute Engine, Filestore, Cloud Storage, Service Usage e Cloud Resource Manager:
Funções exigidas
Para garantir que a conta de serviço padrão do Compute Engine tenha as permissões necessárias para implantar um cluster do Slurm, peça ao administrador para conceder os seguintes papéis do IAM à conta de serviço padrão do Compute Engine:
-
Leitor de objetos do Storage (
roles/storage.objectViewer) no seu projeto -
Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1) no seu projeto -
Usuário da conta de serviço (
roles/iam.serviceAccountUser) na própria conta de serviço
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço padrão do Compute Engine as permissões necessárias por meio de 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 Filestore (padrão) por região:10.240 GiB.
- 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 de VM: 1
a4-highgpu-8g.
Iniciar o Cloud Shell
Neste tutorial, você vai 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, que fornece a principal interface de linha de comando para 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.
Defina as variáveis de ambiente
No Cloud Shell, defina as seguintes variáveis de ambiente para usar no restante do tutorial. Essas variáveis de ambiente definem valores de marcador de posição para as seguintes tarefas:
Configura o projeto com os valores relevantes para acessar a máquina
a4-highgpu-8greservada.Configura um bucket do Cloud Storage para armazenar módulos do Cluster Toolkit.
Variáveis de capacidade de reserva
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 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.
Variáveis de capacidade de armazenamento
Crie as variáveis de ambiente para o bucket do Cloud Storage.
O Cluster Toolkit usa blueprints para definir e implantar clusters de VMs. Um blueprint define um ou mais módulos do Terraform para provisionar a infraestrutura do Cloud. Esse bucket é usado para armazenar esses modelos.
export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION
Substitua:
GOOGLE_CLOUD_BUCKET_NAME: o nome que você quer usar para o bucket do Cloud Storage que atende aos requisitos de nomenclatura de bucket.GOOGLE_CLOUD_BUCKET_LOCATION: qualquer Google Cloud região de sua escolha, onde o bucket será hospedado. Por exemplo,us-central1.
Mudar para o projeto aprovado em A4
Execute o comando a seguir para garantir que você esteja no 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
Crie o bucket para armazenar seus módulos do Terraform. No Cloud Shell, usando suas variáveis de ambiente, execute o seguinte comando:
Uma prática recomendada ao trabalhar com o Terraform é armazenar o estado remotamente em um arquivo com suporte a versões. Em Google Cloud, é possível criar um bucket do Cloud Storage com o controle de versões ativado.
gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${GOOGLE_CLOUD_BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning
Configurar o Cluster Toolkit
Para criar um cluster Slurm em um projeto Google Cloud , use o Cluster Toolkit para implantar e provisionar o 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.
Clonar o repositório do Cluster Toolkit no GitHub
No Cloud Shell, clone o repositório do GitHub.
git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.git
Acesse o diretório de trabalho principal:
cd cluster-toolkit/
Criar o binário do Cluster Toolkit
No Cloud Shell, crie o binário do Cluster Toolkit da origem executando o seguinte comando:
make
Para verificar o build, execute o seguinte comando:
Para implantar um cluster Slurm de máquina otimizada para acelerador de alto desempenho A4, use a versão
v1.51.1ou mais recente do Cluster Toolkit../gcluster --version
Depois de criar 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: GOOGLE_CLOUD_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.
No Cloud Shell, inicie 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 Google Cloud console 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.
Por padrão, os modelos A4 High ativam a proteção contra exclusão na instância do Filestore. Ao destruir o cluster do Slurm, desative a proteção contra exclusão antes de executar o comando de destruição.
Desativar proteção contra exclusão
Para desativar a proteção contra exclusão ao atualizar uma instância, use um comando semelhante ao seguinte:
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
Substitua INSTANCE_NAME pelo nome da instância que você
quer editar. Por exemplo, my-genomics-instance.
Para encontrar o INSTANCE_NAME, execute gcloud filestore instances
list. Esse comando lista todas as instâncias do Filestore no projeto Google Cloud atual, incluindo os nomes, locais (zonas), níveis, capacidade e status.
Depois de executar o comando, encontre a instância do Filestore que
corresponde à máquina a4-highgpu-8g em execução neste tutorial.
Destruir o cluster do Slurm
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.Para destruir o cluster, execute:
./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://${GOOGLE_CLOUD_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 provisionar o cluster Slurm com o novo arquivo de implantação.
A seguir
- Tarefas avançadas do Slurm:
- Saiba como reimplantar o cluster do Slurm.
- Saiba como testar o desempenho da rede no cluster do Slurm.
- Saiba como gerenciar eventos de host:
- Ver a topologia de uma instância de computação
- Monitorar instâncias de computação no cluster do Slurm
- Reportar um host com falha