

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memulai dengan SageMaker HyperPod menggunakan AWS CLI
<a name="smcluster-getting-started-slurm-cli"></a>

Buat SageMaker HyperPod cluster pertama Anda menggunakan AWS CLI perintah untuk HyperPod.

## Buat SageMaker HyperPod cluster pertama Anda dengan Slurm
<a name="smcluster-getting-started-slurm-cli-create-cluster"></a>

[Tutorial berikut menunjukkan cara membuat SageMaker HyperPod cluster baru dan mengaturnya dengan Slurm melalui perintah untuk AWS CLI . SageMaker HyperPod](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli) Mengikuti tutorial, Anda akan membuat HyperPod cluster dengan tiga node Slurm:`my-controller-group`,`my-login-group`, dan. `worker-group-1`

Dengan pendekatan konfigurasi berbasis API, Anda mendefinisikan tipe node Slurm dan penetapan partisi secara langsung dalam permintaan API yang digunakan. CreateCluster `SlurmConfig` Ini menghilangkan kebutuhan akan `provisioning_parameters.json` file terpisah dan menyediakan validasi bawaan, deteksi drift, dan per-instance-group FSx konfigurasi.

1. Pertama, siapkan dan unggah skrip siklus hidup ke bucket Amazon S3. Selama pembuatan cluster, HyperPod jalankan mereka di setiap grup instance. Unggah skrip siklus hidup ke Amazon S3 menggunakan perintah berikut.

   ```
   aws s3 sync \
       ~/{{local-dir-to-lifecycle-scripts}}/* \
       s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}
   ```
**catatan**  
Jalur bucket S3 harus dimulai dengan awalan`sagemaker-`, karena [peran IAM untuk SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) with `AmazonSageMakerClusterInstanceRolePolicy` hanya mengizinkan akses ke bucket Amazon S3 yang dimulai dengan awalan tertentu.

   Jika Anda memulai dari awal, gunakan contoh skrip siklus hidup yang disediakan di repositori Pelatihan Terdistribusi [Awsome](https://github.com/aws-samples/awsome-distributed-training/). GitHub Sub-langkah berikut menunjukkan cara mengunduh dan mengunggah contoh skrip siklus hidup ke bucket Amazon S3.

   1. Unduh salinan sampel skrip siklus hidup ke direktori di komputer lokal Anda.

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

   1. Masuk ke direktori [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), di mana Anda dapat menemukan satu set skrip siklus hidup.

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

      Untuk mempelajari lebih lanjut tentang contoh skrip siklus hidup, lihat. [Menyesuaikan SageMaker HyperPod cluster menggunakan skrip siklus hidup](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

   1. Unggah skrip ke`s3://sagemaker-{{<unique-s3-bucket-name>}}/{{<lifecycle-script-directory>}}/src`. Anda dapat melakukannya dengan menggunakan konsol Amazon S3, atau dengan menjalankan perintah Amazon AWS CLI S3 berikut.

      ```
      aws s3 sync \
          ~/{{local-dir-to-lifecycle-scripts}}/* \
          s3://sagemaker-{{<unique-s3-bucket-name>/<lifecycle-script-directory>/src}}
      ```
**catatan**  
Dengan konfigurasi berbasis API, Anda tidak perlu membuat atau mengunggah file. `provisioning_parameters.json` Konfigurasi Slurm didefinisikan secara langsung dalam permintaan CreateCluster API pada langkah berikutnya.

1. Siapkan file [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)permintaan dalam format JSON dan simpan sebagai`create_cluster.json`.

   Dengan konfigurasi berbasis API, Anda menentukan tipe simpul Slurm dan penetapan partisi untuk setiap grup instance menggunakan bidang. `SlurmConfig` Anda juga mengonfigurasi pengaturan Slurm tingkat cluster menggunakan. `Orchestrator.Slurm`

   Untuk`ExecutionRole`, berikan ARN dari peran IAM yang Anda buat dengan yang dikelola. `AmazonSageMakerClusterInstanceRolePolicy` [Prasyarat untuk menggunakan SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)

   ```
   {
       "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 bidang:**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

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

   **SlurmConfigStrategy pilihan:**
   + `Managed`(disarankan): HyperPod sepenuhnya mengelola `slurm.conf` dan mendeteksi perubahan yang tidak sah (deteksi drift). Pembaruan gagal jika drift terdeteksi.
   + `Overwrite`: HyperPod `slurm.conf` menimpa pembaruan, mengabaikan perubahan manual apa pun.
   + `Merge`: HyperPod mempertahankan perubahan manual dan menggabungkannya dengan konfigurasi API.

   **Menambahkan FSx Lustre (opsional):**

   Untuk memasang sistem file FSx for Lustre ke node komputasi Anda, tambahkan `FsxLustreConfig` ke grup instance. `InstanceStorageConfigs` Ini memerlukan konfigurasi VPC Kustom.

   ```
   {
       "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"
   }
   ```

   **Menambahkan FSx untuk OpenZFS (opsional):**

   Anda juga dapat me-mount FSx untuk sistem file OpenZFS:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**catatan**  
Setiap grup instance dapat memiliki paling banyak satu FSx untuk Lustre dan satu FSx untuk konfigurasi OpenZFS. Grup instance yang berbeda dapat memasang sistem file yang berbeda.

   **Menambahkan konfigurasi VPC (diperlukan untuk FSx):**

   Jika menggunakan FSx, Anda harus menentukan konfigurasi VPC Kustom:

   ```
   {
       "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. Jalankan perintah berikut untuk membuat cluster.

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

   Ini harus mengembalikan ARN dari cluster yang dibuat.

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

   Jika Anda menerima kesalahan karena batasan sumber daya, pastikan Anda mengubah jenis instans menjadi salah satu dengan kuota yang cukup di akun Anda, atau minta kuota tambahan dengan mengikuti. [SageMaker HyperPod kuota](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)

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

1. Jalankan `describe-cluster` untuk memeriksa status cluster.

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

   Contoh respons:

   ```
   {
       "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"
   }
   ```

   Setelah status cluster berubah**InService**, lanjutkan ke langkah berikutnya. Pembuatan cluster biasanya memakan waktu 10-15 menit.

1. Jalankan `list-cluster-nodes` untuk memeriksa detail node cluster.

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

   Contoh respons:

   ```
   {
       "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"
           }
       ]
   }
   ```

   Itulah `InstanceId` yang dibutuhkan pengguna cluster Anda untuk login (`aws ssm`) ke dalamnya. Untuk informasi selengkapnya tentang masuk ke node cluster dan menjalankan beban kerja ML, lihat[Pekerjaan di SageMaker HyperPod cluster](sagemaker-hyperpod-run-jobs-slurm.md).

1. Connect ke cluster Anda menggunakan AWS Systems Manager Session Manager.

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

   Setelah terhubung, verifikasi Slurm dikonfigurasi dengan benar:

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

## Hapus cluster dan sumber daya bersih
<a name="smcluster-getting-started-slurm-cli-delete-cluster-and-clean"></a>

Setelah Anda berhasil menguji pembuatan SageMaker HyperPod klaster, klaster terus berjalan di `InService` status hingga Anda menghapus klaster. Kami menyarankan Anda menghapus klaster apa pun yang dibuat menggunakan kapasitas SageMaker AI sesuai permintaan saat tidak digunakan untuk menghindari biaya layanan lanjutan berdasarkan harga sesuai permintaan. Dalam tutorial ini, Anda telah membuat sebuah cluster yang terdiri dari tiga kelompok instance. Pastikan Anda menghapus cluster dengan menjalankan perintah berikut.

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

Untuk membersihkan skrip siklus hidup dari bucket Amazon S3 yang digunakan untuk tutorial ini, buka bucket Amazon S3 yang Anda gunakan selama pembuatan cluster dan hapus file seluruhnya.

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

Jika Anda telah menguji menjalankan beban kerja pelatihan model apa pun di klaster, periksa juga apakah Anda telah mengunggah data apa pun atau apakah pekerjaan Anda telah menyimpan artefak apa pun ke bucket Amazon S3 atau layanan sistem file yang berbeda seperti Amazon FSx for Lustre dan Amazon Elastic File System. Untuk mencegah timbulnya biaya, hapus semua artefak dan data dari penyimpanan atau sistem file.

## Topik terkait
<a name="smcluster-getting-started-slurm-cli-related-topics"></a>
+ [SageMaker HyperPod Konfigurasi slurm](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [Menyesuaikan SageMaker HyperPod cluster menggunakan skrip siklus hidup](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx konfigurasi melalui InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Operasi klaster slurm](sagemaker-hyperpod-operate-slurm.md)