In diesem Dokument werden die Konfigurationen in AI Hypercomputer beschrieben, die Sie berücksichtigen sollten, bevor Sie Compute Engine-Instanzen und -Cluster erstellen. Wenn Sie die verfügbaren Konfigurationen prüfen, können Sie die Leistung Ihrer Arbeitslasten optimieren und Ausfallzeiten sowie Leistungsprobleme minimieren.
Konfigurationsfaktoren für die Erstellung von Compute-Instanzen und Clustern
Bevor Sie Compute-Instanzen und Cluster zum Ausführen Ihrer Arbeitslasten erstellen, sollten Sie sich überlegen, welche Konfiguration Sie verwenden möchten:
Wenn Sie das reservierungsgebundene Bereitstellungsmodell verwenden, müssen Sie auch die folgenden Faktoren berücksichtigen:
Bereitstellungsmodelle
Je nachdem, welche Verbrauchsoption Sie zum Erstellen von Compute-Instanzen oder Clustern auswählen, können Sie eines der folgenden Bereitstellungsmodelle verwenden, um die erforderlichen Ressourcen zum Erstellen von Instanzen zu erhalten:
Reservierungsgebunden: Sie können Ressourcen zu einem ermäßigten Preis für ein zukünftiges Datum und eine zukünftige Dauer reservieren. Zu Beginn des Reservierungszeitraums können Sie die reservierten Ressourcen verwenden, um Instanzen oder Cluster zu erstellen. Sie können während der gesamten Reservierungsdauer auf die entsprechenden Ressourcen zugreifen.
Flex-Start: Sie können rabattierte Ressourcen für bis zu sieben Tage anfordern. Compute Engine versucht, die Bereitstellung der angeforderten Ressourcen so schnell wie möglich zu planen, sobald sie verfügbar sind. Sie haben während des angeforderten Zeitraums exklusiven Zugriff auf die erhaltenen Ressourcen.
Spot: Je nach Verfügbarkeit können Sie sofort stark rabattierte Ressourcen erhalten. Compute Engine kann Instanzen jedoch jederzeit beenden oder löschen, um Kapazitäten zurückzugewinnen.
Reservierungsgebundenes Bereitstellungsmodell
Das reservierungsgebundene Bereitstellungsmodell verknüpft die von Ihnen erstellten Compute-Instanzen mit der zuvor reservierten Kapazität. Wenn Sie Kapazität reservieren, erstellt Compute Engine eine leere Reservierung. Zu Beginn der Reservierung geschieht Folgendes:
Die Compute Engine fügt die reservierte Anzahl von Instanzen zur Reservierung hinzu. Sie haben bis zum Ende der Reservierung exklusiven Zugriff auf die reservierte Kapazität.
Google Cloud stellt Ihnen die reservierte Kapazität bis zum Ende des Reservierungszeitraums in Rechnung, unabhängig davon, ob Sie die Kapazität nutzen oder nicht.
Sie können die reservierten Ressourcen dann verwenden, um Instanzen ohne zusätzliche Gebühren zu erstellen. Sie zahlen nur für Ressourcen, die nicht in der Reservierung enthalten sind, z. B. Laufwerke oder IP-Adressen.
So geben Sie das reservierungsgebundene Bereitstellungsmodell an, wenn Sie Compute-Instanzen oder verwaltete Instanzgruppen erstellen:
Wählen Sie in der Google Cloud Console in der Liste Bereitstellungsmodell die Option An Reservierung gebunden aus.
Fügen Sie in der Google Cloud CLI das Flag
--provisioning-model=RESERVATION_BOUNDin den Befehl ein.Fügen Sie in der Compute Engine API das Feld
"provisioningModel": "RESERVATION_BOUND"in den Anfragetext ein.
Weitere Informationen zum Festlegen dieser Parameter beim Erstellen von Instanzen oder MIGs nach der Reservierung von Kapazität finden Sie unter Übersicht über die Erstellung von Compute-Instanzen und Clustern. Wenn Sie Cluster Toolkit zum Bereitstellen Ihrer Cluster verwenden, wird das Bereitstellungsmodell durch den Cluster-Blueprint festgelegt.
Flex-Start-Bereitstellungsmodell
Mit dem Bereitstellungsmodell „Flex-Start“ können Sie eigenständige Flex-Start-VMs erstellen oder Flex-Start-VMs zu einer verwalteten Instanzgruppe (MIG) hinzufügen, wenn die angeforderte Kapazität verfügbar ist. Wenn Sie einer MIG mithilfe von Anfragen zur Größenanpassung Flex-Start-VMs hinzufügen, erstellt die MIG die Instanzen alle auf einmal. So vermeiden Sie unnötige Kosten für Teilkapazitäten, die Compute Engine möglicherweise bereitstellt, während Sie auf die volle Kapazität warten, die zum Starten Ihrer Arbeitslast erforderlich ist. Das Flex-Start-Bereitstellungsmodell stellt Ressourcen aus einem sicheren Kapazitätspool bereit. Dadurch erhöhen sich Ihre Chancen, stark nachgefragte Ressourcen wie GPUs zu erhalten.
So geben Sie das Bereitstellungsmodell „Flex-Start“ an, wenn Sie eine eigenständige Instanz oder eine Instanzvorlage für eine verwaltete Instanzgruppe erstellen:
Wählen Sie in der Google Cloud Console in der Liste Bereitstellungsmodell die Option Flex-Start aus.
Fügen Sie in der gcloud CLI das Flag
--provisioning-model=FLEX_STARTin den Befehl ein.Fügen Sie in der Compute Engine API das Feld
"provisioningModel": "FLEX_START"in den Anfragetext ein.
Weitere Informationen zum Erstellen von Instanzen oder Clustern, die das Bereitstellungsmodell „Flex-Start“ verwenden, finden Sie in den folgenden Dokumenten:
Slurm-Cluster erstellen:
GKE-Cluster erstellen:
Spot-Bereitstellungsmodell
Mit dem Spot-Bereitstellungsmodell können Sie je nach Verfügbarkeit stark rabattierte Compute-Instanzen erstellen. Compute Engine kann die erstellten Instanzen jedoch jederzeit beenden oder löschen, um Kapazitäten zurückzugewinnen. Dieser Vorgang wird als Preemption bezeichnet.
So geben Sie das Spot-Bereitstellungsmodell beim Erstellen von Instanzen oder MIGs an:
Wählen Sie in der Google Cloud Console in der Liste Bereitstellungsmodell die Option Spot aus.
Fügen Sie in der gcloud CLI das Flag
--provisioning-model=SPOTin den Befehl ein.Fügen Sie in der Compute Engine API das Feld
"provisioningModel": "SPOT"in den Anfragetext ein.
Weitere Informationen zum Festlegen dieser Parameter beim Erstellen von Instanzen oder MIGs finden Sie unter Übersicht über das Erstellen von Compute-Instanzen und Clustern.
Cluster-Bereitstellungstools
Cluster Toolkit ist ein Open-Source-Bereitstellungstool, das für die Erstellung von GPU-beschleunigten Clustern empfohlen wird. Mit dem Cluster Toolkit können sowohl GKE-Cluster (Google Kubernetes Engine) als auch Slurm-Cluster bereitgestellt werden.
Alternativ können Sie Ihre Gruppen von Compute-Instanzen mit einer der folgenden Methoden bereitstellen und dann nach Bedarf Ihren eigenen Arbeitslastplaner einbinden:
Bereitstellungstypen für Reservierungsblöcke
Wenn Sie beim Erstellen von geclusterten GPU-Compute-Instanzen oder Clustern das reservierungsgebundene Bereitstellungsmodell verwenden, werden die erhaltenen Maschinen automatisch in Blöcken von dicht zugewiesenen Hosts bereitgestellt. Diese Bereitstellung bietet folgende Vorteile:
Nicht blockierendes Netzwerk für konsistente Instanzverbindungen mit hoher Bandbreite und niedriger Latenz durch die Verwendung der dynamischen ML-Netzwerkstruktur von Google.
Zugriff auf die Netzwerktopologie, die eine hierarchische Ansicht der relativen Nähe zwischen Instanzen bietet. Diese Funktion ist für erweiterte Anwendungsfälle der Jobplanung nützlich.
Feingranulare, topologiesensitive Platzierung bei Verwendung von Orchestratoren.
Detaillierte Nutzerkontrolle über Wartungspläne, um die Jobplanung und Verfügbarkeit zu maximieren und Ausfallzeiten zu minimieren.
Betriebsmodus der Reservierung
Wenn Sie das reservierungsgebundene Bereitstellungsmodell verwenden, bestimmt der von Ihnen reservierte Maschinentyp den Reservierungsbetriebsmodus für Ihre reservierte Kapazität. In jedem Modus wird festgelegt, wie auf Hostfehler oder fehlerhafte Hostberichte reagiert werden soll. Außerdem wird die Sichtbarkeit und Kontrolle über die Infrastruktur der Reservierung definiert.
In jedem Betriebsmodus für Reservierungen wird Folgendes definiert:
Wer die Wiederherstellung verwaltet: Sie oder Google Cloud.
Welche Kapazität Sie für die Wiederherstellung verwenden: Nur Ihre reservierte Kapazität oder Kapazität innerhalb oder außerhalb Ihrer Reservierungen.
Ihre Ebene der Platzierungssteuerung: ob Sie Wartungen vor der geplanten Zeit für bestimmte Reservierungsunterblöcke aufrufen und starten können, um eine detaillierte Steuerung zu ermöglichen.
Wenn Sie Kapazität zum Erstellen von Compute-Instanzen oder -Clustern reservieren, müssen Sie einen der folgenden Betriebsmodi für die Reservierung auswählen: Verwalteter Modus oder Modus für die gesamte Kapazität.
Verwalteter Modus
Im verwalteten Modus verwaltet Google Cloud automatisch den Wartungs- und Wiederherstellungsprozess Ihrer Compute-Instanzen nach Hostfehlern oder fehlerhaften Hostberichten. Dieser Ansatz ist ideal, wenn Ihre Arbeitslast eine hohe Stabilität erfordert und Sie einen automatisierten Prozess bevorzugen, um Ausfallzeiten zu minimieren.
Der verwaltete Modus hat die folgenden Merkmale:
Nur reservierte Kapazität für die Wiederherstellung verwenden: Compute Engine verwendet nur Ihre reservierte Kapazität, um Instanzen neu zu starten. Wenn in Ihren Reservierungen keine Kapazität verfügbar ist, startet Compute Engine Instanzen erst neu, wenn Sie mehr Kapazität erhalten haben.
Automatische Instanzneustarts: Google Cloud übernimmt den gesamten Wiederherstellungsprozess für eine Instanz. Wenn eine Hostwartung erforderlich ist, migriert Compute Engine Ihre Instanzen automatisch auf andere verfügbare Maschinen innerhalb Ihrer Reservierung und startet die Instanzen neu.
Blockverwaltung und Sichtbarkeit: Sie können die Topologie, den Zustand und den Wartungsstatus einzelner Reservierungen und Reservierungsblöcke aufrufen. Sie können auch Wartungsbenachrichtigungen erhalten und die Wartung für diese Ressourcen optional vor dem geplanten Wartungszeitpunkt starten.
Mögliche API-Ratenbegrenzungen: Aufrufe der API zum Melden fehlerhafter Hosts können pro Reservierung ratenbegrenzt sein.
Modus „Gesamte Kapazität“
Im Modus „Gesamte Kapazität“ sind Sie für die Verwaltung des Wiederherstellungsprozesses einer Compute-Instanz verantwortlich. Nach Hostfehlern oder fehlerhaften Hostberichten müssen Sie die Wartung manuell starten. Im Gegensatz zum verwalteten Modus können Sie auch Wartungsarbeiten für Ihre Reservierungsunterblöcke aufrufen und starten. Diese Funktionen bieten Ihnen die vollständige, detaillierte Kontrolle über den Wartungs- und Wiederherstellungsprozess für Ihre Instanzen.
Der Modus „Gesamte Kapazität“ hat die folgenden Merkmale:
Reservierte und nicht reservierte Kapazität für die Wiederherstellung verwenden: Sie können Ihre reservierten Ressourcen sowie alle Ressourcen, die außerhalb Ihrer Reservierung verfügbar sind, verwenden, um eine Instanz zu migrieren und neu zu starten, wenn der Host ausfällt.
Manuelle Instanzneustarts: Sie sind für den Wiederherstellungsprozess einer Instanz verantwortlich. Wenn eine Hostwartung aufgrund eines Hostfehlers oder eines fehlerhaften Hostberichts erforderlich ist, beendet Compute Engine Ihre Instanz. Sie können die Instanz erst nach Abschluss der Wartung neu starten.
Verwaltung und Sichtbarkeit von Blöcken und Unterblöcken: Sie können die Topologie, den Zustand und den Wartungsstatus einzelner Reservierungen, Reservierungsblöcke und Reservierungsunterblöcke aufrufen. Sie können auch Wartungsbenachrichtigungen erhalten und die Wartung für diese Ressourcen optional vor der geplanten Wartungszeit starten.
Keine API-Ratenbegrenzungen: Es gibt keine Ratenbegrenzungen, wenn Sie die API zum Melden fehlerhafter Hosts aufrufen.
Arten der Wartungsplanung
Wenn Sie das reservierungsgebundene Bereitstellungsmodell verwenden, bietet Cluster Director Optionen zum Planen der Hostwartung für die laufenden Compute-Instanzen in Ihrem Cluster. Wenn Sie Kapazität reservieren, können Sie angeben, ob Instanzen gruppiert und synchronisierte Wartungspläne verwendet werden sollen (gruppiert) oder ob die Instanzen lose gekoppelt sein und unabhängige Wartungspläne haben sollen (unabhängig).
Gruppierte Wartungsplanung
Mit dem Typ „Gruppierte Wartungsplanung“ können Sie alle Instanzen, auf denen dieselbe Arbeitslast ausgeführt wird, auf dieselbe geplante Wartungshäufigkeit ausrichten, unabhängig davon, wann die Compute Engine eine Compute-Instanz bereitstellt. Durch diese eng gekoppelte Wartung können Sie die Leistung Ihres Jobs optimieren, da Sie die vollständige Kontrolle über Ihre genutzte und ungenutzte Kapazität haben.
Ein Typ für die Planung von Gruppenwartungen ist in den folgenden Fällen nützlich:
In Ihrer Umgebung wird ein Job-Scheduler wie Slurm oder GKE verwendet.
Sie möchten Trainings- oder andere hochgradig parallelisierte Computing-Arbeitslasten ausführen.
Unabhängige Wartungsplanung
Bei diesem Typ der unabhängigen Wartungsplanung erhalten Instanzen unterschiedliche Wartungszeitpläne. Diese Konfiguration ist ideal, wenn Sie Inferenzen oder Training in begrenztem Umfang ausführen möchten, bei denen Arbeitslasten effizienter ausgeführt werden, wenn sie separate Wartungspläne haben.