Best practice per l'esecuzione di carichi di lavoro HPC su GKE

Google Kubernetes Engine (GKE) fornisce una piattaforma scalabile e ad alte prestazioni per i workload di computing ad alte prestazioni (HPC). Per ottenere prestazioni elevate ed efficienza operativa, puoi utilizzare l'infrastruttura ottimizzata per il carico di lavoro, come le famiglie di VM specifiche per HPC, fornite da GKE. Questo documento descrive le best practice per la gestione dell'infrastruttura e dei workload al fine di ottimizzare l'esecuzione delle applicazioni HPC su GKE.

Per una panoramica consolidata di tutte le best practice di GKE, consulta Best practice per GKE.

Configurazione dell'infrastruttura e dei nodi

Questa sezione descrive le best practice per la configurazione dell'infrastruttura sottostante e dei nodi GKE per i carichi di lavoro HPC.

Scegliere le VM H4D per i carichi di lavoro ad alta intensità di calcolo

Seleziona l'hardware appropriato per la tua applicazione. Le VM H4D sono progettate per massimizzare il throughput per le applicazioni HPC ad alta intensità di calcolo. Le VM H4D offrono prestazioni elevate, costi ridotti e scalabilità per carichi di lavoro multi-nodo. H4D fa parte della famiglia di macchine ottimizzate per il calcolo, che offre istanze ottimizzate per il calcolo ideali per il computing ad alte prestazioni e ad alta intensità di calcolo.

Per saperne di più sulla serie di macchine H4D, consulta Famiglia di macchine ottimizzate per il calcolo: serie di macchine H4D.

Per istruzioni sulla creazione di cluster GKE ottimizzati per HPC, consulta Eseguire workload di computing ad alte prestazioni con H4D.

Tieni conto delle risorse allocabili del nodo

Comprendere la differenza tra la capacità totale delle risorse di un nodo e le risorse allocabili ai tuoi carichi di lavoro. I nodi GKE eseguono componenti di sistema, come kubelet e il runtime container, che richiedono risorse per funzionare. GKE riserva una quantità predefinita di risorse per la funzionalità di sistema e l'affidabilità dei nodi. Comprendere la quantità di allocazione delle risorse effettiva disponibile per il tuo workload (le dimensioni della VM meno la capacità riservata da GKE) può aiutarti a dimensionare correttamente le richieste di risorse per i tuoi workload HPC.

Per maggiori informazioni, consulta le seguenti risorse:

Riservare core per ridurre i preempt

Se un workload utilizza tutti i core fisici disponibili su un nodo, può competere con i daemon di sistema sensibili alla latenza. Questa contesa potrebbe causare interruzioni frequenti in cui lo scheduler del sistema operativo interrompe il carico di lavoro HPC per eseguire attività di sistema, il che può ridurre le prestazioni.

Per mantenere le prestazioni, evita di allocare tutte le CPU disponibili al tuo carico di lavoro. I processi di sistema essenziali richiedono un piccolo overhead della CPU per funzionare correttamente. L'allocazione del 100% della capacità di computing al tuo workload crea una contesa delle risorse con questi componenti di sistema, il che può peggiorare le prestazioni. Ad esempio, per i tipi di macchine H4D, per mantenere le prestazioni, configura il workload in modo che utilizzi meno di 192 CPU.

Configurazione del cluster e del workload

Questa sezione descrive le best practice per la configurazione dei cluster GKE e il deployment dei workload HPC.

Utilizzare Cluster Toolkit per la creazione di cluster

Utilizza Cluster Toolkit per semplificare il deployment e la gestione dei carichi di lavoro HPC su GKE. Il toolkit fornisce progetti di architettura di riferimento che incorporano le best practice per la configurazione delle risorse di computing, archiviazione e networking in un ambiente ad alte prestazioni.

Per istruzioni sull'utilizzo di Cluster Toolkit per creare un cluster H4D, consulta Esegui workload di computing ad alte prestazioni con H4D.

Utilizza l'avvio flessibile per la gestione della capacità

Per i workload HPC dinamici o non sensibili al tempo, utilizza l'inizio flessibile per migliorare la gestione della capacità quando la capacità on demand o riservata H4D non è disponibile. L'avvio flessibile gestisce il ciclo di vita dei nodi H4D e aiuta a soddisfare le esigenze di risorse burst o sensibili al tempo.

Per saperne di più, consulta Creare un cluster H4D con avvio flessibile.

Utilizza una policy di posizionamento compatto per i workload ad alto accoppiamento

Implementa una policy di posizionamento compatto per i workload HPC ad alto accoppiamento sensibili alla latenza. Questa policy contribuisce a garantire che il provisioning di tutti i pod venga eseguito in prossimità l'uno dell'altro sulle macchine host. Questa configurazione riduce al minimo la latenza di rete tra i nodi, il che è fondamentale per le applicazioni che si basano sulla comunicazione tra nodi.

Se crei un cluster H4D utilizzando gcloud CLI, come descritto in Esegui carichi di lavoro di computing ad alte prestazioni con H4D, GKE configura automaticamente un criterio di posizionamento compatto. Se utilizzi Cluster Toolkit, questo criterio viene configurato automaticamente. Se vuoi configurare manualmente il posizionamento compatto per altri tipi di nodi, vedi Definisci il posizionamento compatto per i nodi GKE.

Imposta richieste di risorse appropriate

Ispeziona la CPU allocabile effettiva sui nodi prima di dimensionare i job HPC. Utilizza il comando kubectl get node per visualizzare le risorse allocabili. Assicurati che i requisiti della CPU del job non superino quelli disponibili in GKE dopo le prenotazioni del sistema GKE.

GKE offre diverse funzionalità per aiutarti ad analizzare e regolare automaticamente le richieste di risorse. Per saperne di più, inizia con Identificare i workload con provisioning insufficiente e con provisioning eccessivo.

Dedica interi nodi a singoli carichi di lavoro

Configura i job MPI in modo che occupino un intero nodo H4D. Le istanze H4D vengono provisionate come VM con host completo. Questa strategia riserva la maggior parte della capacità del nodo, garantendo l'isolamento del carico di lavoro. Utilizza le richieste di risorse del container o l'anti-affinità dei pod per assicurarti che le repliche non vengano eseguite sullo stesso nodo fisico.

Abilita Cloud RDMA per il networking ad alta velocità con le VM H4D

Se utilizzi VM H4D, configura il manifest di deployment per abilitare Cloud RDMA per i tuoi pod. Questa configurazione contribuisce a garantire che le interfacce di rete RDMA ad alta velocità siano esposte correttamente al workload containerizzato. Per istruzioni, vedi Configurare i manifest per RDMA.

Riepilogo delle best practice

La seguente tabella riassume le best practice consigliate in questo documento:

Argomento Attività
Configurazione dell'infrastruttura e dei nodi Scegliere le VM H4D per i carichi di lavoro ad alta intensità di calcolo
Configurazione dell'infrastruttura e dei nodi Tieni conto delle risorse allocabili del nodo
Configurazione dell'infrastruttura e dei nodi Riservare core per ridurre i preempt
Configurazione di cluster e workload Utilizza Cluster Toolkit per la creazione dei cluster
Configurazione del cluster e del workload Utilizza l'avvio flessibile per la gestione della capacità
Configurazione del cluster e del workload Utilizza una policy di posizionamento compatto per i workload ad alto accoppiamento
Configurazione di cluster e workload Imposta richieste di risorse appropriate
Configurazione del cluster e del workload Dedica interi nodi a singoli carichi di lavoro
Configurazione del cluster e del workload Abilita Cloud RDMA per il networking ad alta velocità con le VM H4D

Passaggi successivi