

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

# Contoh perintah tata kelola HyperPod AWS CLI tugas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Anda dapat menggunakan HyperPod dengan EKS melalui Kubectl atau melalui CLI khusus HyperPod. Anda dapat menggunakan perintah ini melalui Studio atau AWS CLI. Berikut ini memberikan contoh tata kelola SageMaker HyperPod tugas, tentang cara melihat detail cluster menggunakan HyperPod AWS CLI perintah. Untuk informasi selengkapnya, termasuk cara menginstal, lihat repositori [HyperPod CLI Github](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [Dapatkan informasi kuota perangkat akselerator cluster](#hp-eks-cli-get-clusters)
+ [Kirim pekerjaan ke antrian dan namespace yang SageMaker dikelola AI](#hp-eks-cli-start-job)
+ [Daftar Lowongan](#hp-eks-cli-list-jobs)
+ [Dapatkan informasi detail pekerjaan](#hp-eks-cli-get-job)
+ [Menangguhkan dan menghentikan penangguhan pekerjaan](#hp-eks-cli-patch-job)
+ [Lowongan kerja debugging](#hp-eks-cli-other)

## Dapatkan informasi kuota perangkat akselerator cluster
<a name="hp-eks-cli-get-clusters"></a>

Contoh perintah berikut mendapatkan informasi tentang kuota perangkat akselerator cluster.

```
hyperpod get-clusters -n hyperpod-ns-test-team
```

Namespace dalam contoh ini,`hyperpod-ns-test-team`, dibuat di Kubernetes berdasarkan nama tim yang disediakan`test-team`, ketika alokasi komputasi dibuat. Untuk informasi selengkapnya, lihat [Edit kebijakan](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Contoh respons:

```
[
    {
        "Cluster": "hyperpod-eks-test-cluster-id",
        "InstanceType": "ml.g5.xlarge",
        "TotalNodes": 2,
        "AcceleratorDevicesAvailable": 1,
        "NodeHealthStatus=Schedulable": 2,
        "DeepHealthCheckStatus=Passed": "N/A",
        "Namespaces": {
            "hyperpod-ns-test-team": {
                "TotalAcceleratorDevices": 1,
                "AvailableAcceleratorDevices": 1
            }
        }
    }
]
```

## Kirim pekerjaan ke antrian dan namespace yang SageMaker dikelola AI
<a name="hp-eks-cli-start-job"></a>

Contoh perintah berikut mengirimkan pekerjaan ke HyperPod cluster Anda. Jika Anda memiliki akses ke hanya satu tim, secara otomatis HyperPod AWS CLI akan menetapkan antrian untuk Anda dalam kasus ini. Jika tidak, jika beberapa antrian ditemukan, kami akan menampilkan semua opsi yang layak untuk Anda pilih.

```
hyperpod start-job --job-name hyperpod-cli-test --job-kind kubeflow/PyTorchJob --image docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd --entry-script /opt/pytorch-mnist/mnist.py --pull-policy IfNotPresent --instance-type ml.g5.xlarge --node-count 1 --tasks-per-node 1 --results-dir ./result --priority training-priority
```

Kelas prioritas didefinisikan dalam **kebijakan Cluster**, yang mendefinisikan bagaimana tugas diprioritaskan dan komputasi idle dialokasikan. Ketika seorang ilmuwan data mengirimkan pekerjaan, mereka menggunakan salah satu nama kelas prioritas dengan format`priority-class-name-priority`. Dalam contoh ini, `training-priority` mengacu pada kelas prioritas bernama “pelatihan”. Untuk informasi lebih lanjut tentang konsep kebijakan, lihat[Kebijakan](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Jika kelas prioritas tidak ditentukan, pekerjaan diperlakukan sebagai pekerjaan prioritas rendah, dengan nilai peringkat tugas 0. 

Jika kelas prioritas ditentukan, tetapi tidak sesuai dengan salah satu kelas prioritas yang didefinisikan dalam **kebijakan Cluster**, pengiriman gagal dan pesan kesalahan menyediakan kumpulan kelas prioritas yang ditentukan.

Anda juga dapat mengirimkan pekerjaan menggunakan file konfigurasi YAMB menggunakan perintah berikut: 

```
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
```

Berikut ini adalah contoh file konfigurasi YAMAL yang setara dengan mengirimkan pekerjaan seperti yang dibahas di atas.

```
defaults:
  - override hydra/job_logging: stdout
hydra:
  run:
    dir: .
  output_subdir: null
training_cfg:
  entry_script: /opt/pytorch-mnist/mnist.py
  script_args: []
  run:
    name: hyperpod-cli-test
    nodes: 1
    ntasks_per_node: 1
cluster:
  cluster_type: k8s
  instance_type: ml.g5.xlarge
  custom_labels:
    kueue.x-k8s.io/priority-class: training-priority
  cluster_config:
    label_selector:
      required:
        sagemaker.amazonaws.com/node-health-status:
          - Schedulable
      preferred:
        sagemaker.amazonaws.com/deep-health-check-status:
          - Passed
      weights:
        - 100
    pullPolicy: IfNotPresent
base_results_dir: ./result
container: docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd
env_vars:
  NCCL_DEBUG: INFO
```

Atau, Anda dapat mengirimkan pekerjaan menggunakan `kubectl` untuk memastikan tugas muncul di tab **Dasbor**. Berikut ini adalah contoh perintah kubectl.

```
kubectl apply -f ./yaml-configuration-file-name.yaml
```

Saat mengirimkan pekerjaan, sertakan nama antrian dan label kelas prioritas Anda. Misalnya, dengan nama antrian `hyperpod-ns-team-name-localqueue` dan kelas prioritas`priority-class-name-priority`, Anda harus menyertakan label berikut:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

**Cuplikan konfigurasi YAMB berikut menunjukkan cara menambahkan label ke file konfigurasi asli Anda untuk memastikan tugas Anda muncul di tab Dasbor:**

```
metadata:
    name: job-name
    namespace: hyperpod-ns-team-name
    labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        kueue.x-k8s.io/priority-class: priority-class-name-priority
```

## Daftar Lowongan
<a name="hp-eks-cli-list-jobs"></a>

Perintah berikut mencantumkan pekerjaan dan detailnya.

```
hyperpod list-jobs
```

Contoh respons:

```
{
    "jobs": [
        {
            "Name": "hyperpod-cli-test",
            "Namespace": "hyperpod-ns-test-team",
            "CreationTime": "2024-11-18T21:21:15Z",
            "Priority": "training",
            "State": "Succeeded"
        }
    ]
}
```

## Dapatkan informasi detail pekerjaan
<a name="hp-eks-cli-get-job"></a>

Perintah berikut memberikan rincian pekerjaan. Jika tidak ada namespace yang ditentukan, HyperPod AWS CLI akan mengambil namespace yang dikelola oleh SageMaker AI yang dapat Anda akses.

```
hyperpod get-job --job-name hyperpod-cli-test
```

Contoh respons:

```
{
    "Name": "hyperpod-cli-test",
    "Namespace": "hyperpod-ns-test-team",
    "Label": {
        "app": "hyperpod-cli-test",
        "app.kubernetes.io/managed-by": "Helm",
        "kueue.x-k8s.io/priority-class": "training"
    },
    "CreationTimestamp": "2024-11-18T21:21:15Z",
    "Status": {
        "completionTime": "2024-11-18T21:25:24Z",
        "conditions": [
            {
                "lastTransitionTime": "2024-11-18T21:21:15Z",
                "lastUpdateTime": "2024-11-18T21:21:15Z",
                "message": "PyTorchJob hyperpod-cli-test is created.",
                "reason": "PyTorchJobCreated",
                "status": "True",
                "type": "Created"
            },
            {
                "lastTransitionTime": "2024-11-18T21:21:17Z",
                "lastUpdateTime": "2024-11-18T21:21:17Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test is running.",
                "reason": "PyTorchJobRunning",
                "status": "False",
                "type": "Running"
            },
            {
                "lastTransitionTime": "2024-11-18T21:25:24Z",
                "lastUpdateTime": "2024-11-18T21:25:24Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test successfully completed.",
                "reason": "PyTorchJobSucceeded",
                "status": "True",
                "type": "Succeeded"
            }
        ],
            "replicaStatuses": {
                "Worker": {
                    "selector": "training.kubeflow.org/job-name=hyperpod-cli-test,training.kubeflow.org/operator-name=pytorchjob-controller,training.kubeflow.org/replica-type=worker",
                    "succeeded": 1
                }
            },
        "startTime": "2024-11-18T21:21:15Z"
    },
    "ConsoleURL": "https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/cluster-management/hyperpod-eks-test-cluster-id“
}
```

## Menangguhkan dan menghentikan penangguhan pekerjaan
<a name="hp-eks-cli-patch-job"></a>

Jika Anda ingin menghapus beberapa pekerjaan yang dikirimkan dari penjadwal, HyperPod AWS CLI berikan `suspend` perintah untuk menghapus sementara pekerjaan dari orkestrasi. Pekerjaan yang ditangguhkan tidak akan lagi dijadwalkan kecuali pekerjaan tersebut tidak ditangguhkan secara manual oleh perintah `unsuspend`

Untuk sementara menangguhkan pekerjaan:

```
hyperpod patch-job suspend --job-name hyperpod-cli-test
```

Untuk menambahkan pekerjaan kembali ke antrian:

```
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
```

## Lowongan kerja debugging
<a name="hp-eks-cli-other"></a>

Ini HyperPod AWS CLI juga menyediakan perintah lain bagi Anda untuk men-debug masalah pengiriman pekerjaan. Misalnya `list-pods` dan `get-logs` di repositori HyperPod AWS CLI Github.