

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 SageMaker HyperPod CLI 執行任務
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli"></a>

若要執行任務，請確定您已在 EKS 叢集中安裝 Kubeflow Training Operator。如需詳細資訊，請參閱[使用 Helm 在 Amazon EKS 叢集上安裝套件](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md)。

執行 `hyperpod get-cluster` 命令以取得可用的 HyperPod 叢集清單。

```
hyperpod get-clusters
```

執行 `hyperpod connect-cluster` 以使用協作 HyperPod 叢集的 EKS 叢集來設定 SageMaker HyperPod CLI。

```
hyperpod connect-cluster --cluster-name <hyperpod-cluster-name>
```

使用 `hyperpod start-job` 命令執行任務。下列命令顯示具有必要選項的命令。

```
hyperpod start-job \
    --job-name <job-name>
    --image <docker-image-uri>
    --entry-script <entrypoint-script>
    --instance-type <ml.instance.type>
    --node-count <integer>
```

`hyperpod start-job` 命令也隨附各種選項，例如任務自動繼續和任務排程。

## 啟用任務自動繼續
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-enable-auto-resume"></a>

`hyperpod start-job` 命令也有下列選項來指定任務自動繼續。若要讓任務自動繼續可以使用 SageMaker HyperPod 節點彈性功能，您必須將 `restart-policy` 選項的值設定為 `OnFailure`。任務必須在 `kubeflow` 命名空間或字首為 `hyperpod` 的命名空間下執行。
+ [--auto-resume <bool>] \$1選用，失敗後啟用任務自動繼續，預設值為 false
+ [--max-retry <int>] \$1選用，如果 auto-resume 為 true，則 max-retry 預設值為 1，若未指定的話
+ [--restart-policy <enum>] \$1選用， PyTorchJob 重新啟動政策。可用值為 `Always`、`OnFailure` 或 `Never` 或 `ExitCode`。預設值為 `OnFailure`。

```
hyperpod start-job \
    ... // required options \
    --auto-resume true \
    --max-retry 3 \
    --restart-policy OnFailure
```

## 使用排程選項執行任務
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-scheduling"></a>

`hyperpod start-job` 命令具有下列選項來設定具有佇列機制的任務。

**注意**  
您需要在 EKS 叢集中安裝 [Kueue](https://kueue.sigs.k8s.io/docs/overview/)。如果您尚未安裝，請遵循 [SageMaker HyperPod 任務治理的設定](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md)中的指示。
+ [--scheduler-type <enum>] \$1Optional，指定排程器類型。預設值為 `Kueue`。
+ [--queue-name <string>] \$1選用，指定要與任務一起提交的[本機佇列](https://kueue.sigs.k8s.io/docs/concepts/local_queue/)或[叢集佇列](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/)名稱。叢集管理員應使用 `CreateComputeQuota` 建立佇列。
+ [--priority <string>] \$1選用，指定[工作負載優先順序類別](https://kueue.sigs.k8s.io/docs/concepts/workload_priority_class/)的名稱，此類別應由叢集管理員建立。

```
hyperpod start-job \
    ... // required options
    --scheduler-type Kueue \
    --queue-name high-priority-queue \
    --priority high
```

## 從組態檔案執行任務
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-from-config"></a>

或者，您可以建立任務組態檔案，其中包含任務所需的所有參數，然後使用 --config-file 選項將此組態檔案傳遞至 `hyperpod start-job` 命令。在此案例中：

1. 使用必要的參數建立您的任務組態檔案。如需[基準組態檔案](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.html#sagemaker-hyperpod-eks-hyperpod-cli-from-config)，請參閱 SageMaker HyperPod CLI GitHub 儲存庫中的任務組態檔案。

1. 使用組態檔案啟動任務，如下所示。

   ```
   hyperpod start-job --config-file /path/to/test_job.yaml
   ```

**提示**  
如需 `hyperpod start-job` 命令的完整參數清單，請參閱 SageMaker HyperPod CLI GitHub 儲存庫 `README.md` 中的[提交任務](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#submitting-a-job)一節。