Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anpassen von SageMaker HyperPod Clustern mithilfe von Lifecycle-Skripten
SageMaker HyperPod bietet up-and-running Always-Compute-Cluster, die in hohem Maße anpassbar sind, da Sie Lebenszyklus-Skripte schreiben können, die angeben, SageMaker HyperPod wie die Cluster-Ressourcen eingerichtet werden. Bei den folgenden Themen handelt es sich um bewährte Methoden für die Vorbereitung von Lebenszyklusskripten für die Einrichtung von SageMaker HyperPod Clustern mit Open-Source-Workload-Manager-Tools.
In den folgenden Themen werden ausführliche bewährte Methoden für die Vorbereitung von Lifecycle-Skripten für die Einrichtung von Slurm-Konfigurationen erörtert. SageMaker HyperPod
Allgemeine Übersicht
Das folgende Verfahren ist der Hauptablauf der Bereitstellung eines HyperPod Clusters und seiner Einrichtung mit Slurm. Die Schritte werden dabei von unten nach oben angeordnet.
-
Planen Sie, wie Sie Slurm-Knoten auf einem Cluster erstellen möchten. HyperPod Wenn Sie beispielsweise zwei Slurm-Knoten konfigurieren möchten, müssen Sie zwei Instanzgruppen in einem HyperPod Cluster einrichten.
-
Bereiten Sie die Slurm-Konfiguration vor. Wählen Sie einen der folgenden Ansätze:
-
Option A: API-gesteuerte Konfiguration (empfohlen) — Definieren Sie Slurm-Knotentypen und -partitionen direkt in der
CreateClusterAPI-Payload und verwenden Sie sieSlurmConfiginnerhalb jeder Instanzgruppe. Mit diesem Ansatz:-
Es wird keine
provisioning_parameters.jsonDatei benötigt -
Die Slurm-Topologie ist in der API-Nutzlast zusammen mit den Definitionen der Instanzgruppen definiert
-
FSx Dateisysteme werden konfiguriert über per-instance-group
InstanceStorageConfigs -
Die Konfigurationsstrategie wird gesteuert über
Orchestrator.Slurm.SlurmConfigStrategy
Beispiel
SlurmConfigin einer Instanzgruppe:{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] } } -
-
Option B: Legacy-Konfiguration — Bereiten Sie eine
provisioning_parameters.jsonDatei vor, bei der es sich um eineKonfigurationsformular für provisioning_parameters.json.provisioning_parameters.jsonsollte Informationen zur Konfiguration des Slurm-Knotens enthalten, der HyperPod auf dem Cluster bereitgestellt werden soll. Dies sollte das Design der Slurm-Knotens aus Schritt 1 widerspiegeln.
-
-
Bereiten Sie eine Reihe von Lifecycle-Skripten vor, auf denen Slurm eingerichtet werden HyperPod soll, um Softwarepakete zu installieren und eine Umgebung im Cluster für Ihren Anwendungsfall einzurichten. Sie sollten die Lebenszyklusskripte so strukturieren, dass sie gemeinsam in einem zentralen Python-Skript (
lifecycle_script.py) ausgeführt werden, und ein Einstiegspunkt-Shell-Skript (on_create.sh) schreiben, um das Python-Skript auszuführen. Das Entrypoint-Shell-Skript müssen Sie später in Schritt 5 für eine Anfrage zur HyperPod Clustererstellung bereitstellen.Beachten Sie außerdem, dass Sie beim Schreiben der Skripts davon ausgehen sollten
resource_config.json, dass sie HyperPod bei der Clustererstellung generiert werden.resource_config.jsonenthält HyperPod Cluster-Ressourceninformationen wie IP-Adressen, Instanztypen und, und ist genau das ARNs, was Sie für die Konfiguration von Slurm verwenden müssen. -
Sammeln Sie alle Dateien aus den vorherigen Schritten in einem Ordner. Die Ordnerstruktur hängt vom Konfigurationsansatz ab, den Sie in Schritt 2 ausgewählt haben.
Wenn Sie Option A (API-gesteuerte Konfiguration) ausgewählt haben:
Ihr Ordner benötigt nur Lebenszyklusskripts für benutzerdefinierte Einrichtungsaufgaben. Die Konfiguration und FSx das Mounten von Slurm werden automatisch auf der HyperPod Grundlage der API-Payload durchgeführt.
└── lifecycle_files // your local folder ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scripts to be fed into lifecycle_script.pyAnmerkung
Die
provisioning_parameters.jsonDatei ist nicht erforderlich, wenn eine API-gesteuerte Konfiguration verwendet wird.Wenn Sie Option B (Legacy-Konfiguration) ausgewählt haben:
Ihr Ordner muss den vollständigen Satz von Lebenszyklus-Skripten enthalten
provisioning_parameters.json.└── lifecycle_files // your local folder ├── provisioning_parameters.json ├── on_create.sh ├── lifecycle_script.py └── ... // more setup scrips to be fed into lifecycle_script.py -
Laden Sie alle Dateien in einen S3-Bucket hoch. Kopieren Sie den S3-Bucket-Pfad und behalten Sie ihn. Beachten Sie, dass Sie einen S3-Bucket-Pfad erstellen sollten, der mit
sagemaker-beginnt, da Sie eine IAM-Rolle für SageMaker HyperPod auswählen müssen, an die AmazonSageMakerClusterInstanceRolePolicy angefügt ist, wodurch nur S3-Bucket-Pfade zulässig sind, die mit dem Präfixsagemaker-beginnen. Der folgende Befehl ist ein Beispielbefehl zum Hochladen aller Dateien in einen S3-Bucket.aws s3 cp --recursive./lifecycle_filess3://sagemaker-hyperpod-lifecycle/src -
Bereiten Sie eine Anfrage zur HyperPod Clustererstellung vor.
-
Option 1: Wenn Sie die verwenden AWS CLI, schreiben Sie eine Anfrage zur Clustererstellung im JSON-Format (
create_cluster.json) gemäß den Anweisungen unterErstellen eines neuen Clusters. -
Option 2: Wenn Sie die Benutzeroberfläche der SageMaker AI-Konsole verwenden, füllen Sie das Formular „Clusteranfrage erstellen“ in der Benutzeroberfläche der HyperPod Konsole aus. Folgen Sie dabei den Anweisungen unterErstellen Sie einen SageMaker HyperPod Cluster.
Stellen Sie in dieser Phase sicher, dass Sie Instance-Gruppen in derselben Struktur erstellen, die Sie in Schritt 1 und 2 geplant haben. Achten Sie außerdem darauf, dass Sie den S3-Bucket aus Schritt 5 in den Anforderungsformularen angeben.
-
-
Reichen Sie die Anfrage zur Clustererstellung ein. HyperPod stellt auf der Grundlage der Anfrage einen Cluster bereit, erstellt dann eine
resource_config.jsonDatei in den HyperPod Cluster-Instanzen und richtet Slurm auf dem Cluster ein, auf dem die Lifecycle-Skripten ausgeführt werden.
Die folgenden Themen führen Sie durch die einzelnen Schritte und gehen detailliert darauf ein, wie Sie Konfigurationsdateien und Lebenszyklusskripte so organisieren, dass sie bei der HyperPod Clustererstellung ordnungsgemäß funktionieren.
Themen
Die grundlegenden Lebenszyklusskripte werden bereitgestellt von HyperPod
Welche speziellen Konfigurationen werden in Slurm-Konfigurationsdateien verwaltet HyperPod
Einbinden von Amazon FSx for Lustre und Amazon FSx for OpenZFS in einem Cluster HyperPod
Validierung der JSON-Konfigurationsdateien vor der Erstellung eines Slurm-Clusters auf HyperPod
Interaktive Entwicklung von Lebenszyklus-Skripten auf einem Clusterknoten HyperPod