Übersicht über die Erstellung von HPC-Clustern


Wenn Sie die Infrastruktur für eng gekoppelte Anwendungen erstellen möchten, die über mehrere Knoten skaliert werden, können Sie einen Cluster von VM-Instanzen erstellen. In diesem Leitfaden erhalten Sie einen allgemeinen Überblick über die wichtigsten Aspekte und Schritte zum Konfigurieren eines Clusters von VM-Instanzen für HPC-Arbeitslasten (Hochleistungs-Computing) mit dichter Ressourcenzuweisung.

Compute Engine bietet verschiedene Möglichkeiten, eine Vielzahl von VM-Instanzen zu erstellen, die mit demselben Netzwerk verbunden sind, aber keine dichte Ressourcenzuweisung erfordern. Sie können beispielsweise eine der folgenden Methoden verwenden, die an anderer Stelle in der Compute Engine-Dokumentation beschrieben werden:

Sie können auch ein Skript erstellen, das die Befehle zum Erstellen einzelner Instanzen enthält und den Instanzen kompakte Platzierungsrichtlinien zuweist, um die Latenz zu reduzieren.

Mit H4D (Vorschau) unterstützt Compute Engine die Ausführung umfangreicher HPC-Arbeitslasten, indem ein ganzer Cluster von VM-Instanzen als ein einzelner Computer behandelt wird. Durch die topologiebewusste Platzierung von VMs können Sie auf viele Instanzen innerhalb eines einzelnen Netzwerk-Superblocks zugreifen und die Netzwerklatenz minimieren. Sie können auch Cloud RDMA auf diesen Instanzen konfigurieren, um die Leistung der knotenübergreifenden Kommunikation zu maximieren. Dies ist für eng gekoppelte HPC-Arbeitslasten entscheidend.

Sie erstellen diese HPC-VM-Cluster mit H4D, indem Sie Kapazitätsblöcke anstelle einzelner Ressourcen reservieren. Die Verwendung von Kapazitätsblöcken für Ihren Cluster bietet die folgenden zusätzlichen Funktionen für die Bereitstellung und Verwaltung dieser großen Umgebungen:

  • Topologiebewusste Platzierung von VM-Instanzen
  • Erweiterte Reservierungssysteme zur Sicherung und Verwaltung von Kapazitäten
  • Erweiterte verwaltete Instanzgruppen (MIGs), die für große, voneinander abhängige Gruppen von VM-Instanzen entwickelt wurden.
  • Erweiterte Wartungsplanung und ‑steuerung, die mehr Kontrolle darüber bietet, wann und wie die Wartung auf den VM-Instanzen erfolgt. Dies ist entscheidend für lang andauernde, störungsempfindliche Arbeitslasten. Dazu gehören Funktionen wie die vom Kunden ausgelöste Wartung und die gruppierte Wartung für Ressourcenblöcke.

Clusterterminologie

Bei der Arbeit mit Kapazitätsblöcken werden die folgenden Begriffe verwendet:

Blöcke
Mehrere Unterblöcke sind über ein nicht blockierendes Fabric miteinander verbunden, was eine Verbindung mit hoher Bandbreite ermöglicht. Jede CPU im Block ist mit maximal zwei Netzwerk-Hops erreichbar. Das System stellt Orchestratoren Block- und Unterblockmetadaten zur Verfügung, um eine optimale Jobzuweisung zu ermöglichen.
Cluster
Mehrere Blöcke sind miteinander verbunden und bilden einen Cluster, der auf Tausende von CPUs skaliert werden kann, um umfangreiche HPC-Arbeitslasten auszuführen. Jeder Cluster ist global eindeutig. Die Kommunikation zwischen verschiedenen Blöcken fügt nur einen zusätzlichen Hop hinzu, wodurch die hohe Leistung und Vorhersagbarkeit auch bei einer massiven Skalierung beibehalten wird. Metadaten auf Clusterebene sind auch für Orchestratoren für die intelligente, groß angelegte Jobzuweisung verfügbar.
Dichte Bereitstellung
Eine Ressourcenanfrage, bei der die Ressourcen Ihrer Compute-Instanz physisch nahe beieinander zugewiesen werden, um die Anzahl der Netzwerk-Hops zu minimieren und die niedrigste Latenz zu optimieren.
Netzwerkstruktur
Ein Netzwerk-Fabric bietet eine Verbindung mit hoher Bandbreite und niedriger Latenz über alle Blöcke und Google Cloud Dienste in einem Cluster hinweg. Jupiter ist die Rechenzentrumsnetzwerkarchitektur von Google, die softwarebasiertes Networking und optische Schalter nutzt, um das Netzwerk weiterzuentwickeln und seine Leistung zu optimieren.
Knoten oder Host
Ein einzelner physischer Server im Rechenzentrum. Jeder Host hat zugeordnete Rechenressourcen wie CPUs, Arbeitsspeicher und Netzwerkschnittstellen. Die Anzahl und Konfiguration dieser Rechenressourcen hängen von der Maschinenfamilie ab. VM-Instanzen werden auf einem physischen Host bereitgestellt.
Orchestrator
Ein Orchestrator automatisiert die Verwaltung Ihrer Cluster. Mit einem Orchestrator müssen Sie nicht jede VM-Instanz im Cluster verwalten. Ein Orchestrator wie Slurm oder Google Kubernetes Engine (GKE) übernimmt Aufgaben wie das Einreihen von Jobs in die Warteschlange, die Ressourcenzuweisung, das automatische Skalieren (mit GKE) und andere alltägliche Aufgaben der Clusterverwaltung.
Unterblöcke
Dies sind grundlegende Einheiten, in denen eine Gruppe von Hosts physisch in einem einzelnen Rack untergebracht ist. Ein Top-of-Rack-Switch (ToR) verbindet diese Hosts und ermöglicht eine äußerst effiziente Single-Hop-Kommunikation zwischen zwei beliebigen CPUs innerhalb des Subblocks. Cloud RDMA ermöglicht diese direkte Kommunikation.

Übersicht über den Prozess zur Clustererstellung mit H4D-VMs

Wenn Sie HPC-Cluster auf reservierten Kapazitätsblöcken erstellen möchten, müssen Sie die folgenden Schritte ausführen:

  1. Nutzungsoption auswählen und Kapazität abrufen
  2. Bereitstellungsoption und Orchestrator auswählen
  3. Betriebssystem- oder Cluster-Image auswählen
  4. Cluster erstellen

Nutzungsoption auswählen und Kapazität erhalten

Verbrauchsoptionen bestimmen, wie Ressourcen für Ihren Cluster bezogen werden. Wenn Sie einen Cluster mit erweiterten Verwaltungsfunktionen erstellen möchten, müssen Sie Kapazitätsblöcke für eine dichte Bereitstellung anfordern.

In der folgenden Tabelle sind die wichtigsten Unterschiede zwischen den Verbrauchsoptionen für Kapazitätsblöcke zusammengefasst:

Nutzungsoption Vorausschauende Reservierungen für Kapazitätsblöcke Flex-Start (Vorschau)
Arbeitslasteigenschaften Lang andauernde, groß angelegte verteilte Arbeitslasten, die dicht zugewiesene Ressourcen erfordern Arbeitslasten mit kurzer Laufzeit, die dicht zugewiesene Ressourcen erfordern
Lebensdauer Beliebige Zeit bis zu 7 Tage
Auf Abruf Nein Nein
Kontingent Prüfen Sie, ob Ihr Kontingent ausreicht, bevor Sie Instanzen erstellen. Kontingent auf Abruf wird berechnet.
Preise
Ressourcenzuweisung Dicht Dicht
Bereitstellungsmodell Reservierungsgebunden Flex-Start (Vorschau)
Erstellungsmethode Zum Erstellen von HPC-Clustern und VMs müssen Sie Folgendes tun:
  1. Kapazität reservieren: Wenden Sie sich dazu an Ihr Account-Management-Team.
  2. Am ausgewählten Datum und zur ausgewählten Uhrzeit können Sie die reservierte Kapazität zum Erstellen von HPC-Clustern verwenden. Weitere Informationen finden Sie unter Bereitstellungsoption auswählen.
Wählen Sie eine der folgenden Optionen aus, um VMs zu erstellen:

Wenn die angeforderte Kapazität verfügbar ist, stellt Compute Engine sie bereit.

Bereitstellungsoption auswählen

Je nachdem, wie viel Kontrolle Sie über die Clusterbereitstellung benötigen, können Sie zwischen einer stark verwalteten oder einer weniger verwalteten Bereitstellung wählen, die Ihnen mehr Kontrolle über Ihre Infrastruktur gibt. Einige der verfügbaren Bereitstellungsoptionen umfassen die Installation und Konfiguration eines Orchestrators für eine verbesserte Verwaltung des HPC-Clusters.

Stark verwaltet

Wenn Google Ihre Infrastruktur bereitstellen und einrichten soll, verwenden Sie das Cluster Toolkit oder Google Kubernetes Engine (GKE).

  • Cluster Toolkit: Ein von Google angebotenes Open-Source-Tool, das die Konfiguration und Bereitstellung von Clustern vereinfacht, die entweder Slurm oder GKE verwenden. Sie verwenden vordefinierte Blueprints, um einen Bereitstellungsordner zu erstellen, der auf dem Blueprint basiert. Sie können Blaupausen oder den Bereitstellungsordner ändern, um Bereitstellungen und Ihren Software-Stack anzupassen. Anschließend verwenden Sie Terraform oder Packer, um die von Cluster Toolkit generierten Befehle auszuführen und den Cluster bereitzustellen.

    Eine Anleitung zu dieser Bereitstellungsmethode finden Sie unter RDMA-fähigen HPC-Slurm-Cluster erstellen.

  • GKE: ein verwalteter Kubernetes-Dienst und eine Open-Source-Plattform zur Containerorchestrierung. GKE bietet Funktionen wie Autoscaling und Hochverfügbarkeit. Diese Funktionen machen GKE zu einer guten Wahl für die Bereitstellung und Verwaltung von HPC-Arbeitslasten. Dazu gehören die Orchestrierung von containerisierten Anwendungen, die Unterstützung von spezieller Hardware und die Kompatibilität mit dem Google Cloud-Ökosystem. Sie können GKE-Cluster direkt oder mit dem Cluster-Toolkit bereitstellen. Sie können zwischen der Google Kubernetes Engine (GKE) Standard Edition und Autopilot wählen.

    Weitere Informationen zu dieser Bereitstellungsmethode finden Sie unter HPC-Arbeitslasten mit H4D ausführen.

Weniger verwaltet, mehr Kontrolle

Wenn Sie eine detailliertere Kontrolle über Ihre Cluster und die darauf installierte Software benötigen, können Sie einen Compute Engine-Cluster mit einer der folgenden Methoden erstellen:

Sie können diese Methoden verwenden, wenn Sie einen anderen Orchestrator als Slurm oder GKE verwenden möchten. Nachdem die VMs erstellt wurden, installieren Sie manuell alle wichtigen Softwarekomponenten, die für Ihre HPC-Arbeitslast auf den VMs erforderlich sind. Sie können auch ein Startskript verwenden, um die Softwareinstallation automatisch zu prüfen und die Software bei Bedarf beim Starten der VM zu installieren.

Betriebssystem-Image auswählen

Das von Ihnen ausgewählte Betriebssystem-Image hängt vom Dienst ab, den Sie zum Bereitstellen Ihres Clusters verwenden.

  • Für Cluster in GKE: Verwenden Sie ein GKE-Knoten-Image wie Container-Optimized OS. Wenn Sie Cluster Toolkit zum Bereitstellen Ihres GKE-Cluster verwenden, wird standardmäßig ein Container-Optimized OS-Image verwendet. Weitere Informationen zu Knoten-Images finden Sie in der GKE-Dokumentation unter Knoten-Images.

  • Für Cluster in Compute Engine: Sie können eines der folgenden Images verwenden:

  • Für Slurm-Cluster: Das Cluster Toolkit stellt den Slurm-Cluster mit einem HPC-VM-Image bereit, das auf Rocky Linux 8 basiert und für eng gekoppelte HPC-Arbeitslasten optimiert ist.

HPC-Cluster erstellen

Nachdem Sie den Clustererstellungsprozess geprüft und vorläufige Entscheidungen für Ihre Arbeitslast getroffen haben, erstellen Sie den Cluster mit einer der folgenden Optionen:

Nächste Schritte