Crea un cluster HPC Slurm abilitato a RDMA con istanze H4D
La serie di macchine H4D è progettata specificamente per soddisfare le esigenze dei workload HPC più impegnativi. La serie H4D offre istanze con scalabilità del workload migliorata grazie al networking a 200 Gbps abilitato a RDMA. Per ulteriori informazioni sui tipi di macchine ottimizzate per il calcolo H4D su Google Cloud, consulta la sezione Serie di macchine H4D.
Panoramica sull'esercitazione
Questo tutorial descrive i passaggi per configurare un cluster Slurm ottimizzato per HPC utilizzando i tipi di macchine H4D con RDMA. In particolare, hai configurato un cluster con macchine virtuali Compute Engine, creato un bucket Cloud Storage per archiviare i moduli Terraform necessari e configurato 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 e le variabili di ambiente richieste.
- Configurare un bucket Cloud Storage.
- 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
- Richiedi un blocco di capacità riservata per due istanze H4D con 192 vCPU ciascuna.
Verifica di disporre di una quota Filestore sufficiente per eseguire il provisioning del cluster Slurm. È necessaria una capacità zonale minima di 5120 GiB specificamente con un livello di servizio Filestore di SSD base.
Per controllare la quota Filestore, visualizza Quote e limiti di sistema nella console Google Cloud e filtra la tabella in modo da mostrare solo le risorse Filestore.
- Per istruzioni dettagliate su come controllare le quote Filestore, consulta Visualizza la quota della specifica API.
- Se non disponi di quota sufficiente, richiedi un aumento della quota.
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
Abilita le API Compute Engine, Filestore, Cloud Storage, Service Usage e Cloud Resource Manager:
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à Filestore (SSD base) per regione: 5120 GiB.
- Disco permanente standard: 50 GB
pd-standard
per il nodo di accesso Slurm. - Dischi permanenti prestazionali (SSD): 50 GB
pd-ssd
per il controller Slurm. - Istanza VM: due istanze H4D create con il tipo di macchina
h4d-highmem-192
,h4d-standard-192
oh4d-highmem-192-lssd
. - Volumi Hyperdisk Balanced: 50 GiB per ogni istanza H4D.
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 preinstallata. gcloud CLI fornisce l'interfaccia a riga di comando principale per Google Cloud. Per avviare 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 ambiente
In Cloud Shell, imposta le seguenti variabili di ambiente da utilizzare per il resto del tutorial. Queste variabili di ambiente impostano valori segnaposto per le seguenti attività:
Configurare il progetto con i valori pertinenti per accedere alle istanze H4D prenotate.
Configurare un bucket Cloud Storage per archiviare i moduli di Cluster Toolkit.
Variabili di capacità di prenotazione
export H4D_RESERVATION_PROJECT_ID=H4D_RESERVATION_PROJECT_ID export H4D_RESERVATION_NAME=H4D_RESERVATION_NAME export H4D_DEPLOYMENT_NAME=H4D_DEPLOYMENT_NAME export H4D_REGION=H4D_REGION export H4D_ZONE=H4D_ZONE export H4D_DEPLOYMENT_FILE_NAME=H4D_DEPLOYMENT_FILE_NAME
Sostituisci quanto segue:
H4D_RESERVATION_PROJECT_ID
: l' Google CloudID progetto a cui è stato concesso il blocco di prenotazione del tipo di macchina H4D.H4D_RESERVATION_NAME
: il nome del blocco di prenotazione VM trovato nel progetto. Ad esempio,h4d-highmem-exr
.H4D_DEPLOYMENT_NAME
: un nome univoco per il deployment del cluster Slurm. Ad esempio,h4d-hpc-slurm-cluster-deployment
.H4D_REGION
: la regione in cui è in esecuzione il blocco di prenotazione delle macchine H4D riservate. Ad esempio,us-central1
.H4D_ZONE
: la zona che contiene le macchine riservate. Questa stringa deve contenere sia la regione che la zona. Ad esempio,us-central1-a
.H4D_DEPLOYMENT_FILE_NAME
: un nome univoco per il file YAML del progetto iniziale Slurm. Se completi questo tutorial più di una volta, scegli ogni volta un nome di deployment univoco.
Variabili di capacità di archiviazione
Crea le variabili di ambiente per il bucket Cloud Storage.
Cluster Toolkit utilizza i progetti iniziali per definire ed eseguire il deployment dei cluster delle VM. Un progetto iniziale definisce uno o più moduli Terraform per il provisioning dell'infrastruttura Cloud. Questo bucket viene utilizzato per archiviare questi progetti iniziali.
export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION
Sostituisci quanto segue:
GOOGLE_CLOUD_BUCKET_NAME
: il nome che vuoi utilizzare per il bucket Cloud Storage e che soddisfa i requisiti di denominazione dei bucket.GOOGLE_CLOUD_BUCKET_LOCATION
: qualsiasi Google Cloudregione di tua scelta in cui verrà ospitato il bucket. Ad esempio:us-central1
.
Passa al progetto con il blocco di capacità H4D riservato
Esegui il seguente comando per assicurarti di essere nel progetto Google Cloudche ha il blocco di prenotazione approvato per le istanze H4D.
gcloud config set project ${H4D_RESERVATION_PROJECT_ID}
Crea un bucket Cloud Storage
Crea il bucket per archiviare i moduli Terraform. Da Cloud Shell, utilizzando le variabili di ambiente, esegui il seguente comando:
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.
gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \ --project=${H4D_RESERVATION_PROJECT_ID} \ --default-storage-class=STANDARD \ --location=${GOOGLE_CLOUD_BUCKET_LOCATION} \ --uniform-bucket-level-access gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning
Configura Cluster Toolkit
Per creare un cluster Slurm in un Google Cloud progetto, puoi utilizzare Cluster Toolkit per gestire il deployment e il provisioning del cluster. Cluster Toolkit è un software open source fornito da Google Cloud per semplificare il processo di deployment dei workload suGoogle Cloud.
Per configurare Cluster Toolkit, segui questi passaggi.
Clona il repository GitHub di Cluster Toolkit
In Cloud Shell, clona il repository GitHub:
git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.git
Vai alla directory di lavoro principale:
cd cluster-toolkit/
Crea il file binario di Cluster Toolkit
In Cloud Shell, crea il file binario di Cluster Toolkit dall'origine eseguendo questo comando:
make
Per verificare la build, esegui questo comando:
Per eseguire il deployment di un cluster Slurm ottimizzato per l'HPC che utilizza istanze H4D, devi utilizzare la versione
v1.47.0
o successiva di Cluster Toolkit../gcluster --version
Dopo aver creato 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 ${H4D_DEPLOYMENT_FILE_NAME}.yaml
Incolla i seguenti contenuti nel file YAML.
--- terraform_backend_defaults: type: gcs configuration: bucket: GOOGLE_CLOUD_BUCKET_NAME vars: deployment_name: H4D_DEPLOYMENT_FILE_NAME project_id: H4D_RESERVATION_PROJECT_ID region: H4D_REGION zone: H4D_ZONE
Per 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 progetto iniziale di Cluster Toolkit per H4D.
In Cloud Shell, avvia la creazione del cluster.
./gcluster deploy -d ${H4D_DEPLOYMENT_FILE_NAME}.yaml examples/hpc-slurm-h4d.yaml --auto-approve
Connettiti al cluster
Dopo il deployment, connettiti alla Google Cloud console per visualizzare il cluster.
Vai alla pagina Compute Engine > Istanze VM nella consoleGoogle Cloud .
Individua il nodo di accesso, che potrebbe avere un nome come
example-deployment-login-123
.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.
Disabilita la protezione da eliminazione
Per disabilitare la protezione da eliminazione quando aggiorni un'istanza, utilizza un comando simile al seguente:
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
Sostituisci:
INSTANCE_NAME
: il nome dell'istanza che vuoi modificare. Ad esempio,my-genomics-instance
.
Per trovare INSTANCE_NAME
, puoi eseguire il comando
gcloud filestore instances list
. Questo comando elenca tutte le istanze Filestore nel tuo progetto Google Cloud corrente, inclusi i relativi nomi, le località (zone), i livelli, la capacità e lo stato.
Dopo aver eseguito il comando, trova l'istanza Filestore corrispondente al tipo di macchina H4D utilizzato in questo tutorial.
Elimina il cluster Slurm
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.
Per eliminare il cluster, esegui:
./gcluster destroy ${H4D_DEPLOYMENT_FILE_NAME} --auto-approve
Al termine dell'eliminazione del cluster, 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://${GOOGLE_CLOUD_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 provision the Slurm cluster (esegui il provisioning del cluster Slurm) con il nuovo file di deployment.
Passaggi successivi
- Attività Slurm avanzate:
- Scopri come rieseguire il deployment del cluster Slurm
- Scopri come testare le prestazioni di rete sul cluster Slurm
- Scopri come gestire gli eventi sull'host:
- Visualizza la topologia delle VM
- Monitora le VM nel cluster Slurm
- Segnala un host difettoso