Neste documento, explicamos como configurar e implantar um cluster do Slurm autogerenciado que usa os tipos de máquina A4X Max, A4X, A4, A3 Ultra, A3 Mega ou A3 High. Para saber mais sobre esses tipos de máquina otimizados para aceleradores, consulte Sobre aceleradores de GPU.
As etapas neste documento mostram como criar um cluster do Slurm usando o Cluster Toolkit. O Cluster Toolkit é uma ferramenta de código aberto do Google que simplifica a configuração e a implantação de um cluster usando blueprints. Você tem controle total sobre o cluster, mas também é responsável por gerenciá-lo. Se você quiser evitar a sobrecarga de gerenciar um cluster e se concentrar na execução da carga de trabalho, crie um cluster totalmente gerenciado usando o Cluster Director.
Limitações
Dependendo do tipo de máquina que as instâncias do Compute Engine no cluster usam, as seguintes limitações se aplicam:
A4X Max
- Você não recebe descontos por uso prolongado ou descontos por compromisso de uso flexível para instâncias que usam esse tipo de máquina.
- Só é possível criar instâncias em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk (regional ou zonal). Só é possível usar o Google Cloud Hyperdisk.
- Esse tipo de máquina só está disponível na plataforma NVIDIA Grace.
- Não é possível mudar o tipo de máquina para o A4X Max. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
- Não é possível executar sistemas operacionais Windows nesse tipo de máquina. Para uma lista de sistemas operacionais Linux compatíveis, consulte os sistemas operacionais compatíveis com instâncias de GPU.
- As instâncias A4X Max não são compatíveis com o seguinte:
- Não é possível anexar discos do Hyperdisk ML criados antes de 4 de fevereiro de 2026 a tipos de máquina A4X Max.
A4X
- Você não recebe descontos por uso prolongado ou descontos por compromisso de uso flexível para instâncias que usam esse tipo de máquina.
- Só é possível criar instâncias em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk (regional ou zonal). Só é possível usar o Google Cloud Hyperdisk.
- Esse tipo de máquina só está disponível na plataforma NVIDIA Grace.
- Não é possível mudar o tipo de máquina para A4X. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
- Não é possível executar sistemas operacionais Windows nesse tipo de máquina. Para uma lista de sistemas operacionais Linux compatíveis, consulte os sistemas operacionais compatíveis com instâncias de GPU.
- Para instâncias A4X, quando você usa
ethtool -Spara monitorar a rede de GPU, os contadores de porta física que terminam em_phynão são atualizados. Esse é o comportamento esperado para instâncias que usam a arquitetura de função virtual (VF, na sigla em inglês) do MRDMA. Para mais informações, consulte Funções de MRDMA e ferramentas de monitoramento de rede. - As instâncias A4X não são compatíveis com o seguinte:
- Não é possível anexar discos do Hyperdisk ML criados antes de 4 de fevereiro de 2026 a tipos de máquina A4X.
A4
- Você não recebe descontos por uso prolongado e descontos por compromisso de uso flexível para instâncias que usam um tipo de máquina A4.
- Só é possível usar um tipo de máquina A4 em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk (regional ou zonal). Só é possível usar o Google Cloud Hyperdisk.
- O tipo de máquina A4 só está disponível na plataforma de CPU Emerald Rapids.
- Não é possível alterar o tipo de máquina de uma instância para ou do tipo de máquina A4. É preciso criar uma nova instância com esse tipo de máquina.
- Os tipos de máquina A4 não dão suporte a locatários individuais.
- Não é possível executar sistemas operacionais Windows em um tipo de máquina A4.
- Para instâncias A4, quando você usa
ethtool -Spara monitorar a rede de GPU, os contadores de porta física que terminam em_phynão são atualizados. Esse é o comportamento esperado para instâncias que usam a arquitetura de função virtual (VF, na sigla em inglês) do MRDMA. Para mais informações, consulte Funções de MRDMA e ferramentas de monitoramento de rede. - Não é possível anexar discos do Hyperdisk ML criados antes de 4 de fevereiro de 2026 a tipos de máquina A4.
A3 Ultra
- Você não recebe descontos por uso prolongado e descontos por compromisso de uso flexível no caso de instâncias que usam um tipo de máquina A3 Ultra.
- Só é possível usar um tipo de máquina A3 Ultra em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk (regional ou zonal). Só é possível usar o Google Cloud Hyperdisk.
- O tipo de máquina A3 Ultra só está disponível na plataforma de CPU Emerald Rapids.
- Não é possível mudar o tipo de máquina A3 Ultra. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
- Não é possível executar sistemas operacionais Windows em um tipo de máquina A3 Ultra.
- Os tipos de máquina A3 Ultra não dão suporte a locatários individuais.
- Para instâncias A3 Ultra, quando você usa
ethtool -Spara monitorar a rede de GPU, os contadores de portas físicas que terminam em_phynão são atualizados. Esse é o comportamento esperado para instâncias que usam a arquitetura de função virtual (VF, na sigla em inglês) do MRDMA. Para mais informações, consulte Funções de MRDMA e ferramentas de monitoramento de rede.
A3 Mega
- Você não recebe descontos por uso prolongado e descontos por compromisso de uso flexível no caso de instâncias que usam um tipo de máquina A3 Mega.
- Só é possível usar um tipo de máquina A3 Mega em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk regional em uma instância que usa um tipo de máquina A3 Mega.
- O tipo de máquina A3 Mega só está disponível na plataforma de CPU Sapphire Rapids.
- Não é possível mudar o tipo de máquina A3 Mega. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
- Não é possível executar sistemas operacionais Windows em um tipo de máquina A3 Mega.
A3 High
- Você não recebe descontos por uso prolongado e descontos por compromisso de uso flexível no caso de instâncias que usam um tipo de máquina A3 High.
- Só é possível usar um tipo de máquina A3 High em determinadas regiões e zonas.
- Não é possível usar o Persistent Disk regional em uma instância que usa um tipo de máquina A3 High.
- O tipo de máquina A3 High só está disponível na plataforma de CPU Sapphire Rapids.
- Não é possível mudar o tipo de máquina A3 High. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
- Não é possível executar sistemas operacionais Windows em um tipo de máquina A3 High.
- Para os tipos de máquina
a3-highgpu-1g,a3-highgpu-2gea3-highgpu-4g, é preciso criar instâncias usando VMs spot ou VMs flex-start. Para instruções detalhadas sobre essas opções, consulte o seguinte:- Para criar VMs spot, defina o modelo de provisionamento como
SPOTao criar uma VM otimizada para aceleradores. - Para criar VMs flex-start, use um dos seguintes métodos:
- Crie uma VM independente e defina o modelo de provisionamento como
FLEX_STARTao criar uma VM otimizada para aceleradores. - Criar uma solicitação de redimensionamento em um grupo gerenciado de instâncias (MIG). Para instruções, consulte Criar um MIG com VMs de GPU.
- Crie uma VM independente e defina o modelo de provisionamento como
- Para criar VMs spot, defina o modelo de provisionamento como
- Só é possível usar uma
VM confidencial
com um tipo de máquina
a3-highgpu-1gem regiões e zonas limitadas, e todas as limitações para VM confidencial em execução no tipo de máquina A3 High se aplicam.
Antes de começar
Antes de criar um cluster do Slurm, se ainda não tiver feito isso, conclua as seguintes etapas:
- Escolha uma opção de consumo: sua escolha determina como você recebe e usa os recursos de GPU. Para saber mais, consulte Escolher uma opção de consumo.
- Obter capacidade: o processo para obter capacidade varia de acordo com cada opção de consumo. Para saber mais sobre o processo de obtenção de capacidade para a opção de consumo escolhida, consulte Visão geral da capacidade.
- Verifique se você tem cota suficiente do Filestore ou do Google Cloud Managed Lustre:
é necessário ter cota suficiente do Filestore ou do Managed Lustre
na região e na zona de destino antes de implantar.
A cota mínima necessária depende do serviço de armazenamento e dos tipos de máquina
no cluster:
- Managed Lustre:
- A4X Max: requer um mínimo de 18.000 GiB de cota de capacidade de armazenamento e 9 GBps de cota de capacidade de processamento.
- A4X, A4, A3 Ultra, A3 Mega e A3 High: requer um mínimo de 36.000 GiB de cota de capacidade de armazenamento e 18 GBps de cota de capacidade de processamento.
- Filestore:
- A4X Max, A4X, A4, A3 Ultra e A3 Mega: requer um mínimo de 10 TiB (10.240 GiB) de cota de capacidade HIGH_SCALE_SSD (zonal).
- A3 High: requer um mínimo de 2,5 TiB (2.560 GiB) de cota de capacidade BASIC_SSD (padrão).
Para verificar a cota ou solicitar um aumento, consulte o seguinte:
- Para verificar a cota no seu projeto, consulte Ver cota específica da API.
- Se você não tiver cota suficiente, solicite um aumento de cota do Filestore ou solicite uma cota adicional do Managed Lustre.
- Managed Lustre:
- Instale o Cluster Toolkit: para provisionar clusters do Slurm, use a versão
v1.62.0ou mais recente do Cluster Toolkit.Para instalar o Cluster Toolkit, consulte Configurar o Cluster Toolkit.
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.
Configurar um bucket de armazenamento
Os blueprints de cluster usam módulos do Terraform para provisionar a infraestrutura em nuvem. 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.
Para criar esse bucket e ativar o controle de versões na CLI, execute os seguintes comandos:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua:
BUCKET_NAME: um nome para o bucket do Cloud Storage que atende aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto.BUCKET_REGION: qualquer local disponível.
Instalar o Cluster Toolkit
Para usar o Slurm com o Google Cloud, instale o Cluster Toolkit. Para Linux e macOS, recomendamos que você instale o pacote pré-criado.
Depois de instalar o Cluster Toolkit, acesse o diretório que
contém o binário gcluster:
Se você instalou o pacote pré-criado, mude para o diretório
gcluster-bundle:cd gcluster-bundle
Se você criou o binário a partir da origem, mude para o
cluster-toolkit:cd cluster-toolkit
Essa implantação de cluster requer o Cluster Toolkit
v1.62.0ou posterior. Verifique a versão instalada:./gcluster --version
Criar um arquivo de implantação
Crie um arquivo de implantação que possa ser usado para especificar o bucket do Cloud Storage, definir nomes para sua rede e sub-rede e definir variáveis de implantação, como ID do projeto, região e zona.
Para criar um arquivo de implantação, siga as etapas do tipo de máquina e da opção de consumo necessários.
A4X Max
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a4xmax-bm-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_max_cluster_size: NUMBER_OF_INSTANCES
a4x_max_reservation_name: RESERVATION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias bare metal do A4X Max no cluster. É possível especificar qualquer número de instâncias. No entanto, as instâncias A4X Max são interconectadas fisicamente por um sistema NVLink de vários nós em grupos de 18 instâncias (72 GPUs) para formar um domínio NVLink.Para um desempenho de rede ideal, recomendamos que você especifique um valor que seja múltiplo de 18 instâncias (por exemplo, 18, 36 ou 54). Quando você cria um cluster A4X Max, o blueprint do A4X Max cria e aplica automaticamente uma política de posicionamento compacto com uma topologia de GPU de
1x72para cada grupo de 18 instâncias.RESERVATION_NAME: o nome da sua reserva.
A4X
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a4xhigh-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_cluster_size: NUMBER_OF_INSTANCES
a4x_reservation_name: RESERVATION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias A4X no cluster. É possível especificar qualquer número de instâncias. No entanto, as instâncias A4X são interconectadas fisicamente por um sistema NVLink de vários nós em grupos de 18 instâncias (72 GPUs) para formar um domínio NVLink.Para um desempenho de rede ideal, recomendamos que você especifique um valor que seja múltiplo de 18 instâncias (por exemplo, 18, 36 ou 54). Quando você cria um cluster A4X, o blueprint do A4X cria e aplica automaticamente uma política de posicionamento compacto com uma topologia de GPU de
1x72para cada grupo de 18 instâncias. Para mais informações sobre a topologia A4X, consulte Princípios básicos da A4X.RESERVATION_NAME: o nome da sua reserva.
A4
Os parâmetros que você precisa adicionar ao arquivo de implantação dependem da opção de consumo que você está usando para a implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.
Vinculada à reserva
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a4high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_reservation_name: RESERVATION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.RESERVATION_NAME: o nome da sua reserva.
Início flexível
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a4high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_dws_flex_enabled: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
Essa implantação provisiona nós de computação estáticos,
o que significa que o cluster tem um número definido de nós em todos os momentos. Se você quiser ativar o escalonamento automático do cluster, use o arquivo examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml e edite os valores de node_count_static e node_count_dynamic_max para que correspondam ao seguinte:
node_count_static: 0
node_count_dynamic_max: $(vars.a4h_cluster_size)
Spot
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a4high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_INSTANCES
a4h_enable_spot_vm: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
A3 Ultra
Os parâmetros que você precisa adicionar ao arquivo de implantação dependem da opção de consumo que você está usando para a implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.
Vinculada à reserva
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a3ultra-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_reservation_name: RESERVATION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.RESERVATION_NAME: o nome da sua reserva.
Início flexível
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a3ultra-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_dws_flex_enabled: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
Essa implantação provisiona nós de computação estáticos,
o que significa que o cluster tem um número definido de nós em todos os momentos. Se você quiser ativar o escalonamento automático do cluster, use o arquivo examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml e edite os valores de node_count_static e node_count_dynamic_max para que correspondam ao seguinte:
node_count_static: 0
node_count_dynamic_max: $(vars.a3u_cluster_size)
Spot
Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado
a3ultra-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_INSTANCES
a3u_enable_spot_vm: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
A3 Mega
Os parâmetros que você precisa adicionar ao arquivo de implantação dependem da opção de consumo que você está usando para a implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.
Vinculada à reserva
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3mega-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_reservation_name: RESERVATION_NAME
a3mega_partition_name: PARTITION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.RESERVATION_NAME: o nome da sua reserva.PARTITION_NAME: um nome para a partição do Slurm.
Início flexível
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3mega-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_dws_flex_enabled: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
Essa implantação provisiona nós de computação estáticos,
o que significa que o cluster tem um número definido de nós em todos os momentos. Se você quiser ativar o escalonamento automático do cluster, use o arquivo examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml e edite os valores de node_count_static e node_count_dynamic_max para que correspondam ao seguinte:
node_count_static: 0
node_count_dynamic_max: $(vars.a3mega_cluster_size)
Spot
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3mega-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_INSTANCES
a3mega_enable_spot_vm: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
A3 High
Os parâmetros que você precisa adicionar ao arquivo de implantação dependem da opção de consumo que você está usando para a implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.
Vinculada à reserva
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_reservation_name: RESERVATION_NAME
a3_partition_name: PARTITION_NAME
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.TCPX_KERNEL_LOGIN,TCPX_KERNEL_PASSWORDeKEYSERVER_UBUNTU_KEY: as credenciais técnicas para imagens otimizadas de A3 High. Esses valores são fornecidos pela equipe de conta do Google Cloud. Para mais informações, consulte Receber credenciais para o GPUDirect-TCPX.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região que tem as máquinas reservadas.ZONE: a zona em que você quer provisionar o cluster. Se você estiver usando uma opção de consumo baseada em reserva, as informações de região e zona foram fornecidas pela equipe de conta quando a capacidade foi entregue.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.RESERVATION_NAME: o nome da sua reserva.PARTITION_NAME: um nome para a partição do Slurm.
Início flexível
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_dws_flex_enabled: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.TCPX_KERNEL_LOGIN,TCPX_KERNEL_PASSWORDeKEYSERVER_UBUNTU_KEY: as credenciais técnicas para imagens otimizadas de A3 High. Esses valores são fornecidos pela equipe de conta do Google Cloud. Para mais informações, consulte Receber credenciais para o GPUDirect-TCPX.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
Essa implantação provisiona nós de computação estáticos,
o que significa que o cluster tem um número definido de nós em todos os momentos. Se você quiser ativar o escalonamento automático do cluster, use o arquivo examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml e edite os valores de node_count_static e node_count_dynamic_max para que correspondam ao seguinte:
node_count_static: 0
node_count_dynamic_max: $(vars.a3_static_cluster_size)
Spot
Para criar o arquivo de implantação, crie um arquivo YAML chamado
a3high-slurm-deployment.yaml e adicione o conteúdo a seguir.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_INSTANCES
a3_enable_spot_vm: true
Substitua:
BUCKET_NAME: o nome do bucket do Cloud Storage, que você criou na seção anterior.DEPLOYMENT_NAME: um nome para a implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um.PROJECT_ID: o ID do projeto.TCPX_KERNEL_LOGIN,TCPX_KERNEL_PASSWORDeKEYSERVER_UBUNTU_KEY: as credenciais técnicas para imagens otimizadas de A3 High. Esses valores são fornecidos pela equipe de conta do Google Cloud. Para mais informações, consulte Receber credenciais para o GPUDirect-TCPX.SYSTEM_NETWORK_NAME: o nome da rede VPC a ser usada para a rede do sistema.SYSTEM_SUBNET_NAME: o nome da sub-rede a ser usada para a rede do sistema.CLUSTER_NAME: um nome para o cluster do Slurm.REGION: a região em que você quer provisionar o cluster.ZONE: a zona em que você quer provisionar o cluster.NUMBER_OF_INSTANCES: o número de instâncias do Compute Engine que você quer para o cluster.
Provisionar um cluster do Slurm
O Cluster Toolkit provisiona o cluster com base no arquivo de implantação criado na etapa anterior e no blueprint de cluster padrão. Para saber mais sobre imagens personalizadas ou como implantar o Slurm com uma imagem do SO personalizada, consulte Imagens personalizadas do Slurm.
Para provisionar o cluster, selecione uma das seguintes opções para executar o
comando gcluster deploy
para seu tipo de máquina no diretório do Cluster Toolkit. Essa
etapa leva aproximadamente de 20 a 30 minutos.
A4X Max
O blueprint do A4X Max integra o Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre. O blueprint
também configura a rede Lustre (LNet) na interface de rede principal
eth0. Para mais informações, consulte a
visão geral do Lustre gerenciado.
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve
A4X
O blueprint do A4X integra o
Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre.
Por padrão, o blueprint do cluster implanta instâncias de computação que usam Advanced Compute Images pré-criadas. Essas imagens vêm pré-configuradas com drivers e softwares especializados para executar suas cargas de trabalho, incluindo drivers NVIDIA, CUDA, malhas de rede e agentes Slurm, o que elimina a necessidade de criar imagens manualmente durante a implantação. Para saber mais sobre os pacotes de software pré-criados e as ferramentas de configuração que você está implantando, consulte Visão geral das imagens de computação avançada.
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve
A4
O blueprint A4 integra o
Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre.
Por padrão, o blueprint do cluster implanta instâncias de computação que usam Advanced Compute Images pré-criadas. Essas imagens vêm pré-configuradas com drivers e softwares especializados para executar suas cargas de trabalho, incluindo drivers NVIDIA, CUDA, malhas de rede e agentes Slurm, o que elimina a necessidade de criar imagens manualmente durante a implantação. Para saber mais sobre os pacotes de software pré-criados e as ferramentas de configuração que você está implantando, consulte Visão geral das imagens de computação avançada.
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
A3 Ultra
O blueprint do A3 Ultra integra o
Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre.
Por padrão, o blueprint do cluster implanta instâncias de computação que usam Advanced Compute Images pré-criadas. Essas imagens vêm pré-configuradas com drivers e softwares especializados para executar suas cargas de trabalho, incluindo drivers NVIDIA, CUDA, malhas de rede e agentes Slurm, o que elimina a necessidade de criar imagens manualmente durante a implantação. Para saber mais sobre os pacotes de software pré-criados e as ferramentas de configuração que você está implantando, consulte Visão geral das imagens de computação avançada.
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve
A3 Mega
O blueprint do A3 Mega integra o
Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre.
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve
A3 High
O blueprint A3 High integra o
Managed Lustre para
armazenamento de diretório inicial de alto desempenho (/home). O blueprint
configura automaticamente o acesso a serviços particulares (PSA) para fazer peering da sua
rede VPC com o Managed Lustre.
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve
Conectar-se ao cluster do Slurm
Para acessar o cluster, faça login no nó de login do Slurm. Se você encontrar erros ao tentar se conectar ao nó, consulte Solução de problemas de erros de SSH.
Para se conectar ao nó de login no cluster, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Localize o nó de login, que se chama
DEPLOYMENT_NAME-login-001.Na linha do nó, na coluna Conectar, clique em SSH.
gcloud
Para se conectar ao nó de login no cluster, siga estas etapas:
Para identificar o nó de login, use o seguinte comando
gcloud compute instances list:gcloud compute instances list \ --filter="name ~ login" \ --format "value(name)" \ --zones=ZONESe a saída listar vários clusters do Slurm, será possível identificar o nó de login pelo
DEPLOYMENT_NAMEque você especificou nas etapas anteriores.Para se conectar ao nó de login, use o comando
gcloud compute sshcom a flag--tunnel-through-iap:gcloud compute ssh LOGIN_NODE \ --tunnel-through-iap \ --zone=ZONESubstitua:
ZONE: a zona em que o nó está.LOGIN_NODE: o nome do nó de login.
Testar o desempenho da rede no cluster do Slurm
Recomendamos que você valide a funcionalidade dos clusters provisionados. Para isso, use os testes da NCCL, que são testes da NVIDIA Collective Communications Library (NCCL) otimizados para o ambiente do Google.
Reimplante o cluster do Slurm.
Se você precisar aumentar o número de nós de computação ou adicionar novas partições ao
cluster, talvez seja necessário atualizar as configurações do cluster do Slurm
reimplantando-o. Se você modificou o blueprint para criar imagens personalizadas, acelere o processo de reimplantação usando uma imagem de uma implantação anterior. Para evitar a necessidade de criar novas imagens ao
reimplantar um cluster que usa imagens personalizadas, especifique a flag --only.
Para reimplantar a infraestrutura do cluster (cluster-env,cluster) sem executar
módulos de criação de imagens, faça o seguinte:
Com base no tipo de máquina que o cluster usa, selecione uma das opções a seguir para reimplantar o cluster e a infraestrutura de TI dele:
A4X Max
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
Destruir o cluster do Slurm
Quando você destrói o cluster, o Cluster Toolkit exclui automaticamente a instância do Managed Lustre e todos os dados armazenados nela.
Para destruir o cluster do Slurm, siga estas etapas:
Se ainda não tiver feito isso, desconecte-se do cluster.
Antes de executar o comando
destroy, navegue até a raiz do diretório do Cluster Toolkit.Para destruir o cluster, execute o comando
gcluster destroy:./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Substitua
DEPLOYMENT_FOLDERpelo nome da pasta de implantação.
Quando o Cluster Toolkit destrói o cluster, a saída é semelhante a esta:
Destroy complete! Resources: DEPLOYMENT_NAME destroyed.