

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

# バージョン 3.7.x での Slurm 動的ノード割り当て戦略
<a name="scheduler-dynamic-node-allocation-v3-3.7.x"></a>

ParallelCluster は 次の 2 種類の動的ノード割り当て戦略を使用してクラスターをスケールします。
+ 

**リクエストされた利用可能なノード情報に基づく割り当て:**
  + **全ノード再開**または**ノードリスト**のスケーリング:

    ParallelCluster は、Slurm の `ResumeProgram` の実行時に、Slurm がリクエストしたノードリストの名前のみに基づいてクラスターをスケールアップします。コンピューティングリソースはノード名のみでノードに割り当てられます。ノード名のリストは複数のジョブにまたがる場合があります。
  + **ジョブレベルの再開**または**ジョブレベル**のスケーリング。

    ParallelCluster は、各ジョブの要件、ジョブに割り当てられている現在のノード数、再開する必要があるノードに基づいて、クラスターをスケールアップします。ParallelCluster は、この情報を `SLURM_RESUME_FILE` 環境変数から取得します。
+ 

**Amazon EC2 起動戦略による割り当て:**
  + **ベストエフォート**のスケーリング:

    ParallelCluster は、最小ターゲット容量が 1 に等しい Amazon EC2 起動インスタンス API コールを使用してクラスターをスケールアップし、リクエストされたノードをサポートするのに必要なインスタンスのすべてとは言わないまでも一部を起動します。
  + **オールオアナッシング**スケーリング:

    ParallelCluster は、リクエストされたノードをサポートするのに必要なすべてのインスタンスが起動された場合にのみ成功する Amazon EC2 起動インスタンス API コールを使用してクラスターをスケールアップします。この場合、最小ターゲット容量がリクエストされた容量の合計に等しい Amazon EC2 起動インスタンス API を呼び出します。

デフォルトでは、ParallelCluster は**ベストエフォート**の Amazon EC2 起動戦略で**ノードリスト**のスケーリングを使用して、リクエストされたノードをサポートするのに必要なインスタンスのすべてとは言わないまでも一部を起動します。送信されたワークロードに対応できるように、できるだけ多くの容量をプロビジョニングしようとします。

ParallelCluster は、バージョン 3.7.0 以降、**排他モード**で送信されたジョブに対し、**オールオアナッシング**の EC2 起動戦略で**ジョブレベル**のスケーリングを採用しています。排他モードでジョブを送信すると、そのジョブは割り当てられたノードに排他的にアクセスできるようになります。詳細については、「Slurm ドキュメント」の「[EXCLUSIVE](https://slurm.schedmd.com/slurm.conf.html#OPT_EXCLUSIVE)」を参照してください。

排他モードでジョブを送信するには。
+ Slurm ジョブをクラスターに送信する際に排他フラグを渡します。例えば、`sbatch ... --exclusive`。

  OR
+ [`JobExclusiveAllocation`](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-JobExclusiveAllocation) を `true` に設定したクラスターキューにジョブを送信します。

排他モードでジョブを送信する場合。
+ ParallelCluster は、現在、最大 500 個のノードを含むように起動リクエストをバッチ処理します。ジョブが 500 個を超えるノードをリクエストすると、ParallelCluster は 500 個のノードのセットごとに**オールオアナッシング**の起動リクエストを行い、残りのノードに対しては追加の起動リクエストを行います。
+ ノードの割り当てが単一のコンピューティングリソース内で行われる場合、ParallelCluster は 500 個のノードのセットごとに**オールオアナッシング**の起動リクエストを行い、残りのノードに対しては追加の起動リクエストを行います。1 つの起動リクエストが失敗すると、ParallelCluster はすべての起動リクエストによって作成された未使用の容量を終了します。
+ ノードの割り当てが複数のコンピューティングリソースにまたがる場合、ParallelCluster はコンピューティングリソースごとに**オールオアナッシング**の起動リクエストを行う必要があります。これらのリクエストもバッチ処理されます。1 つのコンピューティングリソースの起動リクエストが失敗すると、ParallelCluster はすべてのコンピューティングリソースの起動リクエストによって作成された未使用の容量を終了します。

**オールオアナッシング**の起動戦略を使用した**ジョブレベル**スケーリングの既知の制限事項
+ 単一のインスタンスタイプを持つコンピューティングリソースのジョブを、複数のアベイラビリティーゾーンにまたがるキューに送信する場合、**オールオアナッシング**の EC2 起動 API コールは、すべての容量を単一のアベイラビリティーゾーンで提供できる場合にのみ成功します。
+ 複数のインスタンスタイプを持つコンピューティングリソースのジョブを、単一のアベイラビリティーゾーンのキューに送信する場合、**オールオアナッシング**の Amazon EC2 起動 API コールは、すべての容量を単一のインスタンスタイプで提供できる場合にのみ成功します。
+ 複数のインスタンスタイプを持つコンピューティングリソースのジョブを、複数のアベイラビリティーゾーンにまたがるキューに送信する場合、**オールオアナッシング**の Amazon EC2 起動 API コールはサポートされず、ParallelCluster は代わりに**ベストエフォート**のスケーリングを実行します。