Questa pagina descrive come creare un cluster Slurm di computing ad alte prestazioni (HPC) che utilizza l'accesso diretto alla memoria remota (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 carichi di lavoro HPC impegnativi. H4D offre istanze con scalabilità del carico di lavoro migliorata tramite il networking Cloud RDMA con una velocità effettiva di 200 Gbps. Per ulteriori informazioni sui tipi di macchine H4D ottimizzate per il calcolo su Google Cloud, consulta la serie di macchine H4D.
Prima di iniziare
Prima di creare un cluster Slurm, se non l'hai già fatto, completa i seguenti passaggi:
- Scegli un'opzione di consumo: l'opzione che scegli determina come vuoi ottenere e utilizzare le risorse vCPU.
- Ottieni capacità: ottieni la capacità per l'opzione di consumo selezionata.
- Assicurati di avere una quota di capacità Filestore sufficiente: prima del deployment, devi disporre di una quota Filestore sufficiente nella regione di destinazione. La capacità minima richiesta dipende dai tipi di macchine nel cluster:
- A4, A4X, A3 Ultra e A3 Mega: richiede 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:
- Per controllare la quota, consulta Visualizza la quota della specifica API.
- Se non disponi di quota sufficiente, richiedi un aumento della quota.
- Installa Cluster Toolkit: per eseguire il provisioning dei cluster Slurm, devi utilizzare
Cluster Toolkit versione
v1.62.0o successive.Per installare Cluster Toolkit, consulta Configura Cluster Toolkit.
Per saperne di più, consulta Scegli un'opzione di consumo e ottieni capacità.
Nella Google Cloud console, attiva Cloud Shell.
Nella parte inferiore della Google Cloud console 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à inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Configura un bucket di archiviazione
I progetti base 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 i seguenti 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:
BUCKET_NAME: un nome per il bucket Cloud Storage che soddisfi i requisiti di denominazione dei bucket.PROJECT_ID: il tuo ID progetto.BUCKET_REGION: qualsiasi località disponibile.
Apri la directory di Cluster Toolkit
Assicurati di trovarti nella directory di Cluster Toolkit eseguendo il seguente comando:
cd cluster-toolkit
Questo deployment del cluster richiede Cluster Toolkit v1.70.0 o versioni successive. Per controllare la versione, puoi eseguire il seguente comando:
./gcluster --version
Crea un file di deployment
Crea un file di deployment per specificare il bucket Cloud Storage, impostare i nomi per la rete e la 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 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_VMS
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 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 tuo 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
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_VMS
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_VMS: il numero di VM che vuoi per il cluster.
Questo deployment esegue il provisioning dei nodi di calcolo statici,
il che significa che il cluster ha un numero fisso di nodi in ogni momento. Se vuoi abilitare la scalabilità automatica del tuo
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 a quanto segue:
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_VMS
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_VMS: il numero di VM 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 progetto base del cluster predefinito. Per ulteriori informazioni sul software installato dal progetto base, consulta Ulteriori informazioni 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 progetto base 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, tu puoi utilizzare la consoleo Google Cloud CLI CLI. Google Cloud
Console
Vai alla pagina Compute Engine > Istanze VM.
Individua il nodo di accesso. Dovrebbe avere un nome con il pattern
DEPLOYMENT_NAME+login-001.Dalla colonna Connetti del nodo di accesso, fai clic su SSH.
gcloud
Per connetterti al nodo di accesso, completa i seguenti passaggi:
Identifica il nodo di accesso utilizzando il
gcloud compute instances listcomando.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 a
DEPLOYMENT_NAMEche hai specificato.Utilizza il
gcloud compute sshcomando per connetterti al nodo di accesso.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapSostituisci quanto segue:
ZONE: la zona in cui si trovano le VM del cluster.LOGIN_NODE: il nome del nodo di accesso, che hai identificato nel passaggio precedente.
Esegui di nuovo il deployment del cluster Slurm
Se devi aumentare il numero di nodi di calcolo o aggiungere nuove partizioni al cluster, potresti dover aggiornare le configurazioni del cluster Slurm eseguendo di nuovo il deployment.
Per rieseguire il deployment del cluster utilizzando un'immagine esistente:
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 è valido solo per i deployment in cui esiste già un'immagine; esegue di nuovo il deployment solo del cluster e della relativa infrastruttura.
Elimina il cluster Slurm
Per rimuovere il cluster Slurm e le istanze al suo interno, completa i seguenti passaggi:
Disconnettiti dal cluster, se non l'hai già fatto.
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 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 vedere un messaggio simile al seguente:
Destroy complete! Resources: xx destroyed.
Per scoprire come eliminare correttamente l'infrastruttura 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
- Verifica il consumo della prenotazione
- Visualizza la topologia delle VM
- Gestisci gli eventi sull'host nelle VM
- Gestisci gli eventi sull'host nelle prenotazioni
- Monitora le VM nel cluster Slurm
- Segnala un host difettoso