Best Practices zum Ausführen von HPC-Arbeitslasten in GKE

Google Kubernetes Engine (GKE) bietet eine leistungsstarke, skalierbare Plattform für Hochleistungs-Computing-Arbeitslasten (HPC). Um eine hohe Leistung und betriebliche Effizienz zu erzielen, können Sie arbeitslastoptimierte Infrastruktur wie HPC-spezifische VM-Familien verwenden, die von GKE bereitgestellt werden. In diesem Dokument werden Best Practices für die Verwaltung Ihrer Infrastruktur und Arbeitslasten beschrieben, um die Ausführung Ihrer HPC-Anwendungen in GKE zu optimieren.

Eine konsolidierte Übersicht über alle GKE-Best Practices finden Sie unter Best Practices für GKE.

Infrastruktur- und Knotenkonfiguration

In diesem Abschnitt werden Best Practices für die Konfiguration Ihrer zugrunde liegenden Infrastruktur und GKE-Knoten für HPC-Arbeitslasten beschrieben.

H4D-VMs für rechenintensive Arbeitslasten auswählen

Wählen Sie die passende Hardware für Ihre Anwendung aus. H4D-VMs sind darauf ausgelegt, den Durchsatz für rechenintensive HPC-Anwendungen zu maximieren. H4D-VMs bieten hohe Leistung, niedrige Kosten und Skalierbarkeit für Arbeitslasten mit mehreren Knoten. H4D gehört zur computing-optimierten Maschinenfamilie, die computing-optimierte Instanzen bietet, die sich ideal für rechenintensive und HPC-Arbeitslasten eignen.

Weitere Informationen zur H4D-Maschinenserie finden Sie unter Computing-optimierte Maschinenfamilie: H4D-Maschinenserie.

Eine Anleitung zum Erstellen von HPC-optimierten GKE-Clustern finden Sie unter Hochleistungs-Computing-Arbeitslasten mit H4D ausführen.

Für Knoten zuweisbare Ressourcen berücksichtigen

Den Unterschied zwischen der gesamten Ressourcenkapazität eines Knotens und den Ressourcen, die Ihren Arbeitslasten zugewiesen werden können, verstehen. Auf GKE-Knoten werden Systemkomponenten wie kubelet und die Containerlaufzeit ausgeführt, die Ressourcen für die Funktion benötigen. GKE reserviert eine vordefinierte Menge an Ressourcen für Systemfunktionen und Knotenzuverlässigkeit. Wenn Sie wissen, wie viel tatsächliche Ressourcenzuweisung für Ihre Arbeitslast verfügbar ist (die VM-Größe abzüglich der von GKE reservierten Kapazität), können Sie Ressourcenanfragen für Ihre HPC-Arbeitslasten richtig dimensionieren.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Kerne reservieren, um Unterbrechungen zu minimieren

Wenn eine Arbeitslast alle physischen Kerne verwendet, die ihr auf einem Knoten zur Verfügung stehen, kann sie mit latenzsensitiven System-Daemons konkurrieren. Diese Konflikte können zu häufigen Unterbrechungen führen, bei denen der Betriebssystem-Scheduler die HPC-Arbeitslast unterbricht, um Systemaufgaben auszuführen. Dies kann die Leistung beeinträchtigen.

Um die Leistung aufrechtzuerhalten, sollten Sie nicht alle verfügbaren CPUs Ihrer Arbeitslast zuweisen. Für wichtige Systemprozesse ist ein geringer CPU-Aufwand erforderlich, damit sie ordnungsgemäß funktionieren. Wenn Sie 100% der Rechenkapazität für Ihre Arbeitslast zuweisen, kommt es zu Ressourcenkonflikten mit diesen Systemkomponenten, was die Leistung beeinträchtigen kann. Bei H4D-Maschinentypen sollten Sie Ihre Arbeitslast beispielsweise so konfigurieren, dass sie weniger als 192 CPUs verwendet, um die Leistung aufrechtzuerhalten.

Cluster- und Arbeitslastkonfiguration

In diesem Abschnitt werden Best Practices für die Konfiguration Ihrer GKE-Cluster und die Bereitstellung Ihrer HPC-Arbeitslasten beschrieben.

Cluster Toolkit für die Clustererstellung verwenden

Verwenden Sie das Cluster Toolkit, um die Bereitstellung und Verwaltung von HPC-Arbeitslasten in GKE zu vereinfachen. Das Toolkit enthält Referenzdesign-Blaupausen, die Best Practices für die Konfiguration von Rechen-, Speicher- und Netzwerkressourcen in einer leistungsstarken Umgebung enthalten.

Eine Anleitung zur Verwendung von Cluster Toolkit zum Erstellen eines H4D-Clusters finden Sie unter Hochleistungs-Computing-Arbeitslasten mit H4D ausführen.

Flex-Start für die Kapazitätsverwaltung verwenden

Für HPC-Arbeitslasten mit Bursts (dynamisch) oder zeitunabhängige HPC-Arbeitslasten können Sie Flex-Start verwenden, um die Kapazitätsverwaltung zu verbessern, wenn H4D-On-Demand- oder reservierte Kapazität nicht verfügbar ist. Mit Flex-Start wird der Lebenszyklus von H4D-Knoten verwaltet und es können burstartige oder zeitkritische Ressourcenanforderungen erfüllt werden.

Weitere Informationen finden Sie unter H4D-Cluster mit Flex-Start erstellen.

Richtlinie für kompakte Platzierung für eng gekoppelte Arbeitslasten verwenden

Implementieren Sie eine Richtlinie für kompakte Platzierung für latenzempfindliche, eng gekoppelte HPC-Arbeitslasten. Diese Richtlinie trägt dazu bei, dass alle Pods auf den Hostcomputern nahe beieinander bereitgestellt werden. Diese Konfiguration minimiert die Netzwerklatenz zwischen Knoten, was für Anwendungen, die auf die Kommunikation zwischen Knoten angewiesen sind, von entscheidender Bedeutung ist.

Wenn Sie einen H4D-Cluster mit der gcloud CLI erstellen, wie unter High-Performance-Computing-Arbeitslasten mit H4D ausführen beschrieben, konfiguriert GKE automatisch eine Richtlinie für kompakte Platzierung. Wenn Sie das Cluster Toolkit verwenden, wird diese Richtlinie automatisch konfiguriert. Wenn Sie die kompakte Platzierung für andere Knotentypen manuell konfigurieren möchten, lesen Sie den Abschnitt Kompakte Platzierung für GKE-Knoten definieren.

Geeignete Ressourcenanfragen festlegen

Sehen Sie sich die tatsächlich zuweisbare CPU auf Ihren Knoten an, bevor Sie die Größe Ihrer HPC-Jobs festlegen. Verwenden Sie den Befehl kubectl get node, um zuweisbare Ressourcen aufzurufen. Achten Sie darauf, dass die CPU-Anforderungen Ihres Jobs nicht die von GKE nach den GKE-Systemreservierungen verfügbaren Ressourcen überschreiten.

GKE bietet mehrere Funktionen, mit denen Sie Ihre Ressourcenanfragen analysieren und automatisch anpassen können. Weitere Informationen finden Sie unter Unter- und überbereitgestellte Arbeitslasten identifizieren.

Ganze Knoten für einzelne Arbeitslasten reservieren

Konfigurieren Sie Ihre MPI-Jobs so, dass sie einen gesamten H4D-Knoten belegen. H4D-Instanzen werden als VMs mit vollständigem Host bereitgestellt. Bei dieser Strategie wird der Großteil der Kapazität des Knotens reserviert, sodass Ihre Arbeitslast isoliert ist. Verwenden Sie Containerressourcenanfragen oder Pod-Anti-Affinität, um sicherzustellen, dass Replikate nicht auf demselben physischen Knoten landen.

Cloud RDMA für Hochgeschwindigkeitsnetzwerke mit H4D-VMs aktivieren

Wenn Sie H4D-VMs verwenden, konfigurieren Sie Ihr Bereitstellungsmanifest, um Cloud RDMA für Ihre Pods zu aktivieren. Diese Konfiguration trägt dazu bei, dass die RDMA-Netzwerkschnittstellen mit hoher Geschwindigkeit korrekt für Ihre containerisierte Arbeitslast verfügbar gemacht werden. Eine Anleitung finden Sie unter Manifeste für RDMA konfigurieren.

Zusammenfassung der Best Practices

In der folgenden Tabelle sind die Best Practices zusammengefasst, die in diesem Dokument empfohlen werden:

Thema Aufgabe
Infrastruktur- und Knotenkonfiguration H4D-VMs für rechenintensive Arbeitslasten auswählen
Infrastruktur- und Knotenkonfiguration Für Knoten zuweisbare Ressourcen berücksichtigen
Infrastruktur- und Knotenkonfiguration Kerne reservieren, um Unterbrechungen zu minimieren
Cluster- und Arbeitslastkonfiguration Cluster Toolkit für die Clustererstellung verwenden
Cluster- und Arbeitslastkonfiguration Flex-Start für die Kapazitätsverwaltung verwenden
Cluster- und Arbeitslastkonfiguration Richtlinie für kompakte Platzierung für eng gekoppelte Arbeitslasten verwenden
Cluster- und Arbeitslastkonfiguration Geeignete Ressourcenanfragen festlegen
Cluster- und Arbeitslastkonfiguration Ganze Knoten für einzelne Arbeitslasten reservieren
Cluster- und Arbeitslastkonfiguration Cloud RDMA für Hochgeschwindigkeitsnetzwerke mit H4D-VMs aktivieren

Nächste Schritte