Criar cluster

Se você tiver interesse nos clusters de treinamento da Gemini Enterprise Agent Platform, entre em contato com seu representante de vendas para solicitar acesso.

Nesta página, mostramos o método direto, orientado por API, para criar e gerenciar um cluster de treinamento. Você vai aprender a definir a configuração completa do cluster, incluindo nós de login, partições de GPU de alto desempenho, como o A4, e configurações do orquestrador Slurm, em um arquivo JSON. Também incluímos como usar chamadas de API REST e curl para implantar essa configuração, criando o cluster e gerenciando o ciclo de vida dele com as operações GET, LIST, UPDATE e DELETE.

Definir a configuração do cluster

Crie um arquivo JSON para definir a configuração completa do cluster de treinamento.

Se a política da organização proibir endereços IP públicos em instâncias de computação, implante o cluster de treinamento com o parâmetro enable_public_ips: false e use o Cloud NAT para saída de dados para a Internet.

A primeira etapa no provisionamento de um cluster de treinamento é definir a configuração completa em um arquivo JSON. Esse arquivo funciona como o blueprint do cluster, especificando tudo, desde o nome e as configurações de rede até o hardware para os nós de login e nós de trabalho.

A seção a seguir fornece vários arquivos de configuração JSON completos que servem como modelos práticos para uma variedade de casos de uso comuns. Consulte esta lista para encontrar o exemplo que melhor atende às suas necessidades e use-o como ponto de partida.

Cada exemplo é seguido por uma descrição detalhada dos principais parâmetros usados nessa configuração específica.

GPU somente com o Filestore

Essa é a configuração padrão. Ele fornece uma instância do Filestore que serve como o diretório /home para o cluster, adequado para uso geral e armazenamento de dados do usuário.

O exemplo a seguir mostra o conteúdo de gpu-filestore.json. Essa especificação cria um cluster com uma partição de GPU. Você pode usar isso como um modelo e modificar valores como machineType ou nodeCount para atender às suas necessidades.

Para ver uma lista de parâmetros, consulte Referência de parâmetros.

 {
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 200
      },
      "labels": { "example-key": "example-value" }
    },
    {
      "id": "a4",
      "machine_spec": {
        "machine_type": "a4-highgpu-8g",
        "accelerator_type": "NVIDIA_B200",
        "accelerator_count": 8,
        "reservation_affinity": {
          "reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
          "key": "compute.googleapis.com/reservation-name",
          "values": [
            "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"
          ]
        }
      },
      "provisioning_model": "RESERVATION",
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "hyperdisk-balanced",
        "boot_disk_size_gb": 200
      },
      "labels": { "example-key": "example-value" }
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
        {
          "id": "a4",
          "node_pool_ids": [
            "a4"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

GPU com Filestore e Managed Lustre

Essa configuração avançada inclui a instância padrão do Filestore, além de um sistema de arquivos Lustre de alto desempenho. Escolha essa opção se os jobs de treinamento exigirem acesso de alta capacidade de processamento a grandes conjuntos de dados.

Para ver uma lista de parâmetros, consulte Referência de parâmetros.

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 200
      },
      "lustres": [
        "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE"
      ]
    },
    {
      "id": "a4",
      "machine_spec": {
        "machine_type": "a4-highgpu-8g",
        "accelerator_type": "NVIDIA_B200",
        "accelerator_count": 8,
        "reservation_affinity": {
          "reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
          "key": "compute.googleapis.com/reservation-name",
          "values": [
            "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"
          ]
        }
      },
      "provisioning_model": "RESERVATION",
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "hyperdisk-balanced",
        "boot_disk_size_gb": 200
      },
      "lustres": [
        "projects/PROJECT_ID/locations/ZONE/instances/LUSTRE"
      ]
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
        {
          "id": "a4",
          "node_pool_ids": [
            "a4"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}
  

GPU com script de inicialização

Este exemplo demonstra como adicionar um script personalizado a um pool de nós. Esse script é executado em todos os nós do pool na inicialização. Para configurar isso, adicione os campos relevantes à definição do pool de nós, além das configurações gerais. Para ver uma lista de parâmetros e as descrições deles, consulte Referência de parâmetros.

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 200
      },
      "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n"
    },
    {
      "id": "a4",
      "machine_spec": {
        "machine_type": "a4-highgpu-8g",
        "accelerator_type": "NVIDIA_B200",
        "accelerator_count": 8,
        "reservation_affinity": {
          "reservationAffinityType": "RESERVATION_AFFINITY_TYPE",
          "key": "compute.googleapis.com/reservation-name",
          "values": [
            "projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME"
          ]
        }
      },
      "provisioning_model": "PROVISIONING_MODEL",
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "enable_public_ips": true,
      "zone": "ZONE",
      "boot_disk": {
        "boot_disk_type": "hyperdisk-balanced",
        "boot_disk_size_gb": 200
      },
      "startup_script" : "#Example script\nsudo mkdir -p /data\necho 'Script Finished'\n"
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
        {
          "id": "a4",
          "node_pool_ids": [
            "a4"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

Cluster somente de CPU

Para provisionar um ambiente de cluster de treinamento, primeiro defina a configuração completa em um arquivo JSON. Esse arquivo funciona como o blueprint do cluster, especificando tudo, desde o nome e as configurações de rede até o hardware para os nós de login e de trabalho.

Para ver uma lista de parâmetros, consulte Referência de parâmetros.

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
        {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

Configuração avançada do Slurm

Este exemplo oferece controle refinado sobre o Slurm ao definir parâmetros slurm.conf por nome e executar scripts de prólogo e epílogo para configuração e limpeza automatizadas de jobs. Os parâmetros podem ser definidos para todo o cluster, para uma única partição ou para um único pool de nós.

Há três mapas de configuração, um para cada registro slurm.conf:

  • config na especificação do Slurm para configurações em todo o cluster
  • config em uma partição
  • Entrada node_sets para um pool de nós

Para saber as regras sobre nomes e valores de parâmetros e quais parâmetros são recusados, consulte Mapas de configuração do Slurm.

Não é necessário definir isso no momento da criação. Os três mapas podem ser alterados em um cluster em execução, sem reiniciar nós ou interromper jobs em fila. Consulte Atualizar as definições de configuração do Slurm.

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": MIN_NODE_COUNT,
        "max_node_count": MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    }
  ],
  "orchestrator_spec": {
    "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "config": {
        "PriorityType": "priority/multifactor",
        "PriorityWeightAge": "1000",
        "PriorityWeightFairshare": "10000",
        "PreemptType": "preempt/partition_prio",
        "PreemptMode": "SUSPEND,GANG",
        "SchedulerParameters": "bf_continue,bf_window=1440,bf_resolution=600",
        "AccountingStorageEnforce": "limits,qos"
      },
      "prolog_bash_scripts": [
        "#!/bin/bash\necho 'Prolog script running'"
      ],
      "epilog_bash_scripts": [
        "#!/bin/bash\necho 'Epilog script running'"
      ],
      "partitions": [
        {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ],
          "config": {
            "MaxTime": "4-00:00:00",
            "DefMemPerCPU": "4096",
            "PriorityTier": "20"
          }
        }
      ],
      "node_sets": [
        {
          "node_pool_id": "cpu",
          "config": {
            "Weight": "10",
            "Features": "cpu,spot"
          }
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

O mapa com escopo de cluster define a prioridade de vários fatores, a preempção de prioridade de partição e SchedulerParameters, em que o termo bf_continue mostra a forma composta: um termo simples ativa uma flag, e os termos são separados por vírgulas. O mapa de partição limita o ambiente de execução do job e a memória padrão apenas para a partição cpu, e os rótulos de entrada node_sets que agrupam os nós para que os jobs possam selecioná-los com --constraint.

Depois que o cluster for definido em um arquivo JSON, use os seguintes comandos da API REST para implantar e gerenciar o cluster. Os exemplos usam um alias gcurl, que é um atalho autenticado e conveniente para interagir com os endpoints da API. Esses comandos abrangem todo o ciclo de vida, desde a implantação inicial do cluster até a atualização de um cluster, recebendo o status, listando todos os clusters e, por fim, excluindo o cluster.

Autenticação

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Criar um arquivo JSON

Crie um arquivo JSON (por exemplo, @cpu-cluster.json) para especificar a configuração do cluster de treinamento de modelo.

Implantar o cluster

Depois de criar o arquivo de configuração JSON, implante o cluster usando a API REST.

Defina as variáveis de ambiente

Antes de executar o comando, defina as seguintes variáveis de ambiente. Isso torna o comando da API mais limpo e fácil de gerenciar.

  • PROJECT_ID: o ID do projeto do Google Cloud em que o cluster será criado.
  • REGION: a região do Google Cloud para o cluster e os recursos dele.
  • ZONE: a zona do Google Cloud em que os recursos do cluster serão provisionados.
  • CLUSTER_ID: um identificador exclusivo para o cluster de treinamento, que também é usado como um prefixo para nomear recursos relacionados.

Executar o comando de criação

Agora, execute o seguinte comando gcurl. Ele usa o arquivo JSON (neste exemplo, cpu-cluster.json) como o corpo da solicitação e as variáveis de ambiente que você acabou de definir para criar o endpoint de API e os parâmetros de consulta.

  gcurl -X POST -d @cpu-cluster.json https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?model_development_cluster_id=CLUSTER_ID
    

Quando a implantação começar, um ID de operação será gerado. Copie esse ID. Você vai precisar dele para validar o cluster na próxima etapa.

  gcurl -X POST -d @cpu-cluster.json https://us-central1-aiplatform.googleapis.com/v1beta1/projects/managedtraining-project/locations/us-central1/modelDevelopmentClusters?model_development_cluster_id=training
  {
      "name": "projects/1059558423163/locations/us-central1/operations/2995239222190800896",
      "metadata": {
      "@type": "type.googleapis.com/google.cloud.aiplatform.v1beta1.CreateModelDevelopmentClusterOperationMetadata",
      "genericMetadata": {
        "createTime": "2025-10-24T14:16:59.233332Z",
        "updateTime": "2025-10-24T14:16:59.233332Z"
      },
      "progressMessage": "Create Model Development Cluster request received, provisioning..."
  }
    

Validar a implantação do cluster

Acompanhe o progresso da implantação usando o ID da operação fornecido quando você implantou o cluster. Por exemplo, 2995239222190800896 é o ID da operação no exemplo citado anteriormente.

    gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
    

Em resumo

O envio da configuração do cluster com o comando POST gcurl inicia o provisionamento do cluster, que é uma operação assíncrona e de longa duração. A API retorna imediatamente uma resposta que contém um Operation ID. É fundamental salvar esse ID, porque você vai usá-lo nas etapas a seguir para monitorar o progresso da implantação, verificar se o cluster foi criado corretamente e gerenciar o ciclo de vida dele.

Referência de parâmetros

A lista a seguir descreve todos os parâmetros usados nos exemplos de configuração. Os parâmetros são organizados em grupos lógicos com base no recurso que configuram.

Configurações gerais e de rede

  • DISPLAY_NAME: um nome exclusivo para o cluster de treinamento. A string pode conter apenas caracteres alfanuméricos minúsculos, precisa começar com uma letra e é limitada a 10 caracteres.
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • REGION: a região do Google Cloud em que o cluster e os recursos dele vão ficar.
  • NETWORK: a rede de nuvem privada virtual a ser usada para os recursos do cluster.
  • ZONE: a zona do Google Cloud para o cluster e os recursos dele.
  • SUBNETWORK: a sub-rede a ser usada para os recursos do cluster.

Configuração do pool de nós

Os parâmetros a seguir são usados para definir os pools de nós de login e de trabalho.

Configurações comuns de pool de nós

  • ID: um identificador exclusivo para o pool de nós no cluster (por exemplo, "login", "a4", "cpu").
  • PROVISIONING_MODEL: o modelo de provisionamento do nó de trabalho (por exemplo, ON_DEMAND, SPOT, RESERVATION, FLEX_START).
  • MACHINE_TYPE: o tipo de máquina do nó de trabalho (por exemplo, a3-highgpu-8g, a3-megagpu-8g, a3-ultragpu-8g, a4-highgpu-8g). Para ver a lista completa de tipos de máquina compatíveis, consulte Recursos de computação.
  • MIN_NODE_COUNT: o MIN_NODE_COUNT precisa ser igual ao MAX_NODE_COUNT.
  • MAX_NODE_COUNT: para o pool de nós de login, o MAX_NODE_COUNT precisa ser o mesmo que o MIN_NODE_COUNT.
  • ENABLE_PUBLIC_IPS: um booleano (true ou false) para determinar se o nó de login tem um endereço IP público.
  • BOOT_DISK_TYPE: o tipo de disco de inicialização do nó de login (por exemplo, pd-standard, pd-ssd).
  • BOOT_DISK_SIZE_GB: o tamanho do disco de inicialização em GB para o nó de login.
  • LABELS: um conjunto de pares de chave-valor para rotular o pool de nós.
  • NODE_IMAGE (corresponde a node_image dentro de um objeto node_pools): a imagem de VM de que os nós do pool de nós são inicializados, como um caminho de recurso de imagem completo ou de família de imagens (por exemplo, projects/IMAGE_PROJECT/global/images/IMAGE ou projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY ). Se você omitir, o pool de nós usará a imagem padrão atual para o tipo de máquina, que avança ao longo do tempo. Defina-o para manter o pool de nós em uma imagem específica. Alterar a imagem de um pool de nós recria os nós.

Configurações do armazenamento adicional

  • FILESTORES (corresponde a filestores dentro de um objeto node_pools): uma lista de instâncias preexistentes do Filestore a serem montadas no pool de nós para acesso a arquivos compartilhados.
  • LUSTRES (corresponde a lustres dentro de um objeto node_pools): uma lista de instâncias do Lustre pré-existentes para montagem no pool de nós para acesso a arquivos de alto desempenho.

Configurações específicas do worker

  • ACCELERATOR_TYPE: o acelerador de GPU correspondente a ser anexado aos nós de trabalho. Os valores compatíveis são:
    • NVIDIA_H100_80GB
    • NVIDIA_H100_MEGA_80GB
    • NVIDIA_H200_141GB
    • NVIDIA_B200
  • ACCELERATOR_COUNT: o número de aceleradores a serem anexados a cada nó de trabalho.
  • RESERVATION_AFFINITY_TYPE (corresponde a machine_spec.reservation_affinity.reservationAffinityType): a afinidade de reserva do pool de nós. Esse parâmetro precisa ser SPECIFIC_RESERVATION, que é o único valor compatível. Quando SPECIFIC_RESERVATION é usado, é necessário especificar a reserva em machine_spec.reservation_affinity.values.
  • RESERVATION_NAME: o nome da reserva a ser usada para o pool de nós. Isso é usado no nome completo do recurso de reserva fornecido em machine_spec.reservation_affinity.values, por exemplo, projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME. É necessário fazer uma reserva quando RESERVATION_AFFINITY_TYPE é SPECIFIC_RESERVATION.

Configuração do orquestrador e do armazenamento

Esses campos são definidos no bloco orchestrator_spec.slurm_spec do arquivo JSON.

Configurações principais do Slurm e do Storage

  • HOME_DIRECTORY_STORAGE (corresponde a home_directory_storage): o nome completo do recurso da instância do Filestore pré-existente a ser montada como o diretório /home.
  • LOGIN_NODE_POOL_ID (corresponde a login_node_pool_id): o ID do pool de nós que será usado para nós de login.
  • partitions: uma lista de objetos de partição, em que cada objeto requer um id e uma lista de node_pool_ids.
  • default_partition_id (opcional): o id da partição usada para executar jobs do Slurm quando nenhuma partição é especificada explicitamente (por exemplo, ao executar sbatch sem a flag --partition). Se não for definida, a primeira partição na lista de partições se tornará a padrão. Portanto, reordenar a lista mudará a partição padrão.

Configurações avançadas do Slurm

  • prolog_bash_scripts: uma lista de strings, em que cada string contém o conteúdo completo de um script Bash a ser executado antes do início de um job.
  • epilog_bash_scripts: uma lista de strings, em que cada string contém o conteúdo completo de um script Bash a ser executado após a conclusão de um job.
  • config, partitions[].config e node_sets: parâmetros do Slurm definidos por nome. Consulte Mapas de configuração do Slurm.
  • scheduling e accounting: substituídos. Esses dois objetos expõem um conjunto fixo de parâmetros de prioridade, preempção e contabilização, que podem ser definidos por nome no mapa config com escopo de cluster (priority_type como "PriorityType", preempt_mode como "PreemptMode" e assim por diante). Eles ainda funcionam para os clusters que os usam, mas os novos clusters precisam usar config, que é compatível com muito mais parâmetros slurm.conf do que esse subconjunto.

Mapas de configuração do Slurm

Os parâmetros do Slurm são definidos por nome, em três mapas, um para cada registro slurm.conf:

  • config: configurações com escopo de cluster, escritas como linhas globais Key=Value.
  • partitions[].config: configurações de uma partição, escritas como pares extras na linha PartitionName= dessa partição.
  • node_sets: uma lista de objetos, cada um com um mapa node_pool_id e um config. As configurações são gravadas como pares extras na linha NodeName= dos nós desse pool de nós. No máximo uma entrada por pool de nós, e o pool precisa ser um pool de computação do cluster, não o pool de login.

Nas três, as chaves são nomes de parâmetros do Slurm, conforme documentado pela SchedMD, sem diferenciação de maiúsculas e minúsculas e ignorando sublinhados. Portanto, DefMemPerCPU, defmempercpu e def_mem_per_cpu significam o mesmo parâmetro. Os valores são gravados da maneira como slurm.conf os grava, incluindo listas separadas por vírgulas, como "PreemptMode": "SUSPEND,GANG", e valores compostos, como "SchedulerParameters": "bf_window=1440,bf_resolution=600".

Cada mapa é compatível com um subconjunto dos parâmetros slurm.conf que são válidos para o registro, não todos. Se você precisar de um parâmetro que não é compatível, entre em contato com o contato dos clusters de treinamento da Gemini Enterprise Agent Platform.

Um parâmetro que não é compatível com o escopo definido ou um valor que não é válido para esse parâmetro é rejeitado quando você faz a solicitação, e o erro nomeia o parâmetro. Nada é descartado silenciosamente. Alguns parâmetros são recusados por um motivo específico:

  • O serviço gerencia a verificação de integridade do nó e o novo enfileiramento de jobs, portanto, HealthCheckProgram, HealthCheckInterval, HealthCheckNodeState e RequeueExit não podem ser definidos.
  • Prolog e Epilog são definidos por prolog_bash_scripts e epilog_bash_scripts.
  • Os parâmetros slurmdbd.conf, como StorageHost e PurgeJobAfter, não são configuráveis: o banco de dados de contabilização é gerenciado pelo serviço.
  • No escopo da partição, Default é recusado. A partição padrão é uma escolha para todo o cluster, definida com default_partition_id.

Configuração do ambiente de execução

Esses campos são definidos no bloco runtime_spec do arquivo JSON.

  • service_account: a conta de serviço padrão usada pelo cluster ao executar qualquer carga de trabalho nele. Se não for especificada, a conta de serviço padrão do Compute Engine será usada. Não é possível atualizar esse campo após a criação do cluster.

A seguir

Use o cluster de treinamento persistente ativo para executar as cargas de trabalho de machine learning.