Crea un cluster Slurm autogestito con una VM A4
In questa pagina viene descritto come creare ed eseguire rapidamente il deployment di un cluster Slurm ottimizzato per l'AI utilizzando i tipi di macchine A4 ottimizzate per l'acceleratore con gcloud CLI e Cluster Toolkit.
I tipi di macchine A4 ottimizzate per l'acceleratore sono dotati di GPU NVIDIA B200 collegate e sono progettati specificamente per il calcolo intensivo dell'AI per aiutare il tuo cluster Slurm a gestire in modo efficiente l'addestramento e l'inferenza dei modelli su larga scala. Per saperne di più sui tipi di macchine A4 ottimizzate per l'acceleratore su Google Cloud, consulta Tipi di macchine GPU.
In alternativa, puoi utilizzare Cluster Director per creare un cluster Slurm basato su A4. Cluster Director è un servizio gestito che semplifica e automatizza il deployment dei cluster, riducendo l'overhead operativo. Per saperne di più, consulta Crea un cluster Slurm completamente gestito con due VM A4.
Panoramica sull'esercitazione
Questo tutorial descrive i passaggi per configurare un cluster Slurm ottimizzato per l'AI utilizzando tipi di macchine A4 ottimizzate per l'acceleratore. In particolare, configurerai un cluster con macchine virtuali di Compute Engine, creerai un bucket Cloud Storage per archiviare i moduli Terraform necessari e configurerai un'istanza Filestore per eseguire il provisioning del cluster Slurm. Per completare i passaggi di questo tutorial, segui questa procedura:
- Configurare il progetto Google Cloud con le autorizzazioni richieste per questa guida e le variabili di ambiente per la prenotazione della macchina.
- Creare un bucket Cloud Storage.
- Configura le variabili di ambiente di archiviazione.
- Configurare Cluster Toolkit.
- Passare alla directory di Cluster Toolkit.
- Creare un file YAML di deployment Slurm.
- Eseguire il provisioning di un cluster Slurm utilizzando un progetto iniziare.
- Connetterti al cluster Slurm.
Prima di iniziare
- Prenota un blocco di capacità o crea una prenotazione in modalità calendario per una macchina
a4-highgpu-8g. Verifica di disporre di una quota Managed Lustre sufficiente (una quota di capacità di archiviazione minima di 36.000 GiB e una quota di throughput di 18 GBps) per eseguire il provisioning delle risorse del progetto.
- Per istruzioni dettagliate su come controllare le quote, consulta Visualizza la quota della specifica API.
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Abilita le API Compute Engine, Managed Lustre, Service Networking, Cloud Storage, Service Usage e API Resource Manager:
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire il deployment di un cluster Slurm, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Storage Admin (
roles/storage.admin) sul progetto - Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) sul progetto - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sul service account stesso -
Per utilizzare una prenotazione per singolo progetto:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) sul progetto -
Per utilizzare una prenotazione condivisa:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) sia nel progetto proprietario sia in qualsiasi progetto consumer in cui vuoi utilizzare la prenotazione
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.
Costi
Il costo dell'esecuzione di questo tutorial varia in base a ogni sezione completata, ad esempio la configurazione del tutorial o l'esecuzione dei job. Puoi calcolare il costo utilizzando il Calcolatore prezzi.
Per stimare il costo della configurazione di questo tutorial, utilizza le seguenti specifiche:
- Capacità di Managed Lustre: 36.000 GiB al livello di prestazioni di 500 MBps per TiB. I prezzi di Managed Lustre dipendono sia dalla capacità di archiviazione sia dal livello di prestazioni configurato.
- Standard Persistent Disk: 50 GB
pd-standardper il nodo di accesso Slurm. - Dischi permanenti prestazionali (SSD): 50 GB
pd-ssdper il controller Slurm. - Istanza di Compute Engine: 1
a4-highgpu-8g.
Avvia Cloud Shell
In questo tutorial utilizzerai Cloud Shell, un ambiente shell per la gestione delle risorse ospitate su Google Cloud.
Cloud Shell include l'interfaccia a riga di comando Google Cloud CLI preinstallata. gcloud CLI fornisce l'interfaccia a riga di comando principale per Google Cloud. Avvia Cloud Shell:
Vai alla console Google Cloud .
Nell'angolo in alto a destra della console, fai clic sul pulsante Attiva Cloud Shell:

Viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando.
Utilizza questa shell per eseguire i comandi Cluster Toolkit e gcloud.
Imposta le variabili di capacità di prenotazione della macchina
In Cloud Shell, imposta le seguenti variabili di ambiente per la capacità di prenotazione. Queste variabili di ambiente impostano valori segnaposto per configurare il progetto in modo che acceda alla macchina a4-highgpu-8g prenotata.
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Sostituisci quanto segue:
A4_RESERVATION_PROJECT_ID: l'ID progetto Google Cloud a cui è stato concesso il blocco di prenotazione del tipo di macchina A4.A4_RESERVATION_NAME: il nome della prenotazione di GPU utilizzata nel progetto. Ad esempio,a4high-exr.A4_DEPLOYMENT_NAME: un nome univoco per il deployment del cluster Slurm. Ad esempio,my-slurm-cluster-deployment.A4_REGION: la regione in cui è in esecuzione il blocco di prenotazione delle macchine A4 riservate. Ad esempio,us-central1.A4_ZONE: la zona che contiene le macchine prenotate. Questa stringa deve contenere sia la regione sia la zona. Ad esempio,us-central1-a.A4_DEPLOYMENT_FILE_NAME: un nome univoco per il file YAML del progetto iniziale Slurm. Se esegui questo tutorial più di una volta, scegli ogni volta un nome di deployment univoco.
Passa al progetto approvato per A4
Passa al progetto Google Cloud che ha il blocco di prenotazione approvato per il tipo di macchina A4:
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Crea un bucket Cloud Storage
Quando esegui il deployment di un blueprint e dei relativi moduli, Terraform crea un file di stato che mappa il blueprint alle risorse nel cloud. Per mantenere un record affidabile della tua infrastruttura, è una best practice archiviare i file di stato di Terraform in una posizione remota abilitata per il controllo delle versioni, ad esempio un bucket Cloud Storage con il controllo delle versioni abilitato.
Per archiviare il file di stato, crea un bucket Cloud Storage con il controllo delle versioni abilitato da Cloud Shell:
gcloud storage buckets create gs://${BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${BUCKET_NAME} --versioning
Sostituisci quanto segue:
BUCKET_NAME: il nome del nuovo bucket Cloud Storage, che deve soddisfare i requisiti di denominazione dei bucket.A4_RESERVATION_PROJECT_ID: l'ID progetto Google Cloud a cui è stato concesso il blocco di prenotazione del tipo di macchina A4.BUCKET_LOCATION: la Google Cloud regione in cui creare il bucket Cloud Storage, ad esempious-central1. Terraform archivia il file di stato in questa posizione.
Imposta le variabili di capacità di archiviazione
In Cloud Shell, crea le variabili di ambiente per il bucket che hai creato nel passaggio precedente.
export BUCKET_NAME=BUCKET_NAME export BUCKET_LOCATION=BUCKET_LOCATION
Sostituisci quanto segue:
BUCKET_NAME: il nome del bucket.BUCKET_LOCATION: la regione in cui si trova il bucket.
Configura Cluster Toolkit
Per creare un cluster Slurm in un progetto Google Cloud , puoi utilizzare Cluster Toolkit per gestire il deployment e il provisioning del cluster. Cluster Toolkit è un software open source fornito da Google Cloudper semplificare il processo di deployment dei workload su Google Cloud.
Per configurare Cluster Toolkit, segui questi passaggi.
Installa Cluster Toolkit
Per installare Cluster Toolkit, scarica ed estrai il pacchetto di file binari predefinito per la tua piattaforma. Sono disponibili gli archivi ZIP e TAR (.tgz).
- Vai alla pagina delle release di Cluster Toolkit su GitHub.
- Scarica il bundle corrispondente alla tua piattaforma e alla tua architettura. Sono disponibili le seguenti opzioni:
gcluster_bundle_linux_amd64.zipogcluster_bundle_linux_amd64.tgzgcluster_bundle_linux_arm64.zipogcluster_bundle_linux_arm64.tgzgcluster_bundle_mac_amd64.zipogcluster_bundle_mac_amd64.tgzgcluster_bundle_mac_arm64.zipogcluster_bundle_mac_arm64.tgz
- Nel terminale, estrai i file del pacchetto in una nuova directory:
-
Se hai scaricato un bundle ZIP, estrai i file utilizzando il comando
unzip:unzip BUNDLE_FILENAME -d cluster-toolkit
-
Se hai scaricato un bundle tar, estrai i file utilizzando il comando
tar:mkdir -p cluster-toolkit tar -xzf BUNDLE_FILENAME -C cluster-toolkit
Sostituisci
BUNDLE_FILENAMEcon il nome del pacchetto che hai scaricato. -
- Vai alla nuova directory:
cd cluster-toolkit
- Verifica l'installazione:
./gcluster --version
L'output mostra la versione attuale di Cluster Toolkit che stai utilizzando.
Dopo aver installato il file binario, puoi eseguire il deployment dei cluster per eseguire i job o i workload.
Crea un file di deployment
Nella directory Cluster Toolkit, crea il file YAML di deployment di Slurm.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlIncolla i seguenti contenuti nel file YAML.
--- terraform_backend_defaults: type: gcs configuration: bucket: BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Per salvare ed uscire dal file, premi Ctrl+O > Invio > Ctrl+X.
Esegui il provisioning del cluster Slurm
Per eseguire il provisioning del cluster Slurm, esegui questo comando di deployment. Questo comando esegue il provisioning del cluster Slurm con il file del progetto iniziale examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml.
Per impostazione predefinita, questo progetto esegue il deployment di istanze di computing (Compute Engine instances)
che utilizzano Advanced Compute Images predefinite.
Per scoprire di più sui driver preinstallati e sugli strumenti di configurazione di cui stai eseguendo il deployment, consulta Panoramica delle immagini Advanced Compute.
In Cloud Shell, utilizza il comando gcluster deploy per avviare la creazione del cluster.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Connettiti al cluster
Dopo il deployment, connettiti alla console Google Cloud per visualizzare il cluster.
Vai alla pagina Compute Engine > Istanze VM nella consoleGoogle Cloud .
Individua il nodo di accesso (
a4high-login-001o simile).Fai clic su SSH per connetterti.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Elimina il cluster Slurm
Ti consigliamo di eliminare le risorse quando non sono più necessarie. Quando elimini il cluster Slurm, vengono eliminate tutte le risorse di cui è stato eseguito il provisioning, tra cui l'istanza Managed Lustre e tutti i dati archiviati al suo interno.
Prima di eseguire il comando di eliminazione, vai alla directory root di Cluster Toolkit. Per impostazione predefinita,
DEPLOYMENT_FOLDERsi trova nella directory root di Cluster Toolkit.Utilizza il comando
gcluster destroyper distruggere il cluster:./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Sostituisci
DEPLOYMENT_FOLDERcon il nome della cartella di deployment. In genere, è uguale aDEPLOYMENT_NAME.
Al termine dell'eliminazione, viene visualizzato un messaggio simile al seguente:
Destroy complete! Resources: xx destroyed.
Elimina il bucket di archiviazione
Elimina il bucket Cloud Storage dopo aver verificato che il comando precedente sia terminato senza errori:
gcloud storage buckets delete gs://${BUCKET_NAME}
Risoluzione dei problemi
Errore: Cloud Shell non può eseguire il provisioning del cluster perché non c'è più spazio di archiviazione.
Potresti visualizzare questo errore se utilizzi spesso Cloud Shell e lo spazio di archiviazione è esaurito.
Per risolvere il problema, consulta Disabilita o reimposta Cloud Shell.
Errore: il nome del cluster o del progetto iniziale esiste già.
Potresti visualizzare questo errore se utilizzi un progetto che ha già usatoi nomi esatti dei file utilizzati in questo tutorial. Ad esempio, se un'altra persona della tua organizzazione ha completato questo tutorial end-to-end.
Per risolvere il problema, esegui di nuovo il tutorial, scegli un nome univoco per il file di deployment ed esegui di nuovo il comando di provisioning del cluster Slurm con il nuovo file di deployment.
Passaggi successivi
- Attività Slurm avanzate:
- Scopri come gestire gli eventi sull'host:
- Visualizza la topologia di un'istanza di computing
- Monitora le istanze di Compute Engine e i cluster Slurm
- Segnala un host difettoso