Crea un cluster Slurm autogestito per i workload di AI

Questo documento spiega come configurare ed eseguire il deployment di un cluster Slurm autogestito che utilizza i tipi di macchina A4X Max, A4X, A4, A3 Ultra, A3 Mega o A3 High. Per scoprire di più su questi tipi di macchine ottimizzate per l'acceleratore, vedi Tipi di macchine GPU.

I passaggi descritti in questo documento mostrano come creare un cluster Slurm utilizzando Cluster Toolkit. Cluster Toolkit è uno strumento open source di Google che semplifica la configurazione e il deployment di un cluster utilizzando i progetti iniziali. Hai il controllo completo del tuo cluster, ma sei anche responsabile della sua gestione. Se vuoi evitare l'overhead associato alla gestione di un cluster e concentrarti sull'esecuzione del workload, crea un cluster completamente gestito utilizzando Cluster Director.

Limitazioni

A seconda del tipo di macchina utilizzato dalle istanze Compute Engine nel cluster, si applicano le seguenti limitazioni:

A4X Max

A4X

A4

  • Non sono previsti sconti per utilizzo sostenuto e per impegno di utilizzo flessibile per le istanze che utilizzano un tipo di macchina A4.
  • Puoi utilizzare un tipo di macchina A4 solo in alcune regioni e zone.
  • Non puoi utilizzare Persistent Disk (a livello di regione o di zona). Puoi utilizzare solo Google Cloud Hyperdisk.
  • Il tipo di macchina A4 è disponibile solo sulla piattaforma CPU Emerald Rapids.
  • Non puoi modificare il tipo di macchina di un'istanza in o da un tipo di macchina A4. Devi creare una nuova istanza con questo tipo di macchina.
  • I tipi di macchine A4 non supportano la modalità single-tenancy.
  • Non puoi eseguire sistemi operativi Windows su un tipo di macchina A4.
  • Per le istanze A4, quando utilizzi ethtool -S per monitorare il networking GPU, i contatori delle porte fisiche che terminano con _phy non vengono aggiornati. Si tratta di un comportamento previsto per le istanze che utilizzano l'architettura della funzione virtuale (VF) MRDMA. Per saperne di più, consulta Funzioni MRDMA e strumenti di monitoraggio della rete.
  • Non puoi collegare dischi Hyperdisk ML creati prima del 4 febbraio 2026 ai tipi di macchina A4.

A3 Ultra

  • Non sono previsti sconti per utilizzo sostenuto e per impegno di utilizzo flessibile per le istanze che utilizzano un tipo di macchina A3 Ultra.
  • Puoi utilizzare un tipo di macchina A3 Ultra solo in alcune regioni e zone.
  • Non puoi utilizzare Persistent Disk (a livello di regione o di zona). Puoi utilizzare solo Google Cloud Hyperdisk.
  • Il tipo di macchina A3 Ultra è disponibile solo sulla piattaforma CPU Emerald Rapids.
  • Le modifiche al tipo di macchina non sono supportate per il tipo di macchina A3 Ultra. Per passare a questo tipo di macchina o viceversa, devi creare una nuova istanza.
  • Non puoi eseguire sistemi operativi Windows su un tipo di macchina A3 Ultra.
  • I tipi di macchine A3 Ultra non supportano la modalità single-tenancy.
  • Per le istanze A3 Ultra, quando utilizzi ethtool -S per monitorare il networking GPU, i contatori delle porte fisiche che terminano con _phy non vengono aggiornati. Questo è il comportamento previsto per le istanze che utilizzano l'architettura della funzione virtuale (VF) MRDMA. Per saperne di più, consulta Funzioni MRDMA e strumenti di monitoraggio della rete.

A3 Mega

A3 High

Prima di iniziare

Prima di creare un cluster Slurm, se non l'hai ancora fatto, completa i seguenti passaggi:

  1. Scegli un'opzione di consumo: l'opzione di consumo scelta determina come ottenere e utilizzare le risorse GPU. Per saperne di più, consulta Scegliere un'opzione di consumo.
  2. Ottenere capacità: la procedura per ottenere capacità varia a seconda dell'opzione di consumo. Per scoprire di più sulla procedura per ottenere la capacità per l'opzione di consumo scelta, consulta Panoramica della capacità.
  3. Verifica di disporre di una quota di capacità Filestore sufficiente: devi disporre di una quota Filestore sufficiente nella regione di destinazione prima del deployment. La capacità minima richiesta dipende dai tipi di macchina nel cluster:
    • A4X Max, A4X, A4, A3 Ultra e A3 Mega: richiedono un minimo di 10 TiB (10.240 GiB) di capacità HIGH_SCALE_SSD (zonale).
    • A3 High: richiede un minimo di 2,5 TiB (2560 GiB) di capacità BASIC_SSD (standard).

    Per controllare la quota o richiedere un aumento della quota, consulta quanto segue:

  4. Installa Cluster Toolkit: per eseguire il provisioning dei cluster Slurm, devi utilizzare Cluster Toolkit versione v1.62.0 o successive.

    Per installare Cluster Toolkit, vedi Configura Cluster Toolkit.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment di un cluster Slurm, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configurare un bucket di archiviazione

I progetti iniziali del cluster utilizzano i moduli Terraform per eseguire il provisioning dell'infrastruttura cloud. Una best practice quando si utilizza Terraform è di archiviare lo stato da remoto in un file abilitato per il controllo delle versioni. In Google Cloud, puoi creare un bucket Cloud Storage in cui è abilitato il controllo delle versioni.

Per creare questo bucket e abilitare il controllo delle versioni dalla CLI, esegui questi comandi:

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

Sostituisci quanto segue:

Installa Cluster Toolkit

Per utilizzare Slurm con Google Cloud, devi installare Cluster Toolkit. Per Linux e macOS, ti consigliamo di installare il bundle precompilato.

Dopo aver installato Cluster Toolkit, vai alla directory che contiene il file binario gcluster:

  • Se hai installato il bundle precompilato, passa alla directory gcluster-bundle:

    cd gcluster-bundle
  • Se hai creato il binario dall'origine, passa a cluster-toolkit:

    cd cluster-toolkit

    Il deployment di questo cluster richiede Cluster Toolkit v1.62.0 o versioni successive. Per controllare la versione attuale, esegui questo comando:

    ./gcluster --version

Crea un file di deployment

Crea un file di deployment che puoi utilizzare per specificare il bucket Cloud Storage, impostare i nomi della rete e della subnet e impostare le variabili di deployment come ID progetto, regione e zona.

Per creare un file di deployment, segui i passaggi per il tipo di macchina e l'opzione di consumo richiesti.

A4X Max

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a4xmax-bm-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_INSTANCES: il numero di istanze bare metal A4X Max nel cluster. Puoi specificare un numero qualsiasi di istanze. Tuttavia, le istanze A4X Max sono interconnesse fisicamente da un sistema NVLink multi-nodo in gruppi di 18 istanze (72 GPU) per formare un dominio NVLink.

    Per prestazioni di rete ottimali, ti consigliamo di specificare un valore multiplo di 18 istanze (ad esempio 18, 36 o 54). Quando crei un cluster A4X Max, il blueprint A4X Max crea e applica automaticamente una policy di posizionamento compatto con una topologia GPU di 1x72 per ogni gruppo di 18 istanze.

  • RESERVATION_NAME: il nome della tua prenotazione.

A4X

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a4xhigh-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a4x_reservation_name: RESERVATION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_VMS: il numero di VM A4X nel cluster. Puoi specificare un numero qualsiasi di VM. Tuttavia, le VM A4X sono interconnesse fisicamente da un sistema NVLink multi-nodo in gruppi di 18 VM (72 GPU) per formare un dominio NVLink.

    Per prestazioni di rete ottimali, ti consigliamo di specificare un valore multiplo di 18 VM (ad esempio 18, 36 o 54). Quando crei un cluster A4X, il blueprint A4X crea e applica automaticamente una policy di posizionamento compatto con una topologia GPU di 1x72 per ogni gruppo di 18 VM. Per saperne di più sulla topologia A4X, consulta Nozioni di base di A4X.

  • RESERVATION_NAME: il nome della tua prenotazione.

A4

I parametri da aggiungere al file di deployment dipendono dall'opzione di consumo che utilizzi per il deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a4high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a4h_reservation_name: RESERVATION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.
  • RESERVATION_NAME: il nome della tua prenotazione.

Avvio flessibile

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a4high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a4h_dws_flex_enabled: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

Questo deployment esegue il provisioning di nodi di calcolo statici, il che significa che il cluster ha un numero fisso di nodi in qualsiasi momento. Se invece vuoi abilitare la scalabilità automatica del cluster, utilizza il file examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml e modifica i valori di node_count_static e node_count_dynamic_max in modo che corrispondano a quanto segue:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a4h_cluster_size)

Spot

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a4high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a4h_enable_spot_vm: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

A3 Ultra

I parametri da aggiungere al file di deployment dipendono dall'opzione di consumo che utilizzi per il deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a3ultra-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3u_reservation_name: RESERVATION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.
  • RESERVATION_NAME: il nome della tua prenotazione.

Avvio flessibile

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a3ultra-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3u_dws_flex_enabled: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

Questo deployment esegue il provisioning di nodi di calcolo statici, il che significa che il cluster ha un numero fisso di nodi in qualsiasi momento. Se invece vuoi abilitare la scalabilità automatica del cluster, utilizza il file examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml e modifica i valori di node_count_static e node_count_dynamic_max in modo che corrispondano a quanto segue:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3u_cluster_size)

Spot

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato a3ultra-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3u_enable_spot_vm: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

A3 Mega

I parametri da aggiungere al file di deployment dipendono dall'opzione di consumo che utilizzi per il deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Per creare il file di deployment, crea un file YAML denominato a3mega-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3mega_reservation_name: RESERVATION_NAME
  a3mega_partition_name: PARTITION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.
  • RESERVATION_NAME: il nome della tua prenotazione.
  • PARTITION_NAME: un nome per la partizione Slurm.

Avvio flessibile

Per creare il file di deployment, crea un file YAML denominato a3mega-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3mega_dws_flex_enabled: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

Questo deployment esegue il provisioning di nodi di calcolo statici, il che significa che il cluster ha un numero fisso di nodi in qualsiasi momento. Se invece vuoi abilitare la scalabilità automatica del cluster, utilizza il file examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml e modifica i valori di node_count_static e node_count_dynamic_max in modo che corrispondano a quanto segue:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3mega_cluster_size)

Spot

Per creare il file di deployment, crea un file YAML denominato a3mega-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3mega_enable_spot_vm: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

A3 High

I parametri da aggiungere al file di deployment dipendono dall'opzione di consumo che utilizzi per il deployment. Seleziona la scheda corrispondente al modello di provisioning dell'opzione di consumo.

Con prenotazione

Per creare il file di deployment, crea un file YAML denominato a3high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3_reservation_name: RESERVATION_NAME
  a3_partition_name: PARTITION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD e KEYSERVER_UBUNTU_KEY: le credenziali tecniche per le immagini ottimizzate A3 High. Questi valori ti vengono forniti dal team dedicato all'account Google Cloud. Per saperne di più, consulta Recuperare le credenziali per GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione che contiene le macchine riservate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni su regione e zona sono state fornite dal team dedicato all'account al momento della consegna della capacità.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.
  • RESERVATION_NAME: il nome della tua prenotazione.
  • PARTITION_NAME: un nome per la partizione Slurm.

Avvio flessibile

Per creare il file di deployment, crea un file YAML denominato a3high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3_dws_flex_enabled: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD e KEYSERVER_UBUNTU_KEY: le credenziali tecniche per le immagini ottimizzate A3 High. Questi valori ti vengono forniti dal team dedicato all'account Google Cloud. Per saperne di più, consulta Recuperare le credenziali per GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

Questo deployment esegue il provisioning di nodi di calcolo statici, il che significa che il cluster ha un numero fisso di nodi in qualsiasi momento. Se invece vuoi abilitare la scalabilità automatica del cluster, utilizza il file examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml e modifica i valori di node_count_static e node_count_dynamic_max in modo che corrispondano a quanto segue:

      node_count_static: 0
      node_count_dynamic_max: $(vars.a3_static_cluster_size)

Spot

Per creare il file di deployment, crea un file YAML denominato a3high-slurm-deployment.yaml e aggiungi i seguenti contenuti.


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_VMS
  a3_enable_spot_vm: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage creato nella sezione precedente.
  • DEPLOYMENT_NAME: un nome per il deployment. Se crei più cluster, assicurati di selezionare un nome univoco per ciascuno.
  • PROJECT_ID: il tuo ID progetto.
  • TCPX_KERNEL_LOGIN, TCPX_KERNEL_PASSWORD e KEYSERVER_UBUNTU_KEY: le credenziali tecniche per le immagini ottimizzate A3 High. Questi valori ti vengono forniti dal team dedicato all'account Google Cloud. Per saperne di più, consulta Recuperare le credenziali per GPUDirect-TCPX.
  • SYSTEM_NETWORK_NAME: il nome della rete VPC da utilizzare per la rete di sistema.
  • SYSTEM_SUBNET_NAME: il nome della subnet da utilizzare per la rete di sistema.
  • CLUSTER_NAME: un nome per il cluster Slurm.
  • REGION: la regione in cui vuoi eseguire il provisioning del cluster.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster.
  • NUMBER_OF_VMS: il numero di VM che vuoi per il cluster.

Esegui il provisioning di un cluster Slurm

Cluster Toolkit esegue il provisioning del cluster in base al file di deployment che hai creato nel passaggio precedente e al progetto base del cluster predefinito. Per saperne di più sul software installato dal blueprint, inclusi i driver NVIDIA e CUDA, scopri di più sulle immagini personalizzate di Slurm.

Per eseguire il provisioning del cluster, seleziona una delle seguenti opzioni per eseguire il comando per il tipo di macchina dalla directory Cluster Toolkit. Questo passaggio richiede circa 20-30 minuti.

A4X Max

./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve

A4X

./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve

A4

./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve

A3 Ultra

./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve

A3 Mega

./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve

A3 High

./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve

Connettiti al cluster Slurm

Per accedere al cluster, devi accedere al nodo di accesso Slurm. Se si verificano errori quando tenti di connetterti al nodo, consulta Risoluzione degli errori SSH.

Per connetterti al nodo di accesso nel cluster, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua il nodo di accesso, il cui nome è DEPLOYMENT_NAME-login-001.

  3. Nella riga del nodo, fai clic su SSH nella colonna Connetti.

gcloud

Per connetterti al nodo di accesso nel cluster, completa i seguenti passaggi:

  1. Per identificare il nodo di accesso, utilizza il seguente comando gcloud compute instances list:

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

    Se l'output elenca più cluster Slurm, puoi identificare il nodo di accesso in base a DEPLOYMENT_NAME che hai specificato nei passaggi precedenti.

  2. Per connetterti al nodo di accesso, utilizza il comando gcloud compute ssh con il flag --tunnel-through-iap:

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

    Sostituisci quanto segue:

    • ZONE: la zona in cui esiste il nodo.

    • LOGIN_NODE: il nome del nodo di accesso.

Testare le prestazioni di rete sul cluster Slurm

Ti abbiamo consigliato di convalidare la funzionalità dei cluster di cui è stato eseguito il provisioning. Per farlo, utilizza i test NCCL, ovvero i test NVIDIA Collective Communications Library (NCCL) ottimizzati per l'ambiente Google.

Esegui nuovamente il deployment del cluster Slurm

Se devi aumentare il numero di nodi di calcolo o aggiungere nuove partizioni al cluster, potrebbe essere necessario aggiornare le configurazioni del cluster Slurm eseguendo nuovamente il deployment. Il redeployment di un cluster può essere velocizzato utilizzando un'immagine esistente di un deployment precedente. Per evitare di creare nuove immagini durante un nuovo deployment, specifica il flag --only.

Per rieseguire il deployment del cluster utilizzando un'immagine esistente:

  1. Connettiti al cluster

  2. In base al tipo di macchina utilizzato dal cluster, seleziona una delle seguenti opzioni. Il comando in questa sezione è solo per i nuovi deployment in cui esiste già un'immagine. Il comando esegue solo il redeploy del cluster e della relativa infrastruttura.

    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

Elimina il cluster Slurm

Per impostazione predefinita, i progetti iniziali A4X Max, A4X, A4 e A3 Ultra attivano la protezione da eliminazione sull'istanza Filestore. Per eliminare l'istanza Filestore quando elimini il cluster Slurm, disabilita la protezione da eliminazione prima di eseguire il comando di eliminazione. Per istruzioni, vedi Impostare o rimuovere la protezione dall'eliminazione su un'istanza esistente.

Per eliminare il cluster Slurm, completa i seguenti passaggi:

  1. Se non l'hai ancora fatto, disconnettiti dal cluster .

  2. Prima di eseguire il comando destroy, vai alla directory root di Cluster Toolkit.

  3. Per eliminare il cluster, esegui questo comando:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Sostituisci DEPLOYMENT_FOLDER con il nome della cartella di deployment.

Quando Cluster Toolkit distrugge il cluster, l'output è simile al seguente:

Destroy complete! Resources: DEPLOYMENT_NAME destroyed.

Passaggi successivi