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 carichi di lavoro 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 contenuti 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 HPC e carichi di lavoro 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 carichi di lavoro di computing ad alte prestazioni con H4D.

Tieni conto delle risorse allocabili del nodo

Comprendi 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 del 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 di cui disponi 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:

Riserva core per ridurre le interruzioni

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 il programma di pianificazione 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 workload. I processi di sistema essenziali richiedono un piccolo sovraccarico della CPU per funzionare correttamente. L'allocazione del 100% della capacità di calcolo al tuo workload crea contesa di 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 di cluster e workload

Questa sezione descrive le best practice per la configurazione dei cluster GKE e il deployment dei carichi di lavoro 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 progettazione di riferimento che incorporano le best practice per la configurazione di risorse di calcolo, archiviazione e networking in un ambiente ad alte prestazioni.

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

Utilizzare 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. Flex-start gestisce il ciclo di vita dei nodi H4D e aiuta a soddisfare le esigenze di risorse burst o sensibili al tempo.

Per ulteriori informazioni, consulta Creare un cluster H4D con avvio flessibile.

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

Implementa una policy di posizionamento compatto per carichi di lavoro HPC ad alto accoppiamento sensibili alla latenza. Questo criterio contribuisce a garantire che tutti i pod vengano sottoposti a provisioning vicino l'uno all'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 i 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 di CPU del tuo job non superino quelli disponibili in GKE dopo le prenotazioni di sistema GKE.

GKE offre diverse funzionalità per analizzare e modificare 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 inserite nello stesso nodo fisico.

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

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

Riepilogo delle best practice

La tabella seguente 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 Riserva core per ridurre le interruzioni
Configurazione di cluster e workload Utilizzare Cluster Toolkit per la creazione di cluster
Configurazione di cluster e workload Utilizzare l'avvio flessibile per la gestione della capacità
Configurazione di cluster e workload Utilizza una policy di posizionamento compatto per i workload ad accoppiamento stretto
Configurazione di cluster e workload Imposta richieste di risorse appropriate
Configurazione di cluster e workload Dedica interi nodi a singoli carichi di lavoro
Configurazione di cluster e workload Abilitare Cloud RDMA per il networking ad alta velocità con le VM H4D

Passaggi successivi