

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.

# Erste Schritte mit der SageMaker HyperPod Verwendung von AWS CLI
<a name="smcluster-getting-started-slurm-cli"></a>

Erstellen Sie Ihren ersten SageMaker HyperPod Cluster mit den AWS CLI Befehlen für HyperPod.

## Erstelle deinen ersten SageMaker HyperPod Cluster mit Slurm
<a name="smcluster-getting-started-slurm-cli-create-cluster"></a>

Das folgende Tutorial zeigt, wie Sie mithilfe der [AWS CLI Befehle](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli) für einen neuen SageMaker HyperPod Cluster erstellen und ihn mit Slurm einrichten. SageMaker HyperPod Im Anschluss an das Tutorial erstellen Sie einen HyperPod Cluster mit drei Slurm-Knoten: `my-controller-group``my-login-group`, und. `worker-group-1`

Beim API-gesteuerten Konfigurationsansatz definieren Sie Slurm-Knotentypen und Partitionszuweisungen direkt in der CreateCluster API-Anfrage mithilfe von. `SlurmConfig` Dadurch entfällt die Notwendigkeit einer separaten `provisioning_parameters.json` Datei und bietet eine integrierte Validierung, Drifterkennung und Konfiguration. per-instance-group FSx 

1. Bereiten Sie zunächst Lebenszyklusskripte vor und laden Sie sie in einen Amazon-S3-Bucket hoch. HyperPod Führt sie während der Clustererstellung in jeder Instanzgruppe aus. Laden Sie mithilfe des folgenden Befehls Lebenszyklusskripte in Amazon S3 hoch.

   ```
   aws s3 sync \
       ~/{{local-dir-to-lifecycle-scripts}}/* \
       s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}
   ```
**Anmerkung**  
Der S3-Bucket-Pfad sollte mit einem Präfix beginnen`sagemaker-`, da die [IAM-Rolle für SageMaker HyperPod with](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) `AmazonSageMakerClusterInstanceRolePolicy` nur den Zugriff auf Amazon S3 S3-Buckets ermöglicht, die mit dem spezifischen Präfix beginnen.

   Wenn Sie bei Null anfangen, verwenden Sie Lebenszyklus-Beispielskripts, die im [Awsome Distributed](https://github.com/aws-samples/awsome-distributed-training/) Training Repository bereitgestellt werden. GitHub Die folgenden Teilschritte zeigen, wie Sie die Lebenszyklus-Beispielskripts herunterladen und in einen Amazon S3 S3-Bucket hochladen.

   1. Laden Sie eine Kopie der Beispiel-Lebenszyklusskripte in ein Verzeichnis auf Ihrem lokalen Computer herunter.

      ```
      git clone https://github.com/aws-samples/awsome-distributed-training/
      ```

   1. Gehen Sie in das Verzeichnis [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config), in dem Sie eine Reihe von Lebenszyklusskripten finden.

      ```
      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
      ```

      Weitere Informationen zu den Lebenszyklusskript-Beispielen finden Sie unter [Anpassen von SageMaker HyperPod Clustern mithilfe von Lebenszyklusskripten](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

   1. Laden Sie die Skripte auf `s3://sagemaker-{{<unique-s3-bucket-name>}}/{{<lifecycle-script-directory>}}/src` hoch. Sie können dazu die Amazon-S3-Konsole oder den folgenden AWS CLI -Amazon-S3-Befehl ausführen.

      ```
      aws s3 sync \
          ~/{{local-dir-to-lifecycle-scripts}}/* \
          s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}
      ```
**Anmerkung**  
Bei der API-gesteuerten Konfiguration müssen Sie keine Datei erstellen oder hochladen. `provisioning_parameters.json` Die Slurm-Konfiguration wird im nächsten Schritt direkt in der CreateCluster API-Anfrage definiert.

1. Bereiten Sie eine [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)Anforderungsdatei im JSON-Format vor und speichern Sie sie `create_cluster.json` unter.

   Bei der API-gesteuerten Konfiguration geben Sie mithilfe des Felds den Slurm-Knotentyp und die Partitionszuweisung für jede Instanzgruppe an. `SlurmConfig` Sie konfigurieren auch die Slurm-Einstellungen auf Clusterebene mithilfe von. `Orchestrator.Slurm`

   Geben Sie für `ExecutionRole` den ARN der IAM-Rolle an, die Sie mit der verwalteten `AmazonSageMakerClusterInstanceRolePolicy` in [Voraussetzungen für die Verwendung SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) erstellt haben.

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::{{<account-id>}}:role/HyperPodExecutionRole",
               "InstanceStorageConfigs": [
                   {
                       "EbsVolumeConfig": {
                           "VolumeSizeInGB": 500
                       }
                   }
               ]
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::{{<account-id>}}:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::{{<account-id>}}:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       }
   }
   ```

   **SlurmConfig Felder**:    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **Orchestrator.Slurm-Felder:**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **SlurmConfigStrategy Optionen:**
   + `Managed`(empfohlen): Verwaltet `slurm.conf` und erkennt unberechtigte Änderungen HyperPod vollständig (Drift-Erkennung). Aktualisierungen schlagen fehl, wenn eine Abweichung erkannt wird.
   + `Overwrite`: HyperPod überschreibt `slurm.conf` bei Updates und ignoriert alle manuellen Änderungen.
   + `Merge`: HyperPod behält manuelle Änderungen bei und führt sie mit der API-Konfiguration zusammen.

   ** FSx Für Lustre hinzufügen (optional):**

   Um ein FSx for Lustre-Dateisystem auf Ihren Rechenknoten zu mounten, fügen Sie es der `FsxLustreConfig` Instanzgruppe `InstanceStorageConfigs` for hinzu. Dies erfordert eine benutzerdefinierte VPC-Konfiguration.

   ```
   {
       "InstanceGroupName": "worker-group-1",
       "InstanceType": "ml.trn1.32xlarge",
       "InstanceCount": 1,
       "SlurmConfig": {
           "NodeType": "Compute",
           "PartitionNames": ["partition-1"]
       },
       "InstanceStorageConfigs": [
           {
               "FsxLustreConfig": {
                   "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                   "MountPath": "/fsx",
                   "MountName": "abcdefgh"
               }
           }
       ],
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::{{<account-id>}}:role/HyperPodExecutionRole"
   }
   ```

   ** FSx Für OpenZFS hinzufügen (optional):**

   Sie können auch FSx für OpenZFS-Dateisysteme mounten:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**Anmerkung**  
Jede Instanzgruppe kann höchstens eine FSx für die Lustre- und eine FSx für die OpenZFS-Konfiguration haben. Verschiedene Instanzgruppen können unterschiedliche Dateisysteme mounten.

   **VPC-Konfiguration hinzufügen (erforderlich für FSx):**

   Bei Verwendung FSx müssen Sie eine benutzerdefinierte VPC-Konfiguration angeben:

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::{{<account-id>}}:role/HyperPodExecutionRole"
           },
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "VpcConfig": {
           "SecurityGroupIds": ["sg-0abc123def456789a"],
           "Subnets": ["subnet-0abc123def456789a"]
       }
   }
   ```

1. Führen Sie den folgenden Befehl aus, um den Cluster zu erstellen.

   ```
   aws sagemaker create-cluster --cli-input-json {{file://complete/path/to/create_cluster.json}}
   ```

   Dies sollte den ARN des erstellten Clusters zurückgeben.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster"
   }
   ```

   Wenn Sie aufgrund von Ressourcenbeschränkungen eine Fehlermeldung erhalten, stellen Sie sicher, dass Sie den Instance-Typ in Ihrem Konto in einen mit ausreichenden Kontingenten ändern oder zusätzliche Kontingente anfordern, indem Sie den folgenden Schritten folgen.

   **Häufige Validierungsfehler:**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

1. Führen Sie `describe-cluster` aus, um den Status des -Clusters zu prüfen.

   ```
   aws sagemaker describe-cluster --cluster-name {{my-hyperpod-cluster}}
   ```

   Beispielantwort:

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster",
       "ClusterName": "my-hyperpod-cluster",
       "ClusterStatus": "Creating",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "CreationTime": "2024-01-15T10:30:00Z"
   }
   ```

   Nachdem der Status des Clusters auf **InService** geändert wurde, fahren Sie mit dem nächsten Schritt fort. Die Clustererstellung dauert in der Regel 10 bis 15 Minuten.

1. Führen Sie `list-cluster-nodes` aus, um die Details der Clusterknoten zu überprüfen.

   ```
   aws sagemaker list-cluster-nodes --cluster-name {{my-hyperpod-cluster}}
   ```

   Beispielantwort:

   ```
   {
       "ClusterNodeSummaries": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceId": "i-0abc123def456789a",
               "InstanceType": "ml.c5.xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceId": "i-0abc123def456789b",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceId": "i-0abc123def456789c",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:36:00Z"
           }
       ]
   }
   ```

   `InstanceId`Das benötigen Ihre Cluster-Benutzer, um sich bei ihnen anzumelden (`aws ssm`). Weitere Informationen zur Anmeldung bei den Clusterknoten und zum Ausführen von ML-Workloads finden Sie unter [Jobs auf Clustern SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

1. Stellen Sie mithilfe von AWS Systems Manager Session Manager eine Connect zu Ihrem Cluster her.

   ```
   aws ssm start-session \
       --target sagemaker-cluster:{{my-hyperpod-cluster}}_{{my-login-group}}-{{i-0abc123def456789b}} \
       --region {{us-west-2}}
   ```

   Sobald die Verbindung hergestellt ist, stellen Sie sicher, dass Slurm korrekt konfiguriert ist:

   ```
   # Check Slurm nodes
   sinfo
   
   # Check Slurm partitions
   sinfo -p partition-1
   
   # Submit a test job
   srun -p partition-1 --nodes=1 hostname
   ```

## Löschen des Clusters und Bereinigen der Ressourcen
<a name="smcluster-getting-started-slurm-cli-delete-cluster-and-clean"></a>

Nachdem Sie die Erstellung eines SageMaker HyperPod Clusters erfolgreich getestet haben, läuft er im `InService` Status weiter, bis Sie den Cluster löschen. Wir empfehlen, dass Sie alle Cluster löschen, die mithilfe von SageMaker On-Demand-KI-Kapazität erstellt wurden, wenn sie nicht genutzt werden, um zu vermeiden, dass weitere Servicegebühren aufgrund von On-Demand-Preisen anfallen. In diesem Tutorial haben Sie einen Cluster erstellt, der aus drei Instanzgruppen besteht. Stellen Sie sicher, dass Sie den Cluster löschen, indem Sie den folgenden Befehl ausführen.

```
aws sagemaker delete-cluster --cluster-name {{my-hyperpod-cluster}}
```

Um die Lebenszyklusskripte aus dem für dieses Tutorial verwendeten Amazon-S3-Bucket zu bereinigen, wechseln Sie zu dem Amazon-S3-Bucket, den Sie bei der Clustererstellung verwendet haben, und entfernen Sie die Dateien vollständig.

```
aws s3 rm s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}} --recursive
```

Wenn Sie die Ausführung von Modelltraining-Workloads auf dem Cluster getestet haben, überprüfen Sie auch, ob Sie Daten hochgeladen haben oder ob Ihr Job Artefakte in verschiedenen Amazon S3 S3-Buckets oder Dateisystemdiensten wie Amazon FSx for Lustre und Amazon Elastic File System gespeichert hat. Um Gebühren zu vermeiden, löschen Sie alle Artefakte und Daten aus dem Speicher- oder Dateisystem.

## Verwandte Themen
<a name="smcluster-getting-started-slurm-cli-related-topics"></a>
+ [SageMaker HyperPod Slurm-Konfiguration](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [Anpassen von SageMaker HyperPod Clustern mithilfe von Lebenszyklusskripten](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx Konfiguration über InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Slurm-Clusteroperationen](sagemaker-hyperpod-operate-slurm.md)