翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クラスター容量のサイズと更新
クラスターの容量は、クラスターがスケーリングできるコンピューティングノードの数によって定義されます。コンピューティングノードは AWS ParallelCluster 、設定 のコンピューティングリソース内で定義された Amazon EC2 インスタンスによってバックアップされ(Scheduling/SlurmQueues/ComputeResources)
、Slurmパーティションに 1:1 をマッピング(Scheduling/SlurmQueues)
するキューに編成されます。
コンピューティングリソース内では、常にクラスターで実行し続ける必要があるコンピューティングノード (インスタンス) の最小数 () MinCount
と、コンピューティングリソースがスケールできるインスタンスの最大数 (MaxCount
3 ) を設定できます。
クラスターの作成時またはクラスターの更新時に、 は、クラスターで定義された各コンピューティングリソース (Scheduling/SlurmQueues/ ComputeResources
) MinCount
に対して、 で設定された数だけ Amazon EC2 インスタンス AWS ParallelCluster を起動します。クラスター内のコンピューティングリソースの最小限のノードをカバーするために起動されたインスタンスは、静的ノード と呼ばれます。起動すると、特定のイベントまたは条件が発生しない限り、静的ノードはクラスター内で永続的になり、システムによって終了されることはありません。このようなイベントには、例えば、 Slurmまたは Amazon EC2 ヘルスチェックの失敗や、Slurmノードステータスの DRAIN または DOWN への変更が含まれます。
Amazon EC2 インスタンスは、 から ‘MaxCount - MinCount’
(MaxCount
1
を引いた値で、クラスターの負荷の増加に対応するためにオンデマンドで起動され、動的ノード と呼ばれます。 MinCount)
その性質はエフェメラルであり、保留中のジョブを処理するために起動され、クラスター設定Scheduling/SlurmSettings/ScaledownIdletime
で で定義された期間 (デフォルト: 10 分) アイドル状態になると終了します。
静的ノードと動的ノードは、次の命名スキーマに準拠しています。
-
が
<Queue/Name>-st-<ComputeResource/Name>-<num>
である静的ノード<num> = 1..ComputeResource/MinCount
-
<Queue/Name>-dy-<ComputeResource/Name>-<num>
動的ノード<num> = 1..(ComputeResource/MaxCount - ComputeResource/MinCount)
例えば、次の AWS ParallelCluster 設定があるとします。
Scheduling: Scheduler: Slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 150
次のノードは で定義されます。 Slurm
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
コンピューティングリソースに がある場合MinCount == MaxCount
、対応するすべてのコンピューティングノードは静的になり、すべてのインスタンスはクラスターの作成/更新時に起動され、稼働状態が維持されます。例:
Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: c5xlarge Instances: - InstanceType: c5.xlarge MinCount: 100 MaxCount: 100
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
クラスター容量の更新
クラスター容量の更新には、キューの追加または削除、コンピューティングリソース、コンピューティングリソースMinCount/MaxCount
の の変更が含まれます。 AWS ParallelCluster バージョン 3.9.0 以降では、キューのサイズを小さくするには、クラスターの更新が行われる前にコンピューティングフリートを停止するか、 の TERMINATE QueueUpdateStrategyに設定する必要があります。次の場合、コンピューティングフリートを停止したり、 を TERMINATE QueueUpdateStrategyに設定したりする必要はありません。
-
Scheduling/ への新しいキューの追加
SlurmQueues
-
キュー
Scheduling/SlurmQueues/ComputeResources
への新しいコンピューティングリソースの追加 -
コンピューティングリソース
MaxCount
の を増やす -
コンピューティングリソース MinCount の増加と MaxCount 、少なくとも同じ量の同じコンピューティングリソースの増加
考慮事項と制約事項
このセクションは、クラスター容量のサイズ変更時に考慮すべき重要な要因、制約、または制限事項の概要を説明することを目的としています。
-
名前が
Scheduling/https://docs.aws.amazon.com/parallelcluster/latest/ug/Scheduling-v3.html#Scheduling-v3-SlurmQueuesSlurmQueues
のすべてのコンピューティングノードからキューを削除すると<Queue/Name>-*
、静的と動的の両方がSlurm設定から削除され、対応する Amazon EC2 インスタンスが終了します。 -
キュー
Scheduling/SlurmQueues/https://docs.aws.amazon.com/parallelcluster/latest/ug/Scheduling-v3.html#Scheduling-v3-SlurmQueues-ComputeResourcesComputeResources
からコンピューティングリソースを削除すると、静的と動的の両方の名前が<Queue/Name>-*-<ComputeResource/Name>-*
のすべてのコンピューティングノードがSlurm設定から削除され、対応する Amazon EC2 インスタンスが終了します。
コンピューティングリソースの MinCount
パラメータを変更する場合、 を に等しくMaxCount
保つ場合 MinCount
(静的容量のみ)、 MaxCount
が より大きい場合 MinCount
(静的容量と動的容量を混在させる) の 2 つの異なるシナリオを区別できます。
静的ノードのみによる容量の変更
-
の場合
MinCount == MaxCount
、MinCount
(および )MaxCount
を増やすと、クラスターは静的ノードの数を の新しい値に拡張して設定MinCount
<Queue/Name>-st-<ComputeResource/Name>-<new_MinCount>
され、システムは新しい必要な静的容量を満たすために Amazon EC2 インスタンスの起動を試行し続けます。 -
の場合
MinCount == MaxCount
、N の量を減らすMinCount
(および )MaxCount
と、クラスターは最後の N 個の静的ノードを削除して設定<Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<old_MinCount>]
され、システムは対応する Amazon EC2 インスタンスを終了します。-
初期状態
MinCount = MaxCount = 100
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
MinCount
および-30
の更新MaxCount: MinCount = MaxCount = 70
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
-
混合ノードによる容量の変更
の場合MinCount < MaxCount
、N の量MinCount
だけ増やすと ( MaxCount
は変更されないと仮定)、クラスターは静的ノードの数を MinCount
( ): の新しい値に拡張して設定<Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N>
され、システムは Amazon EC2 old_MinCount + N
インスタンスを起動して、新しい必要な静的容量を満たしようとし続けます。さらに、コンピューティングリソースのMaxCount
容量を満たすために、クラスター設定は最後の N 個の動的ノード を削除することで更新<Queue/Name>-dy-<ComputeResource/Name>-[<MaxCount - old_MinCount - N>...<MaxCount - old_MinCount>]
され、システムは対応する Amazon EC2 インスタンスを終了します。
-
初期状態:
MinCount = 100; MaxCount = 150
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
+30 を に更新する
MinCount : MinCount = 130 (MaxCount = 150)
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]
の場合MinCount < MaxCount
、同じ量の N MaxCount
の MinCount
と を増やすと、クラスターは静的ノードの数を MinCount
( old_MinCount + N
): の新しい値に拡張して設定<Queue/Name>-st-<ComputeResource/Name>-<old_MinCount + N>
され、システムは新しい必要な静的容量を満たすために Amazon EC2 インスタンスを起動しようとし続けます。さらに、新しい を優先する動的ノードの数は変更されません。
MaxCount
値。
-
初期状態:
MinCount = 100; MaxCount = 150
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
+30 を に更新する
MinCount : MinCount = 130 (MaxCount = 180)
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 130 idle queue1-st-c5xlarge-[1-130]
の場合MinCount < MaxCount
、N MinCount
の量を減らすと ( MaxCount
は変更されないまま)、クラスターは最後の N 個の静的ノードを削除して設定<Queue/Name>-st-<ComputeResource/Name>-[<old_MinCount - N>...<old_MinCount>
され、システムは対応する Amazon EC2 インスタンスを終了します。さらに、コンピューティングリソースのMaxCount
容量を満たすために、クラスター設定は、ギャップを埋めるために動的ノードの数を拡張することで更新されますMaxCount - new_MinCount: <Queue/Name>-dy-<ComputeResource/Name>-[1..<MazCount - new_MinCount>]
。この場合、動的ノードであるため、スケジューラが新しいノードで保留中のジョブを持たない限り、新しい Amazon EC2 インスタンスは起動されません。
-
初期状態:
MinCount = 100; MaxCount = 150
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
で -30 を更新する
MinCount : MinCount = 70 (MaxCount = 120)
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-80] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
の場合MinCount < MaxCount
、減少MinCount
して同じ量の N MaxCount
の場合、クラスターは最後の N 個の静的ノードを削除して設定<Queue/Name>-st-<ComputeResource/Name>-<old_MinCount - N>...<oldMinCount>]
され、システムは対応する Amazon EC2 インスタンスを終了します。
さらに、新しいMaxCount
値を適用するために動的ノードの数を変更することはありません。
-
初期状態:
MinCount = 100; MaxCount = 150
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
で -30 を更新する
MinCount : MinCount = 70 (MaxCount = 120)
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 80 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 70 idle queue1-st-c5xlarge-[1-70]
の場合MinCount < MaxCount
、N MaxCount
の量を減らすと ( MinCount
は変更されないまま)、クラスターは最後の N 個の動的ノードを削除して設定<Queue/Name>-dy-<ComputeResource/Name>-<old_MaxCount - N...<oldMaxCount>]
され、running.No が静的ノードに与える影響が予想される場合に、システムは対応する Amazon EC2 インスタンスを終了します。
-
初期状態:
MinCount = 100; MaxCount = 150
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 50 idle~ queue1-dy-c5xlarge-[1-50] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
-
で -30 を更新する
MaxCount : MinCount = 100 (MaxCount = 120)
-
$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 20 idle~ queue1-dy-c5xlarge-[1-20] queue1* up infinite 100 idle queue1-st-c5xlarge-[1-100]
ジョブへの影響
ノードが削除され、Amazon EC2 インスタンスが終了したすべての場合、削除されたノードで実行されているスバッチジョブは、ジョブ要件を満たす他のノードがない限り、再キューに入れられます。この場合、ジョブは NODE_FAIL ステータスで失敗し、キューから消えます。その場合は、手動で再送信する必要があります。
クラスターのサイズ変更更新を実行する予定がある場合は、計画された更新中に削除されるノードでジョブが実行されないようにできます。これは、メンテナンスでノードを削除するように設定することで可能です。メンテナンスでノードを設定しても、最終的にノードですでに実行されているジョブには影響しないことに注意してください。
クラスターのサイズ変更が計画されているときに、ノード ] を削除するとしますqeueu-st-computeresource-[9-10
。次のコマンドを使用してSlurm予約を作成できます。
sudo -i scontrol create reservation ReservationName=maint_for_update user=root starttime=now duration=infinite flags=maint,ignore_jobs nodes=qeueu-st-computeresource-[9-10]
これにより、ノード maint_for_update
に という名前Slurmの予約が作成されますqeueu-st-computeresource-[9-10]
。予約が作成されてから、ノード にジョブを実行できなくなりますqeueu-st-computeresource-[9-10]
。予約によって、ジョブが最終的にノード に割り当てられるのを防ぐことはできないことに注意してくださいqeueu-st-computeresource-[9-10]
。
クラスターのサイズ変更の更新後に、サイズ変更の更新中に削除されたノードでのみSlurm予約が設定されている場合、メンテナンス予約は自動的に削除されます。代わりに、クラスターのサイズ変更の更新後にまだ存在するノードにSlurm予約を作成した場合は、次のコマンドを使用して、サイズ変更の更新の実行後にノードのメンテナンス予約を削除できます。
sudo -i scontrol delete ReservationName=maint_for_update
Slurm 予約の詳細については、こちらの
容量変更時のクラスター更新プロセス
スケジューラの設定が変更されると、クラスターの更新プロセス中に次の手順が実行されます。
-
停止 AWS ParallelCluster
clustermgtd (supervisorctl stop clustermgtd)
-
設定から AWS ParallelCluster 更新されたSlurmパーティション設定を生成する
-
再起動
slurmctld
(Chef サービスレシピを通じて実行) -
slurmctld
ステータスを確認する(systemctl is-active --quiet slurmctld.service)
-
リロードSlurm設定
(scontrol reconfigure)
-
clustermgtd (supervisorctl start clustermgtd)
を起動する