Auf dieser Seite wird beschrieben, wie Sie einen Slurm-Cluster für High Performance Computing (HPC) erstellen, der Remote Direct Memory Access (RDMA) mit H4D-VMs mit erweiterten Clustermanagementfunktionen verwendet. Sie verwenden die gcloud CLI und das Cluster Toolkit, um den Cluster zu konfigurieren.
Die H4D-Maschinenserie wurde speziell für die Anforderungen anspruchsvoller HPC-Arbeitslasten entwickelt. H4D bietet Instanzen mit verbesserter Arbeitslastskalierbarkeit durch Cloud RDMA-Netzwerke mit einem Durchsatz von 200 Gbit/s. Weitere Informationen zu computing-optimierten H4D-Maschinentypen auf Google Cloudfinden Sie unter H4D-Maschinenserie.
Hinweise
Führen Sie vor dem Erstellen eines Slurm-Clusters die folgenden Schritte aus, falls Sie dies noch nicht getan haben:
- Option für die Nutzung auswählen: Die von Ihnen ausgewählte Option bestimmt, wie Sie vCPU-Ressourcen erhalten und verwenden möchten.
- Kapazität abrufen: Rufen Sie die Kapazität für die ausgewählte Verbrauchsoption ab.
- Prüfen Sie,ob Sie genügend Filestore-Kontingent haben: Sie benötigen mindestens 10.240 GiB an zonaler Kapazität (auch als SSD-Kapazität mit hoher Skalierung bezeichnet).
- Informationen zum Prüfen von Kontingenten finden Sie unter API-spezifische Kontingente aufrufen.
- Wenn Sie nicht genügend Kontingent haben, fordern Sie eine Kontingenterhöhung an.
- Cluster Toolkit installieren: Zum Bereitstellen von Slurm-Clustern müssen Sie Cluster Toolkit-Version
v1.62.0oder höher verwenden.Informationen zum Installieren des Cluster-Toolkits finden Sie unter Cluster Toolkit einrichten.
Weitere Informationen finden Sie unter Nutzungsoption auswählen und Kapazität erhalten.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Storage-Bucket einrichten
Cluster-Blueprints verwenden Terraform-Module, um die Cloud-Infrastruktur bereitzustellen. 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.
Führen Sie die folgenden Befehle aus, um diesen Bucket zu erstellen und die Versionierung über die Befehlszeile zu aktivieren:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
Ersetzen Sie Folgendes:
BUCKET_NAME: Ein Name für Ihren Cloud Storage-Bucket, der den Anforderungen für Bucket-Namen entspricht.PROJECT_ID: Ihre Projekt-ID.BUCKET_REGION: ein beliebiger verfügbarer Standort.
Cluster Toolkit-Verzeichnis öffnen
Prüfen Sie mit dem folgenden Befehl, ob Sie sich im Cluster Toolkit-Verzeichnis befinden:
cd cluster-toolkit
Für die Bereitstellung dieses Clusters ist Cluster Toolkit v1.70.0 oder höher erforderlich. Führen Sie den folgenden Befehl aus, um Ihre Version zu prüfen:
./gcluster --version
Bereitstellungsdatei erstellen
Erstellen Sie eine Bereitstellungsdatei, um den Cloud Storage-Bucket anzugeben, Namen für Ihr Netzwerk und Subnetzwerk festzulegen und Bereitstellungsvariablen wie Projekt-ID, Region und Zone festzulegen.
So erstellen Sie eine Bereitstellungsdatei für den Maschinentyp H4D:
Die Parameter, die Sie Ihrer Bereitstellungsdatei hinzufügen müssen, hängen von der Verbrauchsoption ab, die Sie für Ihre Bereitstellung verwenden. Wählen Sie den Tab aus, der der gewünschten Option für die Nutzung entspricht.
Reservierungsgebunden
Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_reservation_name: RESERVATION_NAME
Ersetzen Sie Folgendes:
BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, müssen Sie für jeden einen eindeutigen Namen auswählen.PROJECT_ID: Ihre Projekt-ID.REGION: Die Region mit den reservierten Maschinen.ZONE: die Zone, in der Sie den Cluster bereitstellen möchten. Wenn Sie eine reservierungsbasierte Verbrauchsoption verwenden, wurden die Informationen zu Region und Zone von Ihrem Kontoteam bereitgestellt, als die Kapazität bereitgestellt wurde.NUMBER_OF_VMS: die Anzahl der VMs, die Sie für den Cluster benötigen.RESERVATION_NAME: Der Name Ihrer Reservierung.
Flex-Start
Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_dws_flex_enabled: true
Ersetzen Sie Folgendes:
BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, müssen Sie für jeden einen eindeutigen Namen auswählen.PROJECT_ID: Ihre Projekt-ID.REGION: die Region, in der Sie den Cluster bereitstellen möchten.ZONE: die Zone, in der Sie den Cluster bereitstellen möchten.NUMBER_OF_VMS: die Anzahl der VMs, die Sie für den Cluster benötigen.
Bei dieser Bereitstellung werden statische Compute-Knoten bereitgestellt. Das bedeutet, dass der Cluster immer eine bestimmte Anzahl von Knoten hat. Wenn Sie stattdessen Autoscaling für Ihren Cluster aktivieren möchten, verwenden Sie die Datei examples/h4d/hpc-slurm-h4d.yaml und bearbeiten Sie die Werte von node_count_static und node_count_dynamic_max entsprechend:
node_count_static: 0
node_count_dynamic_max: $(vars.h4d_cluster_size)
Spot
Erstellen Sie mit einem Texteditor eine YAML-Datei mit dem Namen h4d-slurm-deployment.yaml und fügen Sie den folgenden Inhalt hinzu.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
h4d_cluster_size: NUMBER_OF_VMS
h4d_enable_spot_vm: true
Ersetzen Sie Folgendes:
BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets, den Sie im vorherigen Abschnitt erstellt haben.DEPLOYMENT_NAME: Ein Name für Ihre Bereitstellung. Wenn Sie mehrere Cluster erstellen, müssen Sie für jeden einen eindeutigen Namen auswählen.PROJECT_ID: Ihre Projekt-ID.REGION: die Region, in der Sie den Cluster bereitstellen möchten.ZONE: die Zone, in der Sie den Cluster bereitstellen möchten.NUMBER_OF_VMS: die Anzahl der VMs, die Sie für den Cluster benötigen.
H4D-Slurm-Cluster bereitstellen
Das Cluster Toolkit stellt den Cluster auf Grundlage der Bereitstellungsdatei, die Sie im vorherigen Schritt erstellt haben, und des Standard-Cluster-Blueprints bereit. Weitere Informationen zur Software, die durch das Blueprint installiert wird, finden Sie hier.
Mit Cloud Shell können Sie den Cluster über das Verzeichnis, in dem Sie das Cluster Toolkit installiert und die Bereitstellungsdatei erstellt haben, mit dem folgenden Befehl bereitstellen. Dabei wird die H4D-Slurm-Blueprint-Datei verwendet. Dieser Schritt dauert etwa 20 bis 30 Minuten.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve
Verbindung zum Slurm-Cluster herstellen
Um auf Ihren Cluster zuzugreifen, müssen Sie sich am Slurm-Anmeldeknoten anmelden. Zum Anmelden können Sie entweder die Google Cloud -Konsole oder die Google Cloud CLI verwenden.
Console
Rufen Sie die Seite Compute Engine > VM-Instanzen auf.
Suchen Sie den Anmeldeknoten. Der Name sollte dem Muster
DEPLOYMENT_NAME+login-001entsprechen.Klicken Sie in der Spalte Verbinden des Anmeldeknotens auf SSH.
gcloud
So stellen Sie eine Verbindung zum Anmeldeknoten her:
Ermitteln Sie den Anmeldeknoten mit dem Befehl
gcloud compute instances list.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"Wenn in der Ausgabe mehrere Slurm-Cluster aufgeführt sind, können Sie Ihren Anmeldenode anhand des von Ihnen angegebenen
DEPLOYMENT_NAMEidentifizieren.Verwenden Sie den Befehl
gcloud compute ssh, um eine Verbindung zum Anmeldeknoten herzustellen.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapErsetzen Sie Folgendes:
ZONE: die Zone, in der sich die VMs für Ihren Cluster befinden.LOGIN_NODE: Der Name des Anmeldeknotens, den Sie im vorherigen Schritt ermittelt haben.
Slurm-Cluster neu bereitstellen
Wenn Sie die Anzahl der Rechenknoten erhöhen oder Ihrem Cluster neue Partitionen hinzufügen müssen, müssen Sie möglicherweise die Konfigurationen für Ihren Slurm-Cluster aktualisieren, indem Sie ihn neu bereitstellen.
So stellen Sie den Cluster mit einem vorhandenen Image neu bereit:
Führen Sie dazu diesen Befehl aus:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
Dieser Befehl ist nur für erneute Bereitstellungen vorgesehen, bei denen bereits ein Image vorhanden ist. Er stellt nur den Cluster und seine Infrastruktur neu bereit.
Slurm-Cluster löschen
So entfernen Sie den Slurm-Cluster und die darin enthaltenen Instanzen:
Trennen Sie die Verbindung zum Cluster, falls noch nicht geschehen.
Bevor Sie den Löschbefehl ausführen, wechseln Sie zum Stammverzeichnis des Cluster Toolkit-Verzeichnisses. Standardmäßig befindet sich DEPLOYMENT_FOLDER im 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 Folgendes:
DEPLOYMENT_FOLDER: Der Name des Bereitstellungsordners. Er entspricht in der Regel DEPLOYMENT_NAME.
Wenn das Entfernen des Clusters abgeschlossen ist, sollte eine Meldung wie die folgende angezeigt werden:
Destroy complete! Resources: xx destroyed.
Informationen zum sauberen Zerstören der Infrastruktur und erweiterte manuelle Bereitstellungsanleitungen finden Sie im Bereitstellungsordner im Stammverzeichnis des Cluster Toolkit-Verzeichnisses: DEPLOYMENT_FOLDER/instructions.txt.
Nächste Schritte
- Reservierungsnutzung prüfen
- VM-Topologie ansehen
- Hostereignisse für VMs verwalten
- Hostereignisse für mehrere Reservierungen verwalten
- VMs in Ihrem Slurm-Cluster überwachen
- Fehlerhaften Host melden