Crea un cluster Slurm H4D con funzionalità di gestione avanzate

Questa pagina descrive come creare un cluster Slurm di computing ad alte prestazioni (HPC) che utilizza l'accesso diretto alla memoria da remoto (RDMA) con VM H4D con funzionalità di gestione dei cluster avanzate. Utilizza gcloud CLI e Cluster Toolkit per configurare il cluster.

La serie di macchine H4D è progettata specificamente per soddisfare le esigenze dei workload HPC più impegnativi. H4D offre istanze con una migliore scalabilità dei workload tramite il networking Cloud RDMA con un throughput di 200 Gbps. Per ulteriori informazioni sui tipi di macchine ottimizzate per il calcolo H4D su Google Cloud, consulta Serie di macchine H4D.

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 che scegli determina il modo in cui vuoi ottenere e utilizzare le risorse vCPU.
  2. Ottieni capacità: ottieni la capacità per l'opzione di consumo selezionata.
  3. Per saperne di più, consulta Scegli un'opzione di consumo e ottieni capacità.

  4. Verifica di disporre di una quota Filestore o Google Cloud Managed Lustre sufficiente: prima del deployment, devi disporre di una quota Filestore o Managed Lustre sufficiente nella regione e nella zona di destinazione. La quota minima richiesta dipende dal servizio di archiviazione e dai tipi di macchina nel tuo cluster:
    • Managed Lustre:
      • A4X Max: richiede una quota di capacità di archiviazione minima di 18.000 GiB e una quota di throughput di 9 GBps.
      • A4X, A4, A3 Ultra, A3 Mega e A3 High: richiede una quota di capacità di archiviazione minima di 36.000 GiB e una quota di throughput di 18 GBps.
    • Filestore:
      • A4X Max, A4X, A4, A3 Ultra e A3 Mega: richiede una quota di capacità HIGH_SCALE_SSD (a livello di zona) minima di 10 TiB (10.240 GiB).
      • A3 High: richiede una quota di capacità BASIC_SSD (standard) minima di 2,5 TiB (2560 GiB).

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

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

    Per installare Cluster Toolkit, consulta Configura Cluster Toolkit.

Nella console Google Cloud , attiva Cloud Shell.

Attiva Cloud Shell

Nella parte inferiore della console Google Cloud , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

Configura un bucket di archiviazione

I blueprint 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 dall'interfaccia a riga di comando, 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:

Apri la directory di Cluster Toolkit

Assicurati di essere nella directory di Cluster Toolkit eseguendo questo comando:

cd cluster-toolkit

Questo deployment del cluster richiede Cluster Toolkit v1.70.0 o versioni successive. Per controllare la versione, puoi eseguire questo comando:

./gcluster --version

Crea un file di deployment

Crea un file di deployment per specificare il bucket Cloud Storage, imposta i nomi per la rete e la subnet e imposta le variabili di deployment come ID progetto, regione e zona.

Per creare un file di deployment, segui i passaggi per il tipo di macchina H4D:

I parametri che devi aggiungere al file di deployment dipendono dall'opzione di consumo che utilizzi per il deployment. Seleziona la scheda corrispondente all'opzione di consumo che vuoi utilizzare.

Con prenotazione

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato h4d-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
  h4d_cluster_size: NUMBER_OF_INSTANCES
  h4d_reservation_name: RESERVATION_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage, che hai 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 si trovano le macchine prenotate.
  • ZONE: la zona in cui vuoi eseguire il provisioning del cluster. Se utilizzi un'opzione di consumo basata sulla prenotazione, le informazioni sulla regione e sulla zona sono state fornite dal team dedicato all'account quando è stata fornita la capacità.
  • NUMBER_OF_INSTANCES: il numero di istanze di Compute Engine 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 h4d-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
  h4d_cluster_size: NUMBER_OF_INSTANCES
  h4d_dws_flex_enabled: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage, che hai 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_INSTANCES: il numero di istanze di Compute Engine che vuoi per il cluster.

Questo deployment esegue il provisioning di nodi di computing statici, il che significa che il cluster ha sempre un numero fisso di nodi. Se invece vuoi attivare la scalabilità automatica del cluster, utilizza il file examples/h4d/hpc-slurm-h4d.yaml e modifica i valori di node_count_static e node_count_dynamic_max in modo che corrispondano ai seguenti:

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

Per creare il file di deployment, utilizza un editor di testo per creare un file YAML denominato h4d-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
  h4d_cluster_size: NUMBER_OF_INSTANCES
  h4d_enable_spot_vm: true

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket Cloud Storage, che hai 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_INSTANCES: il numero di istanze di Compute Engine che vuoi per il cluster.

Esegui il provisioning di un cluster Slurm H4D

Cluster Toolkit esegue il provisioning del cluster in base al file di deployment creato nel passaggio precedente e al blueprint del cluster predefinito. Per ulteriori informazioni sul software installato dal progetto, consulta Scopri di più sulle immagini personalizzate di Slurm.

Utilizzando Cloud Shell, dalla directory in cui hai installato Cluster Toolkit e creato il file di deployment, puoi eseguire il provisioning del cluster con il seguente comando, che utilizza il file del blueprint Slurm H4D. Questo passaggio richiede circa 20-30 minuti.

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

Connettiti al cluster Slurm

Per accedere al cluster, devi accedere al nodo di accesso Slurm. Per accedere, puoi utilizzare la console Google Cloud o Google Cloud CLI.

Console

  1. Vai alla pagina Compute Engine > Istanze VM.

    Vai alla pagina Istanze VM

  2. Individua il nodo di accesso. Il nome deve avere il pattern DEPLOYMENT_NAME +login-001.

  3. Nella colonna Connetti del nodo di accesso, fai clic su SSH.

gcloud

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

  1. Identifica il nodo di accesso utilizzando il comando gcloud compute instances list.

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

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

  2. Utilizza il comando gcloud compute ssh per connetterti al nodo di accesso.

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

    Sostituisci quanto segue:

    • ZONE: la zona in cui si trovano le VM del tuo cluster.
    • LOGIN_NODE: il nome del nodo di accesso, che hai identificato nel passaggio precedente.

Riesegui il deployment del cluster Slurm

Se devi aumentare il numero di nodi di computing o aggiungere nuove partizioni al tuo cluster, potresti dover aggiornare le configurazioni del cluster Slurm eseguendo nuovamente il deployment.

Per rifare il deployment del cluster utilizzando un'immagine esistente, segui questi passaggi:

  1. Connettiti al cluster

  2. Esegui questo comando:

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

    Questo comando è destinato solo ai nuovi deployment in cui esiste già un'immagine; esegue solo il nuovo deployment del cluster e della sua infrastruttura IT.

Elimina il cluster Slurm

Per rimuovere il cluster Slurm e le istanze al suo interno, completa i seguenti passaggi:

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

  2. Prima di eseguire il comando di eliminazione, vai alla directory root di Cluster Toolkit. Per impostazione predefinita, DEPLOYMENT_FOLDER si trova nella directory root di Cluster Toolkit.

  3. Per eliminare il cluster, esegui:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    Sostituisci quanto segue:

    • DEPLOYMENT_FOLDER: il nome della cartella di deployment. In genere, è uguale a DEPLOYMENT_NAME.

Al termine della rimozione del cluster, dovresti visualizzare un messaggio simile al seguente:

  Destroy complete! Resources: xx destroyed.

Per scoprire come eliminare l'infrastruttura in modo pulito e per istruzioni avanzate sul deployment manuale, consulta la cartella di deployment che si trova nella directory root di Cluster Toolkit: DEPLOYMENT_FOLDER/instructions.txt

Passaggi successivi