

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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オプション。自動再開が 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>] \$1オプション。スケジューラタイプを指定します。デフォルトは `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` にある「[Submitting a Job](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#submitting-a-job)」セクションを参照してください。