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

Google Kubernetes Engine (GKE) bietet eine leistungsstarke, skalierbare Plattform für HPC-Arbeitslasten (Hochleistungs-Computing). Um eine hohe Leistung und betriebliche Effizienz zu erzielen, können Sie arbeitslastoptimierte Infrastruktur wie HPC-spezifische VM-Familien verwenden, die GKE bereitstellt. 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 so konzipiert, dass sie den Durchsatz für rechenintensive HPC-Anwendungen 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 ideal für rechenintensive und HPC-Arbeitslasten sind.

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 HPC-Arbeitslasten mit H4D ausführen.

Zuweisbare Knotenressourcen berücksichtigen

Machen Sie sich den Unterschied zwischen der Gesamtkapazität der Ressourcen eines Knotens und den Ressourcen bewusst, die Ihren Arbeitslasten zugewiesen werden können. 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 Systemfunktionalität 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 Vorabnutzungen zu vermeiden

Wenn eine Arbeitslast alle physischen Kerne verwendet, die ihr auf einem Knoten zur Verfügung stehen, kann es zu Konflikten mit latenzempfindlichen System-Daemons kommen. Diese Konflikte können zu häufigen Vorabnutzungen führen, bei denen der Betriebssystemplaner die HPC-Arbeitslast unterbricht, um Systemaufgaben auszuführen, was die Leistung beeinträchtigen kann.

Um die Leistung aufrechtzuerhalten, sollten Sie nicht alle verfügbaren CPUs Ihrer Arbeitslast zuweisen. Wichtige Systemprozesse benötigen einen geringen CPU-Overhead, um ordnungsgemäß zu funktionieren. Wenn Sie Ihrer Arbeitslast 100% der Rechenkapazität zuweisen, kommt es zu Ressourcenkonflikten mit diesen Systemkomponenten, was die Leistung beeinträchtigen kann. Bei H4D-Maschinentypen sollten Sie beispielsweise Ihre Arbeitslast 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 bietet Referenzdesign-Blueprints, die Best Practices für die Konfiguration von Compute-, Speicher- und Netzwerkressourcen in einer Hochleistungsumgebung enthalten.

Eine Anleitung zum Erstellen eines H4D Clusters mit dem Cluster Toolkit finden Sie unter HPC-Arbeitslasten mit H4D ausführen.

Flex-Start für die Kapazitätsverwaltung verwenden

Verwenden Sie für bursty (dynamische) oder nicht zeitkritische HPC-Arbeitslasten Flex-Start, um die Kapazitätsverwaltung zu verbessern, wenn H4D-On-Demand- oder reservierte Kapazität nicht verfügbar ist. Flex-Start verwaltet den Lebenszyklus von H4D-Knoten und hilft, bursty oder zeitkritische Ressourcenanforderungen zu erfüllen.

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 sorgt dafür, dass alle Pods auf den Hostmaschinen nah beieinander bereitgestellt werden. Diese Konfiguration minimiert die Netzwerklatenz zwischen Knoten, was für Anwendungen, die auf die Kommunikation zwischen Knoten angewiesen sind, entscheidend ist.

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

Geeignete Ressourcenanfragen festlegen

Prüfen Sie die tatsächlich zuweisbare CPU auf Ihren Knoten, bevor Sie Ihre HPC-Jobs dimensionieren. Verwenden Sie den Befehl kubectl get node, um zuweisbare Ressourcen anzusehen. Achten Sie darauf, dass die CPU-Anforderungen Ihres Jobs nicht die von GKE nach den GKE-Systemreservierungen verfügbaren Ressourcen übersteigen.

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 einzelnen Arbeitslasten zuweisen

Konfigurieren Sie Ihre MPI-Jobs so, dass sie einen ganzen H4D-Knoten belegen. H4D-Instanzen werden als VMs mit vollständigem Host bereitgestellt. Mit 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 zu verhindern, dass Replikate auf demselben physischen Knoten platziert werden.

Cloud RDMA für Hochgeschwindigkeitsnetzwerke mit H4D-VMs aktivieren

Wenn Sie H4D-VMs verwenden, konfigurieren Sie Ihr Bereitstellungsmanifest so, dass Cloud RDMA für Ihre Pods aktiviert wird. Diese Konfiguration sorgt dafür, dass die Hochgeschwindigkeits-RDMA-Netzwerkschnittstellen Ihrer containerisierten Arbeitslast korrekt zur Verfügung gestellt werden. Eine Anleitung finden Sie unter Manifeste für RDMA konfigurieren.

Zusammenfassung der Best Practices

In der folgenden Tabelle sind die in diesem Dokument empfohlenen Best Practices zusammengefasst:

Thema Aufgabe
Infrastruktur- und Knotenkonfiguration H4D-VMs für rechenintensive Arbeitslasten auswählen
Infrastruktur- und Knotenkonfiguration Zuweisbare Knotenressourcen berücksichtigen
Infrastruktur- und Knotenkonfiguration Kerne reservieren, um Vorabnutzungen zu vermeiden
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 einzelnen Arbeitslasten zuweisen
Cluster- und Arbeitslastkonfiguration Cloud RDMA für Hochgeschwindigkeitsnetzwerke mit H4D-VMs aktivieren

Nächste Schritte