KI-optimierten Slurm-Cluster mit einem A4-Maschinentyp erstellen
Auf dieser Seite wird beschrieben, wie Sie mit der gcloud CLI und dem Cluster Toolkit schnell einen KI-optimierten Slurm-Cluster mit A4-Maschinentypen erstellen und bereitstellen, die für Beschleuniger optimiert sind.
Beschleunigungsoptimierte A4-Maschinentypen sind mit NVIDIA B200-GPUs ausgestattet und wurden speziell für intensive KI-Berechnungen entwickelt, damit Ihr Slurm-Cluster umfangreiches Modelltraining und Inferenz effizient ausführen kann. Weitere Informationen zu beschleunigeroptimierten A4-Maschinentypen auf Google Cloudfinden Sie unter GPU-Maschinentypen.
Alternativ können Sie mit Cluster Director einen A4-basierten Slurm-Cluster erstellen. Cluster Director ist ein verwalteter Dienst, der die Clusterbereitstellung vereinfacht und automatisiert und so den operativen Aufwand reduziert. Weitere Informationen finden Sie unter KI-optimierten Cluster auf Grundlage einer Vorlage erstellen.
Eine detaillierte Anleitung dazu finden Sie direkt in der Google Cloud Console. Klicken Sie dazu einfach auf Anleitung:
Anleitungsübersicht
In dieser Anleitung wird beschrieben, wie Sie einen KI-optimierten Slurm-Cluster mit A4-beschleunigungsoptimierten Maschinentypen einrichten. Dazu richten Sie einen Cluster mit Compute Engine-VMs ein, erstellen einen Cloud Storage-Bucket zum Speichern der erforderlichen Terraform-Module und richten eine Filestore-Instanz zum Bereitstellen Ihres Slurm-Clusters ein. Für die Schritte in dieser Anleitung gehen Sie so vor:
- Richten Sie Ihr Google Cloud -Projekt mit den erforderlichen Berechtigungen und Umgebungsvariablen ein.
- Richten Sie einen Cloud Storage-Bucket ein.
- Cluster Toolkit einrichten
- Wechseln Sie in das Cluster Toolkit-Verzeichnis.
- Erstellen Sie eine YAML-Datei für die Slurm-Bereitstellung.
- Stellen Sie einen Slurm-Cluster mithilfe eines Blueprints bereit.
- Stellen Sie eine Verbindung zum Slurm-Cluster her.
Hinweise
- Reservieren Sie einen Kapazitätsblock für eine
a4-highgpu-8g-Maschine. Diese Maschinen sind für diese Anleitung erforderlich. Prüfen Sie, ob Sie genügend Filestore-Kontingent haben, um den Slurm-Cluster bereitzustellen. Sie benötigen mindestens 10.240 GiB an zonaler Kapazität (auch als SSD-Kapazität mit hoher Skalierung bezeichnet).
Wenn Sie Ihr Filestore-Kontingent prüfen möchten, rufen Sie in der Google Cloud Console Kontingente und Systemlimits auf und filtern Sie die Tabelle so, dass nur Filestore-Ressourcen angezeigt werden.
- Eine detaillierte Anleitung zum Prüfen von Filestore-Kontingenten finden Sie unter API-spezifische Kontingente aufrufen.
- Wenn Sie nicht genügend Kontingent haben, fordern Sie eine Kontingenterhöhung an.
Achten Sie darauf, dass die Abrechnung für Ihr Projekt in Google Cloud aktiviert ist.
Aktivieren Sie die Compute Engine API, die Filestore API, die Cloud Storage API, die Service Usage API und die Cloud Resource Manager API:
Erforderliche Rollen
Damit das Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen zum Bereitstellen eines Slurm-Clusters hat, bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto die folgenden IAM-Rollen zuzuweisen:
-
Storage Object Viewer (
roles/storage.objectViewer) für Ihr Projekt -
Compute-Instanzadministrator (Version 1) (
roles/compute.instanceAdmin.v1) für Ihr Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto selbst
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann dem Compute Engine-Standarddienstkonto möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Kosten
Die Kosten für die Ausführung dieser Anleitung variieren je nach Abschnitt, z. B. für die Einrichtung der Anleitung oder die Ausführung von Jobs. Sie können die Kosten mit dem Preisrechner berechnen.
Verwenden Sie die folgenden Spezifikationen, um die Kosten für die Einrichtung dieser Anleitung zu schätzen:
- Filestore (Standard-)Kapazität pro Region:10.240 GiB.
- Nichtflüchtiger Standardspeicher: 50 GB
pd-standardfür den Slurm-Anmeldeknoten. - Leistungsstarke (SSD) nichtflüchtige Speicher: 50 GB
pd-ssdfür den Slurm-Controller. - VM-Instanz: 1
a4-highgpu-8g.
Cloud Shell starten
In dieser Anleitung verwenden Sie Cloud Shell, eine Shell-Umgebung für die Verwaltung von Ressourcen, die in Google Cloudgehostet werden.
Die Google Cloud CLI ist in Cloud Shell vorinstalliert. Die gcloud CLI bietet die primäre Befehlszeile für Google Cloud. Cloud Shell aufrufen
Zur Google Cloud Console.
Klicken Sie in der oberen rechten Ecke der Console auf die Schaltfläche Cloud Shell aktivieren:

Eine Cloud Shell-Sitzung wird gestartet und eine Eingabeaufforderung wird angezeigt.
In dieser Shell führen Sie gcloud- und Cluster Toolkit-Befehle aus.
Umgebungsvariablen festlegen
Legen Sie in Cloud Shell die folgenden Umgebungsvariablen fest, die Sie für den Rest der Anleitung verwenden. Mit diesen Umgebungsvariablen werden Platzhalterwerte für die folgenden Aufgaben festgelegt:
Konfiguriert Ihr Projekt mit den relevanten Werten für den Zugriff auf Ihre reservierte
a4-highgpu-8g-Maschine.Richtet einen Cloud Storage-Bucket zum Speichern von Cluster Toolkit-Modulen ein.
Variablen für die Reservierungskapazität
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
Ersetzen Sie Folgendes:
A4_RESERVATION_PROJECT_ID: die Google CloudProjekt-ID, für die der Reservierungsblock für den A4-Maschinentyp gewährt wurde.A4_RESERVATION_NAME: Der Name der GPU-Reservierung, die in Ihrem Projekt verwendet wird. Beispiel:a4high-exr.A4_DEPLOYMENT_NAME: Eindeutiger Name für die Slurm-Clusterbereitstellung. Beispiel:my-slurm-cluster-deployment.A4_REGION: Die Region, in der der reservierte Reservierungsblock für den A4-Maschinentyp ausgeführt wird. Beispiel:us-central1.A4_ZONE: Die Zone, die die reservierten Maschinen enthält. Dieser String muss sowohl die Region als auch die Zone enthalten. Beispiel:us-central1-aA4_DEPLOYMENT_FILE_NAME: Ein eindeutiger Name für die YAML-Datei des Slurm-Blueprints. Wenn Sie dieses Tutorial mehrmals durchlaufen, wählen Sie jedes Mal einen eindeutigen Bereitstellungsnamen.
Variablen für die Speicherkapazität
Erstellen Sie die Umgebungsvariablen für Ihren Cloud Storage-Bucket.
Cluster Toolkit verwendet Blueprints, um Cluster von VMs zu definieren und bereitzustellen. In einem Blueprint werden ein oder mehrere Terraform-Module zum Bereitstellen der Cloud-Infrastruktur definiert. In diesem Bucket werden diese Blueprints gespeichert.
export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION
Ersetzen Sie Folgendes:
GOOGLE_CLOUD_BUCKET_NAME: Der Name, den Sie für Ihren Cloud Storage-Bucket verwenden möchten und der den Anforderungen für Bucket-Namen entspricht.GOOGLE_CLOUD_BUCKET_LOCATION: Beliebige Google Cloud-Region, in der der Bucket gehostet werden soll. Beispiel:us-central1
Zu Ihrem für A4 genehmigten Projekt wechseln
Führen Sie den folgenden Befehl aus, um sicherzugehen, dass Sie sich im Google Cloud-Projekt befinden, das den genehmigten Reservierungsblock für den A4-Maschinentyp hat.
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Cloud Storage-Bucket erstellen
Erstellen Sie den Bucket zum Speichern Ihrer Terraform-Module. Führen Sie in Cloud Shell mit Ihren Umgebungsvariablen den folgenden Befehl aus:
Als Best Practice für die Arbeit mit Terraform empfiehlt es sich, den Status remote in einer versionsfähigen Datei zu speichern. Auf Google Cloudkönnen Sie einen Cloud Storage-Bucket mit aktivierter Versionierung erstellen.
gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${GOOGLE_CLOUD_BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning
Cluster Toolkit einrichten
Wenn Sie einen Slurm-Cluster in einem Google Cloud -Projekt erstellen möchten, können Sie das Cluster Toolkit verwenden, um den Cluster bereitzustellen und zu provisionieren. Cluster Toolkit ist eine Open-Source-Software von Google Cloud, mit der sich die Bereitstellung von Arbeitslasten in Google Cloudvereinfachen lässt.
Gehen Sie so vor, um Cluster Toolkit einzurichten.
GitHub-Repository für Cluster-Toolkit klonen
Klonen Sie in Cloud Shell das GitHub-Repository:
git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.git
Rufen Sie das Haupt-Arbeitsverzeichnis auf:
cd cluster-toolkit/
Cluster-Toolkit-Binärprogramm erstellen
Erstellen Sie in Cloud Shell das Binärprogramm für das Cluster Toolkit aus der Quelle. Führen Sie dazu den folgenden Befehl aus:
make
Führen Sie den folgenden Befehl aus, um den Build zu prüfen:
Wenn Sie einen Slurm-Cluster mit beschleunigungsoptimierten A4-Maschinen bereitstellen möchten, müssen Sie Version
v1.51.1oder höher des Cluster Toolkits verwenden../gcluster --version
Nachdem Sie das Binärprogramm erstellt haben, können Sie Cluster bereitstellen, um Ihre Jobs oder Arbeitslasten auszuführen.
Bereitstellungsdatei erstellen
Erstellen Sie im Cluster Toolkit-Verzeichnis die YAML-Datei für die Slurm-Bereitstellung.
nano ${A4_DEPLOYMENT_FILE_NAME}.yamlFügen Sie den folgenden Inhalt in die YAML-Datei ein.
--- terraform_backend_defaults: type: gcs configuration: bucket: GOOGLE_CLOUD_BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1Drücken Sie zum Speichern und Beenden der Datei Strg + O > Eingabetaste > Strg + X.
Slurm-Cluster bereitstellen
Führen Sie den folgenden Bereitstellungsbefehl aus, um den Slurm-Cluster bereitzustellen. Mit diesem Befehl wird der Slurm-Cluster mit der Blueprint-Datei examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml bereitgestellt.
Starten Sie die Clustererstellung in Cloud Shell.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
Mit dem Cluster verbinden
Stellen Sie nach der Bereitstellung eine Verbindung zur Google Cloud Console her, um Ihren Cluster aufzurufen.
Rufen Sie in derGoogle Cloud Console die Seite Compute Engine > VM-Instanzen auf.
Suchen Sie den Anmeldeknoten (
a4high-login-001oder ähnlich).Klicken Sie auf SSH, um eine Verbindung herzustellen.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Slurm-Cluster löschen
Wir empfehlen, Ressourcen zu bereinigen, wenn sie nicht mehr benötigt werden.
Standardmäßig wird durch die A4 High-Blaupausen der Löschschutz für die Filestore-Instanz aktiviert. Wenn Sie den Slurm-Cluster löschen möchten, müssen Sie den Löschschutz deaktivieren, bevor Sie den Löschbefehl ausführen.
Löschschutz deaktivieren
Verwenden Sie einen Befehl ähnlich dem folgenden, um den Löschschutz beim Aktualisieren einer Instanz zu deaktivieren:
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, die Sie bearbeiten möchten. Beispiel: my-genomics-instance.
Sie können INSTANCE_NAME mit dem Befehl gcloud filestore instances
list abrufen. Mit diesem Befehl werden alle Filestore-Instanzen in Ihrem aktuellen Google Cloud -Projekt aufgelistet, einschließlich ihrer Namen, Standorte (Zonen), Stufen, Kapazität und Status.
Suchen Sie nach dem Ausführen des Befehls die Filestore-Instanz, die mit der a4-highgpu-8g-Maschine in dieser Anleitung übereinstimmt.
Slurm-Cluster löschen
Bevor Sie den Löschbefehl ausführen, wechseln Sie zum Stammverzeichnis des Cluster Toolkit-Verzeichnisses. Standardmäßig befindet sich
DEPLOYMENT_FOLDERim Stammverzeichnis des Cluster Toolkit-Verzeichnisses.Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Ersetzen Sie
DEPLOYMENT_FOLDERdurch den Namen des Bereitstellungsordners. Er entspricht in der RegelDEPLOYMENT_NAME.
Wenn das Löschen abgeschlossen ist, wird eine Meldung wie diese angezeigt:
Destroy complete! Resources: xx destroyed.
Storage-Bucket löschen
Löschen Sie den Cloud Storage-Bucket, nachdem Sie sich vergewissert haben, dass der vorherige Befehl ohne Fehler beendet wurde:
gcloud storage buckets delete gs://${GOOGLE_CLOUD_BUCKET_NAME}
Fehlerbehebung
Fehler: Cloud Shell kann den Cluster nicht bereitstellen, da kein Speicherplatz mehr vorhanden ist.
Dieser Fehler kann auftreten, wenn Sie Cloud Shell häufig verwenden und der Speicherplatz nicht mehr ausreicht.
Informationen zur Behebung dieses Problems finden Sie unter Cloud Shell deaktivieren oder zurücksetzen.
Fehler: Der Cluster- oder Blueprint-Name ist bereits vorhanden.
Dieser Fehler kann auftreten, wenn Sie ein Projekt verwenden, in dem die in dieser Anleitung verwendeten Dateinamen bereits verwendet wurden. Das ist beispielsweise der Fall, wenn eine andere Person in Ihrer Organisation dieses Tutorial vollständig durchlaufen hat.
Um dieses Problem zu beheben, führen Sie das Tutorial noch einmal durch und wählen Sie einen eindeutigen Namen für die Bereitstellungsdatei aus. Führen Sie dann den Befehl Slurm-Cluster bereitstellen mit der neuen Bereitstellungsdatei noch einmal aus.
Nächste Schritte
- Erweiterte Slurm-Aufgaben:
- So verwalten Sie Hostereignisse:
- Topologie einer Compute-Instanz ansehen
- Compute-Instanzen in Ihrem Slurm-Cluster überwachen
- Fehlerhaften Host melden