

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

# ポリシー
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies"></a>

Amazon SageMaker HyperPod タスクガバナンスは、Amazon EKS クラスターリソースの割り当て方法とタスクの優先順位付け方法を簡素化します。以下では、HyperPod EKS クラスターポリシーについて説明します。データガバナンスをセットアップする方法については、「[タスクガバナンスの設定](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md)」を参照してください。

ポリシーは、**[コンピューティングの優先順位付け]** と **[コンピューティング割り当て]** に分割されます。以下のポリシーの概念は、これらのポリシーに基づいて整理されています。

**[コンピューティングの優先順位付け]**、つまりクラスターポリシーは、アイドル状態のコンピューティングリソースをどのように借用し、チームごとにタスクをどのように優先順位付けするかを決定します。
+ **[アイドル状態のコンピューティング割り当て]** は、アイドル状態のコンピューティングリソースをチーム間でどのように割り当てるかを定義します。つまり、未使用のコンピューティングリソースをチームからどのように借用するかを定義します。**[アイドル状態のコンピューティング割り当て]** を選択する際は、次のいずれかを選択できます。
  + **先着順**: 適用すると、チーム間の優先順位付けは行われず、各タスクが割り当て超過リソースを取得する可能性は均等になります。タスクは送信順に優先順位付けされます。つまり、ユーザーが最初にリクエストすれば、アイドル状態のコンピューティングリソースを 100% 使用できる可能性があります。
  + **適性な共有**: 適用すると、チームは割り当てられた**適正な共有の加重**に基づいてアイドル状態のコンピューティングリソースを借りることができます。これらの重みは、**[コンピューティング割り当て]** で定義されます。使用方法の詳細については、「[アイドル状態のコンピューティングリソースを共有する例](#hp-eks-task-governance-policies-examples)」をご覧ください。
+ **[タスクの優先順位付け]** は、コンピューティングリソースが利用可能になった場合にタスクがどのようにキューに入れられるかを定義します。**[タスクの優先順位付け]** を選択する際は、次のいずれかを選択できます。
  + **先着順**:適用すると、タスクはリクエストした順にキューに入れられます。
  + **タスクの順位付け**: 適用すると、タスクは優先順位で定義された順序でキューに入れられます。このオプションを選択した場合は、優先クラスと、その優先度の加重を追加する必要があります。同じ優先クラスのタスクは、先着順で実行されます。コンピューティング割り当てで有効にすると、タスクはチーム内の優先度の高いタスクによって、優先度の低いタスクよりも優先されます。

    データサイエンティストがクラスターにジョブを送信する際は、YAML ファイルで優先クラス名を使用します。優先クラスは `priority-class-name-priority` の形式です。例については、[SageMaker AI マネージドキューと名前空間にジョブを送信する](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job)を参照してください。
  + **優先クラス**: これらのクラスは、キャパシティを借用する際のタスクの相対的な優先度を設定します。借用クォータを使用してタスクが実行されている場合、タスクに利用可能なキャパシティが不足していると、そのタスクよりも優先度の高い別のタスクによってプリエンプトされる場合があります。**[コンピューティング割り当て]** で **[プリエンプション]** が有効になっている場合、優先度の高いタスクが自分のチーム内のタスクよりも優先される場合があります。
+ **未割り当てのリソース共有**により、チームはコンピューティングクォータを通じてどのチームにも割り当てられていないコンピューティングリソースを借用できます。有効にすると、チームが未割り当てのクラスター容量を自動的に借用できるようになります。詳細については、「[未割り当てのリソース共有の仕組み](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)」を参照してください。

**[コンピューティング割り当て]**、つまりコンピューティングクォータは、チームのコンピューティング割り当てと、適性な共有のアイドル状態のコンピューティング割り当てにおけるチームに割り当てられた加重 (優先度) を定義します。
+ **チーム名**: チームの名前です。対応する**名前空間** (`hyperpod-ns-team-name` 型) が作成されます。
+ **メンバー**: チーム名前空間のメンバー。Amazon EKS でオーケストレーションされた HyperPod クラスターでタスクを実行するには、このチームに参加させるデータサイエンティストユーザーに対して Kubernetes のロールベースのアクセスコントロール (RBAC) を設定する必要があります。Kubernetes RBAC を設定するには、「[チームロールの作成](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role)」の手順を使用します。
+ **適正な共有の加重**: これは、**[適正な共有]** が **[アイドル状態のコンピューティング割り当て]** に適用される場合にチームに割り当てられる優先順位付けのレベルです。最高優先度の加重は 100 で、最低優先度の加重は 0 です。加重が高いほど、チームは共有キャパシティ内の未使用のリソースにより早くアクセスできます。加重が 0 の場合、優先順位が最も低く、このチームが他のチームと比較して常に不利になることを意味します。

  適正な共有の加重は、利用可能なリソースを他のユーザーと競う際に、このチームに比較上の優位性を提供します。アドミッションは、加重が最も高く、借用が最も少ないチームからのタスクのスケジューリングを優先します。例えば、チーム A の加重が 10 で、チーム B の加重が 5 の場合、チーム A は未使用のリソースへのアクセスに関して優先権を持ち、チーム B よりも先にジョブがスケジュールされます。
+ **タスクのプリエンプション**: コンピューティングは、優先度に基づいてタスクから引き継がれます。デフォルトでは、アイドル状態のコンピューティングを貸すチームが、他のチームのタスクをプリエンプトします。
+ **貸借**: アイドル状態のコンピューティングがチームによってどのように貸し出されているか、また、チームが他のチームから借りることができるかどうか。
  + **パーセンテージベースの借用制限**: チームが借用できるアイドル状態のコンピューティングの制限。保証されたクォータに対するパーセンテージで表されます。チームは、割り当てられたコンピューティングの最大 10,000% を借用できます。ここで指定した値はパーセンテージとして解釈されます。例えば、500 の値は 500% と解釈されます。この割合は、チームのクォータ内のすべてのリソースタイプ (CPU、GPU、メモリ) とインスタンスタイプに均一に適用されます。
  + **絶対借用制限**: チームが借用できるアイドル状態のコンピューティングの制限。インスタンスタイプあたりの絶対リソース値として定義されます。これにより、特定のインスタンスタイプの借用動作をきめ細かく制御できます。インスタンス数、アクセラレーター、vCPU、メモリ、アクセラレーターパーティションなど、**コンピューティングクォータ**と同じスキーマを使用して絶対制限を指定する必要があります。チームのクォータで 1 つ以上のインスタンスタイプの絶対制限を指定できます。

優先クラスや名前空間など、これらの概念の使用方法については、「[HyperPod タスクガバナンス AWS CLI コマンドの例](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md)」を参照してください。

## アイドル状態のコンピューティングリソースを共有する例
<a name="hp-eks-task-governance-policies-examples"></a>

適切なクォータ管理を確保するため、予約済みクォータの合計は、クラスターでそのリソースに対して利用可能なキャパシティを超えることはできなりません。例えば、クラスターが 20 個の `ml.c5.2xlarge` インスタンスで設定されている場合、チームに割り当てられる累積クォータは 20 未満である必要があります。

チームの **[コンピューティング割り当て]** ポリシーで **[貸借]** または **[貸す]** が許可されている場合、アイドル状態のキャパシティはこれらのチーム間で共有されます。例えば、チーム A とチーム B では **[貸借]** が有効になっています。チーム A のクォータは 6 ですが、ジョブには 2 つのみを使用し、チーム B のクォータは 5 で、ジョブには 4 を使用しています。チーム B に 4 つのリソースを必要とするジョブが送信された場合、3 つがチーム A から借用されます。

チームの **[コンピューティング割り当て]** ポリシーが **[貸さないでください]** に設定されている場合、チームは独自の割り当てを超えて追加のキャパシティを借りることはできません。

## 未割り当てのリソース共有の仕組み
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works"></a>

未割り当てのリソース共有は、クラスター内のコンピューティングクォータに割り当てられていないリソースのプールを自動的に管理します。つまり、HyperPod はクラスターの状態を継続的にモニタリングし、時間の経過とともに自動的に正しい設定に更新します。

**初期セットアップ**
+ ClusterSchedulerConfig `Enabled`で `IdleResourceSharing`を に設定すると (デフォルトでは `Disabled`)、HyperPod タスクガバナンスはクラスターのモニタリングを開始し、合計ノード容量からチームクォータを差し引いて使用可能なアイドルリソースを計算します。
+ 未割り当てのリソース共有 ClusterQueues は、借用可能なリソースプールを表すために作成されます。
+ 割り当てられていないリソース共有を初めて有効にすると、インフラストラクチャのセットアップに数分かかります。ポリシー`Status`と ClusterSchedulerConfig `DetailedStatus` を使用して進行状況をモニタリングできます。

**継続的な照合**
+ HyperPod タスクガバナンスは、ノードの追加や削除、クラスターキュークォータの更新などの変更を継続的にモニタリングします。
+  変更が発生すると、未割り当てのリソース共有はクォータを再計算し、ClusterQueues を更新します。照合は通常、数秒以内に完了します。

**モニタリング**

 未割り当てのリソース共有が完全に設定されていることを確認するには、未割り当てのリソース共有 ClusterQueues を確認します。

```
kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
```

のような名前の ClusterQueues が表示されると`hyperpod-ns-idle-resource-sharing-cq-1`、未割り当てのリソース共有がアクティブになります。クラスター内のリソースフレーバーの数によっては、未割り当てのリソース共有 ClusterQueues が複数存在する場合があることに注意してください。

## 未割り当てのリソース共有のノード適格性
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility"></a>

未割り当ての Resource Sharing には、次の要件を満たすノードのみが含まれます。

1. **ノード準備完了ステータス**
   + 未割り当てのリソースプールに寄与するには、ノードのステータスが `Ready` である必要があります。
   + `NotReady` または他の準備ができていない状態のノードは、容量計算から除外されます。
   + ノードが になると`Ready`、次の調整サイクルに自動的に含まれます。

1. **ノードのスケジュール可能なステータス**
   + を持つノード`spec.unschedulable: true`は、未割り当てのリソース共有から除外されます。
   + ノードが再びスケジュール可能になると、次の調整サイクルに自動的に含まれます。

1. **MIG 設定 (GPU ノードのみ)**
   + MIG (マルチインスタンス GPU) パーティショニングを使用する GPU ノード`success`の場合、割り当てられていないリソース共有に MIG プロファイルを提供するには、 `nvidia.com/mig.config.state`ラベルに と表示する必要があります。
   + これらのノードは、MIG 設定が正常に完了すると自動的に再試行されます。

1. **サポートされているインスタンスタイプ**
   + インスタンスは、サポートされている SageMaker HyperPod インスタンスタイプである必要があります。
   + SageMaker HyperPod クラスターでサポートされているインスタンスタイプのリストを参照してください。

**Topics**
+ [アイドル状態のコンピューティングリソースを共有する例](#hp-eks-task-governance-policies-examples)
+ [未割り当てのリソース共有の仕組み](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)
+ [未割り当てのリソース共有のノード適格性](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility)
+ [ポリシーの作成](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create.md)
+ [ポリシーを編集する](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md)
+ [ポリシーを削除する](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ [Amazon SageMaker HyperPod タスクガバナンスでのコンピューティングクォータの割り当て](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation.md)

# ポリシーの作成
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create"></a>

**[クラスターポリシー]** と **[コンピューティング割り当て]** 設定は、**[ポリシー]** タブで作成できます。以下の設定を作成する方法の手順は、次のとおりです。
+ **[クラスターポリシー]** を作成して、タスクの優先順位付け方法とアイドル状態のコンピューティング割り当て方法を更新します。
+ **[コンピューティング割り当て]** を作成して、チームの新しいコンピューティング割り当てポリシーを作成します。
**注記**  
**[コンピューティング割り当て]** を作成する際、Amazon EKS でオーケストレーションされた HyperPod クラスターでタスクを実行するために、対応する名前空間のデータサイエンティストユーザーに対して Kubernetes のロールベースのアクセスコントロール (RBAC) を設定する必要があります。名前空間の形式は `hyperpod-ns-team-name` です。Kubernetes RBAC を設定するには、「[チームロールの作成](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role)」の手順を使用します。

HyperPod タスクガバナンス EKS クラスターポリシーの概念については、「[ポリシー](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)」を参照してください。

**HyperPod タスクガバナンスポリシーを作成する**

この手順では、HyperPod でセットアップされた Amazon EKS クラスターが作成済みであることを前提としています。まだプッシュしていない場合は、「[Amazon EKS オーケストレーションを使用した SageMaker HyperPod クラスターの作成](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)」を参照してください。

1. [Amazon SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker/)に移動します。

1. 左側のナビゲーションペインで **[HyperPod クラスター]** を選択し、**[クラスターの管理]** をクリックします。

1. **[SageMaker HyperPod クラスター]** にリストされている Amazon EKS クラスターを選択します。

1. **[Policies]** タブを選択します。

1. **[クラスターポリシー]** を作成するには:

   1. 対応する **[編集]** をクリックして、タスクの優先順位付け方法とアイドル状態のコンピューティング割り当て方法を更新します。

   1. 変更が完了したら、**[送信]** をクリックします。

1. **[コンピューティング割り当て]** を作成するには:

1. 

   1. 対応する **[作成]** をクリックします。これにより、コンピューティング割り当ての作成ページが表示されます。

   1. 変更が完了したら、**[送信]** をクリックします。

# ポリシーを編集する
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit"></a>

**[クラスターポリシー]** と **[コンピューティング割り当て]** 設定は、**[ポリシー]** タブで編集できます。以下の設定を編集する方法の手順は、次のとおりです。
+ **[クラスターポリシー]** を編集して、タスクの優先順位付け方法とアイドル状態のコンピューティング割り当て方法を更新します。
+ **[コンピューティング割り当て]** を編集して、チームの新しいコンピューティング割り当てポリシーを作成します。
**注記**  
**[コンピューティング割り当て]** を作成する際、Amazon EKS でオーケストレーションされた HyperPod クラスターでタスクを実行するために、対応する名前空間のデータサイエンティストユーザーに対して Kubernetes のロールベースのアクセスコントロール (RBAC) を設定する必要があります。名前空間の形式は `hyperpod-ns-team-name` です。Kubernetes RBAC を設定するには、「[チームロールの作成](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role)」の手順を使用します。

HyperPod タスクガバナンス EKS クラスターポリシーの概念の詳細については、「[ポリシー](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)」を参照してください。

**HyperPod タスクガバナンスポリシーを編集する**

この手順では、HyperPod でセットアップされた Amazon EKS クラスターが作成済みであることを前提としています。まだプッシュしていない場合は、「[Amazon EKS オーケストレーションを使用した SageMaker HyperPod クラスターの作成](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)」を参照してください。

1. [Amazon SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker/)に移動します。

1. 左側のナビゲーションペインで **[HyperPod クラスター]** を選択し、**[クラスターの管理]** をクリックします。

1. **[SageMaker HyperPod クラスター]** にリストされている Amazon EKS クラスターを選択します。

1. **[Policies]** タブを選択します。

1. **[クラスターポリシー]** を編集するには:

   1. 対応する **[編集]** をクリックして、タスクの優先順位付け方法とアイドル状態のコンピューティング割り当て方法を更新します。

   1. 変更が完了したら、**[送信]** をクリックします。

1. **[コンピューティング割り当て]** を編集するには:

1. 

   1. **[コンピューティング割り当て]** で編集する設定を選択します。これにより、設定の詳細ページが開きます。

   1. これらの設定を編集する場合は、**[編集]** をクリックします。

   1. 変更が完了したら、**[送信]** をクリックします。

# ポリシーを削除する
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete"></a>

**[クラスターポリシー]** と **[コンピューティング割り当て]** 設定は、SageMaker AI コンソールまたは AWS CLIを使用して削除できます。次のページでは、SageMaker HyperPod タスクガバナンスポリシーと設定を削除する方法について説明します。

HyperPod タスクガバナンス EKS クラスターポリシーの概念の詳細については、「[ポリシー](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)」を参照してください。

**注記**  
タスクガバナンスポリシーの一覧表示または削除で問題が発生した場合は、クラスター管理者のアクセス許可の最小セットを更新する必要がある場合があります。「[クラスター管理者の IAM ユーザー](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin)」セクションの **[Amazon EKS]** タブを参照してください。詳細については、「[クラスターの削除](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md#hp-eks-troubleshoot-delete-policies)」を参照してください。

## HyperPod タスクガバナンスポリシーを削除する (コンソール)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-console"></a>

以下では、SageMaker AI コンソールを使用して HyperPod タスクガバナンスポリシーを削除します。

**注記**  
SageMaker AI コンソールを使用して **[クラスターポリシー]** (`ClusterSchedulerConfig`) を削除することはできません。を使用してこれを行う方法については AWS CLI、「」を参照してください[HyperPod タスクガバナンスポリシーを削除する (AWS CLI)](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli)。

**タスクガバナンスポリシーを削除するには (コンソール)**

1. [Amazon SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker/)に移動します。

1. 左側のナビゲーションペインで **[HyperPod クラスター]** を選択し、**[クラスターの管理]** をクリックします。

1. **[SageMaker HyperPod クラスター]** にリストされている Amazon EKS クラスターを選択します。

1. **[Policies]** タブを選択します。

1. **[コンピューティング割り当て]** を削除するには (`ComputeQuota`):

   1. **[コンピューティング割り当て]** セクションで、削除する設定を選択します。

   1. **[アクション]** ドロップダウンメニューで、**[削除]** を選択します。

   1. タスクを実行するには、手順に従ってください。

## HyperPod タスクガバナンスポリシーを削除する (AWS CLI)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli"></a>

以下では AWS CLI 、 を使用して HyperPod タスクガバナンスポリシーを削除します。

**注記**  
次のコマンドを使用して問題が発生した場合は、 を更新する必要がある場合があります AWS CLI。詳細については、「[AWS CLIの最新バージョンのインストールまたは更新](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。

**タスクガバナンスポリシーを削除するには (AWS CLI)**

まず、以下の AWS CLI コマンドの変数を設定します。

```
REGION=aws-region
```

1. 削除するポリシーに関連付けられた *cluster-arn* を取得します。次の AWS CLI コマンドを使用して、 内のクラスターを一覧表示できます AWS リージョン。

   ```
   aws sagemaker list-clusters \
       --region ${REGION}
   ```

1. コンピューティング割り当てを削除するには (`ComputeQuota`):

   1. HyperPod クラスターに関連付けられているすべてのコンピューティングクォータを一覧表示します。

      ```
      aws sagemaker list-compute-quotas \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. 削除する各 `compute-quota-id` に対して、以下のコマンドを実行してコンピューティングクォータを削除します。

      ```
      aws sagemaker delete-compute-quota \
          --compute-quota-id compute-quota-id \
          --region ${REGION}
      ```

1. クラスターポリシーを削除するには (`ClusterSchedulerConfig`):

   1. HyperPod クラスターに関連付けられているすべてのクラスターポリシーを一覧表示します。

      ```
      aws sagemaker list-cluster-scheduler-configs \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. 削除する各 `cluster-scheduler-config-id` に対して、以下のコマンドを実行してコンピューティングクォータを削除します。

      ```
      aws sagemaker delete-cluster-scheduler-config 
          --cluster-scheduler-config-id scheduler-config-id \
          --region ${REGION}
      ```

# Amazon SageMaker HyperPod タスクガバナンスでのコンピューティングクォータの割り当て
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

クラスター管理者は、購入したコンピューティングリソースを組織がどのように使用するかを決定できます。これにより、無駄なリソースやアイドル状態のリソースを削減できます。コンピューティングクォータを割り当てて、チームが未使用のリソースを相互に借りられるようにすることができます。HyperPod タスクガバナンスのコンピューティングクォータ割り当てにより、管理者はインスタンスレベル、さらにはよりきめ細かいリソースレベルでリソースを割り当てることができます。この機能により、インスタンス全体を割り当てるのではなく、個々のコンピューティングリソースをきめ細かく制御できるため、柔軟かつ効率的なリソース管理をチームに提供できます。きめ細かいレベルでの割り当てにより、従来のインスタンスレベルの割り当てに伴う非効率性が解消されます。このアプローチにより、リソース使用率を最適化し、アイドル状態のコンピューティングリソースを低減できます。

コンピューティングクォータ割り当てでは、アクセラレータ、vCPU、メモリの 3 種類のリソース割り当てをサポートしています。アクセラレータは、高速コンピューティングインスタンス内のコンポーネントであり、浮動小数点数計算、グラフィック処理、データパターンマッチングなどの機能を実行します。アクセラレータには、GPU、Trainium アクセラレータ、ニューロンコアなどがあります。マルチチーム GPU 共有の場合、異なるチームが同じインスタンスタイプから特定のGPU割り当てを受け取ることができ、アクセラレータハードウェアの使用率を最大化できます。データの前処理やモデルのキャッシュシナリオのために追加の RAM を必要とするメモリ集約型のワークロードの場合、デフォルトの GPU 対メモリ比率を超えてメモリクォータを割り当てることができます。GPU トレーニング以外にも、大量の CPU リソースを必要とする、CPU 負荷の高い前処理タスクでは、独立した CPU リソース割り当てを割り当てることができます。

値を指定すると、HyperPod タスクガバナンスは、**割り当てられたリソースをインスタンスで利用可能なリソースの総量で割った**式を使用して比率を計算します。HyperPod タスクガバナンスはこの比率を使用して、他のリソースにデフォルトの割り当てを適用しますが、これらのデフォルトをオーバーライドして、ユースケースに基づいてカスタマイズすることもできます。以下は、HyperPod タスクガバナンスが値に基づいてリソースを割り当てる方法のサンプルシナリオです。
+ **アクセラレータのみを指定** - HyperPod タスクガバナンスは、アクセラレータの値に基づいて、vCPU とメモリにデフォルトの比率を適用します。
+ **vCPU のみを指定** - HyperPod タスクガバナンスは比率を計算し、それをメモリに適用します。アクセラレータは 0 に設定されます。
+ **メモリのみを指定** - メモリ指定のワークロードを実行するにはコンピューティングリソースが必要であるため、HyperPod タスクガバナンスは比率を計算し、それを vCPU に適用します。アクセラレータは 0 に設定されます。

クォータ割り当てをプログラムで制御するには、[ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html) オブジェクトを使用し、割り当てを整数で指定します。

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

デフォルトを含む、割り当てられたすべての割り当てを確認するには、[ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) オペレーションを使用します。割り当てを更新するには、[UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html) オペレーションを使用します。

HyperPod CLI を使用してコンピューティングクォータを割り当てることもできます。HyperPod CLI の詳細については、「[Amazon EKS によってオーケストレーションされた SageMaker HyperPod クラスターでジョブを実行する](sagemaker-hyperpod-eks-run-jobs.md)」を参照してください。次の例は、HyperPod CLI を使用してコンピューティングクォータを設定する方法を説明しています。

```
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \
--image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
--pull-policy "Always" \
--tasks-per-node 1 \
--max-retry 1 \
--priority high-priority \
--namespace hyperpod-ns-team-name \
--queue-name hyperpod-ns-team-name-localqueue \
--instance-type sample-instance-type \
--accelerators 1 \
--vcpu 3 \
--memory 1 \
--accelerators-limit 1 \
--vcpu-limit 4 \
--memory-limit 2
```

 AWS コンソールを使用してクォータを割り当てるには、次の手順に従います。

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. [HyperPod クラスター] で、**[クラスターの管理]** をクリックします。

1. **[コンピューティング割り当て]** で、**[作成]** をクリックします。

1. まだインスタンスがない場合は、**[割り当てを追加]** をクリックしてインスタンスを追加します。

1. **[割り当て]** で、インスタンスまたは個々のリソースごとの割り当てを選択します。個々のリソースで割り当てると、SageMaker AI は選択した比率に基づいて他のリソースに自動的に割り当てを行います。この比率に基づく割り当てを上書きするには、対応するトグルを使用してそのコンピューティングを上書きします。

1. ステップ 4 と 5 を繰り返して、追加のインスタンスを設定します。

コンピューティングクォータを割り当てたら、HyperPod CLI または `kubectl` を使用してジョブを送信できます。HyperPod は、利用可能なクォータに基づいてワークロードを効率的にスケジュールします。

# GPU パーティションクォータの割り当て
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

コンピューティングクォータの割り当てを拡張して GPU パーティショニングをサポートすることで、GPU パーティションレベルできめ細かなリソース共有が可能になります。クラスター内のサポートされている GPUs で GPU パーティショニングを有効にすると、各物理 GPU を、定義されたコンピューティング、メモリ、ストリーミングマルチプロセッサ割り当てを持つ複数の独立した GPUs にパーティショニングできます。GPU パーティショニングの詳細については、「」を参照してください[Amazon SageMaker HyperPod での GPU パーティションの使用 HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)。特定の GPU パーティションをチームに割り当てることで、ハードウェアレベルの分離と予測可能なパフォーマンスを維持しながら、複数のチームが 1 つの GPU を共有できます。

例えば、8 つの H100 GPUs を持つ ml.p5.48xlarge インスタンスは GPU パーティションに分割でき、タスク要件に基づいて個々のパーティションを異なるチームに割り当てることができます。GPU パーティション割り当てを指定すると、HyperPod タスクガバナンスは GPU レベルの割り当てと同様に、GPU パーティションに基づいて比例 vCPU クォータとメモリクォータを計算します。このアプローチは、アイドル容量を排除し、同じ物理 GPU 上の複数の同時タスク間で費用対効果の高いリソース共有を可能にすることで、GPU 使用率を最大化します。

## コンピューティングクォータの作成
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-creating"></a>

```
aws sagemaker create-compute-quota \
  --name "fractional-gpu-quota" \
  --compute-quota-config '{
    "ComputeQuotaResources": [
      {
        "InstanceType": "ml.p4d.24xlarge",
        "AcceleratorPartition": {
            "Count": 4,
            "Type": "mig-1g.5gb"
        }
      }
    ],
    "ResourceSharingConfig": { 
      "Strategy": "LendAndBorrow", 
      "BorrowLimit": 100 
    }
  }'
```

## クォータリソースの検証
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-verifying"></a>

```
# Check ClusterQueue
kubectl get clusterqueues
kubectl describe clusterqueue QUEUE_NAME

# Check ResourceFlavors
kubectl get resourceflavor
kubectl describe resourceflavor FLAVOR_NAME
```