Criar um cluster do Slurm H4D com recursos de gerenciamento aprimorados

Nesta página, descrevemos como criar um cluster do Slurm de computação de alta performance (HPC) que usa acesso direto à memória remota (RDMA) com VMs H4D e recursos aprimorados de gerenciamento de clusters. Você usa a CLI gcloud e o Cluster Toolkit para configurar o cluster.

A série de máquinas H4D foi projetada especificamente para atender às necessidades de cargas de trabalho exigentes de HPC. O H4D oferece instâncias com escalonabilidade aprimorada da carga de trabalho por meio da rede Cloud RDMA com capacidade de processamento de 200 Gbps. Para mais informações sobre os tipos de máquinas H4D otimizados para computação em Cloud de Confiance by S3NS, consulte Série de máquinas H4D.

Antes de começar

Antes de criar um cluster do Slurm, se ainda não tiver feito isso, siga estas etapas:

  1. Escolha uma opção de consumo: a opção escolhida determina como você quer receber e usar recursos de vCPU.
  2. Receba capacidade: receba capacidade para a opção de consumo selecionada.
  3. Para saber mais, consulte Escolher uma opção de consumo e receber capacidade.

  4. Verifique se você tem cota de capacidade do Filestore suficiente: é necessário ter cota suficiente do Filestore na região de destino antes da implantação. A capacidade mínima necessária depende dos tipos de máquina no cluster:
    • A4X Max, A4X, A4, A3 Ultra e A3 Mega: requer um mínimo de 10 TiB (10.240 GiB) de capacidade HIGH_SCALE_SSD (zonal).
    • A3 High: requer um mínimo de 2,5 TiB (2.560 GiB) de capacidade BASIC_SSD (padrão).

    Para verificar a cota ou solicitar um aumento, consulte o seguinte:

  5. Instale o Cluster Toolkit: para provisionar clusters do Slurm, use a versão Cluster Toolkit v1.62.0 ou mais recente.

    Para instalar o Cluster Toolkit, consulte Configurar o Cluster Toolkit.

No Cloud de Confiance console, ative o Cloud Shell.

Ativar o Cloud Shell

Na parte de baixo do Cloud de Confiance console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

Configurar um bucket de armazenamento

Os blueprints de cluster usam módulos do Terraform para provisionar a infraestrutura do Cloud. Uma prática recomendada ao trabalhar com o Terraform é armazenar o estado remotamente em um arquivo com suporte a versões. Em Cloud de Confiance by S3NS, é 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:

Abrir o diretório do Cluster Toolkit

Para verificar se você está no diretório do Cluster Toolkit, execute o comando a seguir:

cd cluster-toolkit

Essa implantação de cluster requer o Cluster Toolkit v1.70.0 ou mais recente. Para verificar sua versão, execute o seguinte comando:

./gcluster --version

Criar um arquivo de implantação

Crie um arquivo de implantação 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 H4D:

Os parâmetros que você precisa adicionar ao arquivo de implantação dependem da opção de consumo que está usando para a implantação. Selecione a guia que corresponde à opção de consumo que você quer usar.

Vinculada à reserva

Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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 sua implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um deles.
  • 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 serão fornecidas pela equipe da sua conta quando a capacidade for entregue.
  • NUMBER_OF_VMS: o número de VMs 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 h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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 sua implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um deles.
  • 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_VMS: o número de VMs 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/h4d/hpc-slurm-h4d.yaml e edite os valores de node_count_static e node_count_dynamic_max para corresponder ao seguinte:

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

Para criar o arquivo de implantação, use um editor de texto para criar um arquivo YAML chamado h4d-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
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_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 sua implantação. Se você estiver criando vários clusters, selecione um nome exclusivo para cada um deles.
  • 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_VMS: o número de VMs que você quer para o cluster.

Provisionar um cluster do Slurm H4D

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 mais informações sobre o software instalado pelo blueprint, consulte Saiba mais sobre imagens personalizadas do Slurm.

Usando o Cloud Shell, no diretório em que você instalou o Cluster Toolkit e criou o arquivo de implantação, é possível provisionar o cluster com o comando a seguir, que usa o arquivo de blueprint do Slurm H4D. Essa etapa leva aproximadamente 20 a 30 minutos.

./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve

Conectar-se ao cluster do Slurm

Para acessar o cluster, faça login no nó de login do Slurm. Para fazer login, você pode usar o Cloud de Confiance console ou Google Cloud CLI.

Console

  1. Acesse a página Compute Engine > Instâncias de VM.

    Acessar a página "Instâncias de VM"

  2. Localize o nó de login. Ele precisa ter um nome com o padrão DEPLOYMENT_NAME +login-001.

  3. Na coluna Conectar do nó de login, clique em SSH.

gcloud

Para se conectar ao nó de login, siga estas etapas:

  1. Identifique o nó de login usando o gcloud compute instances list comando.

    gcloud compute instances list \
      --zones=ZONE \
      --filter="name ~ login" --format "value(name)"
    

    Se a saída listar vários clusters do Slurm, você poderá identificar o nó de login pelo DEPLOYMENT_NAME especificado.

  2. Use o gcloud compute ssh comando para se conectar ao nó de login.

    gcloud compute ssh LOGIN_NODE \
      --zone=ZONE --tunnel-through-iap
    

    Substitua:

    • ZONE: a zona em que as VMs do cluster estão localizadas.
    • LOGIN_NODE: o nome do nó de login, que você identificou na etapa anterior.

Reimplantar 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.

Para reimplantar o cluster usando uma imagem atual, faça o seguinte:

  1. Conectar ao cluster

  2. Execute este comando:

    ./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
    

    Esse comando é apenas para reimplantações em que uma imagem já existe. Ele apenas reimplantará o cluster e a infraestrutura dele.

Destruir o cluster do Slurm

Para remover o cluster do Slurm e as instâncias nele, siga estas etapas:

  1. Desconecte-se do cluster, se ainda não tiver feito isso.

  2. Antes de executar o comando de destruição, navegue até a raiz do diretório do Cluster Toolkit. Por padrão, DEPLOYMENT_FOLDER está localizado na raiz do diretório do Cluster Toolkit.

  3. Para destruir o cluster, execute:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Substitua:

    • DEPLOYMENT_FOLDER: o nome da pasta de implantação. Geralmente, é o mesmo que DEPLOYMENT_NAME.

Quando a remoção do cluster for concluída, você verá uma mensagem semelhante a esta:

  Destroy complete! Resources: xx destroyed.

Para saber como destruir a infraestrutura de forma limpa e conferir instruções avançadas de implantação manual, consulte a pasta de implantação localizada na raiz do diretório do Cluster Toolkit: DEPLOYMENT_FOLDER/instructions.txt

A seguir