Panoramica della creazione di cluster HPC


Per creare l'infrastruttura per applicazioni strettamente accoppiate che scalano su più nodi, puoi creare un cluster di istanze di macchine virtuali (VM). Questa guida fornisce una panoramica di alto livello delle considerazioni e dei passaggi chiave per configurare un cluster di istanze di macchine virtuali (VM) per i carichi di lavoro di computing ad alte prestazioni (HPC) utilizzando l'allocazione densa delle risorse.

Compute Engine offre diversi modi per creare una moltitudine di istanze VM che sono connesse alla stessa rete, ma non richiedono un'allocazione densa delle risorse. Ad esempio, puoi utilizzare uno dei seguenti metodi, trattati in altre sezioni della documentazione di Compute Engine:

Puoi anche creare uno script che includa i comandi per creare singole istanze e associare policy di posizionamento compatto alle istanze per ridurre la latenza.

Con H4D (anteprima), Compute Engine aggiunge il supporto per l'esecuzione di carichi di lavoro HPC di grandi dimensioni trattando un intero cluster di istanze VM come un unico computer. L'utilizzo del posizionamento delle VM in base alla topologia consente di accedere a molte istanze all'interno di un singolo superblock di rete e riduce al minimo la latenza di rete. Puoi anche configurare Cloud RDMA su queste istanze per massimizzare le prestazioni di comunicazione tra i nodi, il che è fondamentale per i carichi di lavoro HPC ad accoppiamento stretto.

Questi cluster di VM HPC vengono creati con H4D riservando blocchi di capacità anziché risorse individuali. L'utilizzo di blocchi di capacità per il cluster fornisce le seguenti funzionalità aggiuntive per il deployment e la gestione di questi ambienti su larga scala:

  • Posizionamento delle istanze VM in base alla topologia
  • Sistemi di prenotazione avanzati per proteggere e gestire la capacità
  • Gruppi di istanze gestite (MIG) avanzati progettati per insiemi di istanze VM di grandi dimensioni e interdipendenti.
  • Pianificazione e controlli avanzati della manutenzione che offrono un maggiore controllo su quando e come viene eseguita la manutenzione sulle istanze VM, il che è fondamentale per carichi di lavoro a esecuzione prolungata e sensibili alle interruzioni. Sono incluse funzionalità come la manutenzione attivata dal cliente e la manutenzione raggruppata per blocchi di risorse.

Terminologia dei cluster

Quando lavori con blocchi di capacità, vengono utilizzati i seguenti termini:

Blocchi
Più sottoblocchi si interconnettono con un fabric non bloccante, fornendo un'interconnessione a larghezza di banda elevata. Qualsiasi CPU all'interno del blocco è raggiungibile in un massimo di due hop di rete. Il sistema espone i metadati di blocchi e sottoblocchi agli orchestrator per consentire il posizionamento ottimale dei job.
Cluster
Più blocchi si interconnettono per formare un cluster scalabile fino a migliaia di CPU per l'esecuzione di workload HPC su larga scala. Ogni cluster è univoco a livello globale. La comunicazione tra blocchi diversi aggiunge un solo hop aggiuntivo, mantenendo prestazioni e prevedibilità elevate, anche su una scala massiccia. I metadati a livello di cluster sono disponibili anche per gli orchestrator per il posizionamento intelligente dei job su larga scala.
Deployment denso
Una richiesta di risorse che alloca le risorse dell'acceleratore fisicamente vicine tra loro per ridurre al minimo gli hop di rete e ottimizzare per la latenza più bassa.
Infrastruttura di rete
Un fabric di rete fornisce connettività a bassa latenza e larghezza di banda elevata in tutti i blocchi e i servizi Google Cloud di un cluster. Jupiter è l'architettura di rete dei data center di Google che sfrutta il networking software-defined e gli switch di circuiti ottici per far evolvere la rete e ottimizzarne le prestazioni.
Nodo o host
Una singola macchina server fisica nel data center. Ogni host ha le proprie risorse di calcolo associate: CPU, memoria e interfacce di rete. Il numero e la configurazione di queste risorse di calcolo dipendono dalla famiglia di macchine. Le istanze VM vengono sottoposte a provisioning su un host fisico.
Orchestratore
Un orchestratore automatizza la gestione dei cluster. Con un orchestratore, non devi gestire ogni istanza VM nel cluster. Un orchestratore, come Slurm o Google Kubernetes Engine (GKE), gestisce attività come la gestione delle code dei job, l'allocazione delle risorse, la scalabilità automatica (con GKE) e altre attività di gestione dei cluster quotidiane.
Blocchi secondari
Si tratta di unità di base in cui un gruppo di host si trova fisicamente nello stesso rack. Uno switch Top-of-Rack (ToR) connette questi host, consentendo una comunicazione a singolo hop estremamente efficiente tra due CPU all'interno del sottoblocco. Cloud RDMA facilita questa comunicazione diretta.

Panoramica del processo di creazione del cluster con VM H4D

Per creare cluster HPC su blocchi di capacità riservati, devi completare i seguenti passaggi:

  1. Scegliere un'opzione di consumo e ottenere la capacità
  2. Scegliere un'opzione di deployment e un orchestratore
  3. Scegli l'immagine del sistema operativo o del cluster
  4. Crea il tuo cluster

Scegliere un'opzione di consumo e ottenere la capacità

Le opzioni di consumo determinano come vengono ottenute le risorse per il cluster. Per creare un cluster con funzionalità di gestione avanzate, devi richiedere blocchi di capacità per un deployment denso.

La seguente tabella riassume le principali differenze tra le opzioni di consumo per i blocchi di capacità:

Opzione di consumo Prenotazioni future per i blocchi di capacità Avvio flessibile (anteprima)
Caratteristiche del workload Workload distribuiti su larga scala e di lunga durata che richiedono risorse densamente allocate Workload di breve durata che richiedono risorse allocate in modo denso
Durata Qualsiasi ora Fino a 7 giorni
Prerilasciabile No No
Quota Verifica di avere una quota sufficiente prima di creare istanze. Viene addebitata la quota preemptible.
Prezzi
Allocazione delle risorse Dense Dense
Modello di provisioning Con prenotazione Avvio flessibile (anteprima)
Metodo di creazione Per creare cluster HPC e VM, devi svolgere le seguenti operazioni:
  1. Prenota la capacità contattando il team dedicato al tuo account.
  2. Alla data e all'ora scelte, puoi utilizzare la capacità prenotata per creare cluster HPC. Consulta Scegliere un'opzione di deployment.
Per creare le VM, seleziona una delle seguenti opzioni:

Quando la capacità richiesta diventa disponibile, Compute Engine esegue il provisioning.

Scegliere un'opzione di deployment

A seconda del livello di controllo necessario per il deployment del cluster, scegli tra un deployment altamente gestito o meno gestito che ti offre un maggiore controllo sull'infrastruttura. Alcune delle opzioni di deployment disponibili includono l'installazione e la configurazione di un orchestratore per una gestione avanzata del cluster HPC.

Altamente gestito

Se vuoi che Google esegua il deployment e la configurazione della tua infrastruttura, utilizza Cluster Toolkit o Google Kubernetes Engine (GKE).

  • Cluster Toolkit: uno strumento open source offerto da Google che semplifica la configurazione e il deployment per i cluster che utilizzano Slurm o GKE. Utilizzi progetti base predefiniti per creare una cartella di deployment basata sul progetto base. Puoi modificare i blueprint o la cartella di deployment per personalizzare i deployment e lo stack software. Quindi, utilizzi Terraform o Packer per eseguire i comandi generati da Cluster Toolkit per eseguire il deployment del cluster.

    Per un tutorial su questo metodo di deployment, vedi Crea un cluster HPC Slurm abilitato a RDMA.

  • GKE: un servizio Kubernetes gestito e una piattaforma di orchestrazione dei container open source. GKE offre funzionalità come lo scalabilità automatica e l'alta affidabilità. Queste funzionalità rendono GKE una soluzione ideale per il deployment e la gestione dei carichi di lavoro HPC, inclusa la sua capacità di orchestrare applicazioni containerizzate, il supporto di hardware specializzato e la compatibilità con l'ecosistema Google Cloud. Puoi eseguire il deployment dei cluster GKE utilizzando GKE direttamente o utilizzando Cluster Toolkit. Puoi scegliere tra Google Kubernetes Engine (GKE) Standard o Autopilot.

    Per ulteriori informazioni su questo metodo di deployment, consulta Eseguire workload HPC con H4D.

Meno gestito, più controllo

Per un controllo più granulare dei cluster e del software installato, crea un cluster Compute Engine utilizzando uno dei seguenti metodi:

Puoi utilizzare questi metodi se vuoi utilizzare un orchestratore diverso da Slurm o GKE. Dopo aver creato le VM, installa manualmente qualsiasi software chiave necessario per il tuo workload HPC sulle VM. Puoi anche utilizzare uno script di avvio per controllare automaticamente l'installazione del software e installarlo se necessario all'avvio della VM.

Scegli l'immagine del sistema operativo

L'immagine del sistema operativo (OS) che scegli dipende dal servizio che utilizzi per il deployment del cluster.

  • Per i cluster su GKE: utilizza un'immagine del nodo GKE, come Container-Optimized OS. Se utilizzi Cluster Toolkit per deploy del cluster GKE, viene utilizzata un'immagine Container-Optimized OS per impostazione predefinita. Per saperne di più sulle immagini dei nodi, consulta Immagini dei nodi nella documentazione di GKE.

  • Per i cluster su Compute Engine: puoi utilizzare una delle seguenti immagini:

  • Per i cluster Slurm: Cluster Toolkit esegue il deployment del cluster Slurm con un'immagine VM HPC basata su Rocky Linux 8 ottimizzata per i workload HPC ad alto accoppiamento.

Crea il cluster HPC

Dopo aver esaminato la procedura di creazione del cluster e preso le decisioni preliminari per il tuo carico di lavoro, crea il cluster utilizzando una delle seguenti opzioni:

Passaggi successivi