AWS ParallelCluster Auto Scaling - AWS ParallelCluster

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

AWS ParallelCluster Auto Scaling

このトピックで説明する Auto Scaling 戦略は、Son of Grid Engine(SGE) またはTorque Resource Manager(Torque). これらのスケジューラの 1 つを使用して展開すると、AWS ParallelClusterは、コンピューティングノードの Auto Scaling グループを管理し、必要に応じてスケジューラ設定を変更して、スケーリング機能を実装します。ベースとなる HPC クラスターの場合AWS Batch,AWS ParallelClusterによって提供される伸縮自在なスケーリング機能に依存します。AWS管理対象ジョブスケジューラです。詳細については、「」を参照してください。Amazon EC2 Auto Scaling とは()Amazon EC2 Auto Scaling ユーザーガイド

注記

前AWS ParallelClusterバージョン 2.9.0 では、Auto Scaling がSlurm Workload Manager(Slurm).

AWS ParallelCluster でデプロイされたクラスターは、さまざまな方法で伸縮自在です。設定:initial_queue_sizeは、ComputeFleet Auto Scaling グループの最小サイズの値と、必要な容量の値を指定します。設定:max_queue_sizeは、ComputeFleet Auto Scaling グループの最大サイズの値を指定します。


   基本的な Auto Scaling グループ。

スケールアップ

毎分と呼ばれるプロセスがjobwatcherは、ヘッドノードで実行されます。キュー内の保留中のジョブに必要な現在のインスタンス数を評価します。ビジー状態のノードとリクエストされたノードの合計数が、Auto Scaling グループの現在必要な値より大きい場合、さらにインスタンスを追加します。さらにジョブを送信した場合、キューが再評価され、Auto Scaling グループは指定したmax_queue_size

SGE スケジューラでは、実行する多数のスロットがジョブごとに必要です (1 つのスロットが 1 つの処理ユニット (例: vCPU) に対応します)。現在保留中のジョブを処理するために必要なインスタンスの数を評価する場合、jobwatcher は 1 つのコンピューティングノードの容量でリクエストされたスロットの合計数を除算します。利用可能な vCPUs の数に対応するコンピューティングノードの容量は、クラスター設定で指定されている Amazon EC2 インスタンスタイプによって異なります。

とSlurm(以前AWS ParallelClusterバージョン 2.9.0) およびTorqueスケジューラでは、各ジョブには状況に応じて多くのノードと多くのスロットの両方が必要になる場合があります。jobwatcher では、新しい計算要件を満たすために必要なコンピューティングノードの数をリクエストごとに決定します。たとえば、あるクラスターのコンピューティングインスタンスタイプが c5.2xlarge (8 vCPU) であり、3 つの 保留中のキューに登録されたジョブの要件が以下であると仮定します。

  • job1: 2 ノード/4 スロット

  • job2: 3 ノード/2 スロット

  • job3: 1 ノード/4 スロット

この例では、jobwatcher3 つのジョブを処理するために、Auto Scaling グループに 3 つの新しいコンピューティングインスタンスが必要です。

現在の制限: 自動スケールアップロジックは、部分的にロードされたビジーノードを考慮しません。たとえば、ジョブを実行しているノードは、空のスロットがある場合でも、ビジー状態と見なされます。

スケールダウン

各コンピュートノードでnodewatcherと呼ばれるプロセスを実行し、ノードのアイドル時間を評価します。インスタンスは、次の条件のいずれも満たされた場合に終了します。

  • インスタンスで scaledown_idletime より長い期間ジョブが実行されていない (デフォルト設定は 10 分)

  • クラスター内に保留中のジョブがない

インスタンスを終了するにはnodewatcherを呼び出します。TerminateInstanceInAutoScalingGroupAPI コールです。その結果、Auto Scaling グループのサイズが Auto Scaling グループの最小サイズを上回ると、インスタンスは削除されます。このプロセスでは、実行中のジョブに影響を及ぼすことなく、クラスターをスケールダウンすることができます。また、固定ベース数のインスタンスにより伸縮自在なクラスターを有効にします。

静的クラスター

Auto Scaling の値は、HPC の場合も他のワークロードと同じです。ここでの唯一の違いは、AWS ParallelCluster には、具体的にインテリジェントな方法で操作させるコードがあることです。たとえば、静的クラスターが必要な場合、initial_queue_sizeおよびmax_queue_sizeパラメーターを、必要なクラスターの正確なサイズに設定します。maintain_initial_sizeパラメータを true に設定します。これにより、ComputeFleet Auto Scaling グループは、最小、最大および必要な容量に対して同じ値を持つようになります。