AWS ParallelCluster 3.8.0 でクラスタースケーリング戦略が追加されコンピュートノードの起動の仕方を選べるようになりました
2023 年 12 月 19 日に AWS ParallelCluster 3.8.0 がリリースされました。v3.7.0 から約 4 か月ぶりのマイナーアップデートです。
3.8.x 系のサポートは 2025 年 6 月 30 日までです。
AWS ParallelCluster support policy - AWS ParallelCluster
注目のアップデート
個人的に注目しているポイントや、このアップデートの目玉をピックアップしています。リリースノートからはアップデート前後の違いを把握することが難しいため、私のわかる範囲で補足します。
- EC2 Capacity Blocks for ML を新たにサポート
- カスタム AMI で作成した Rocky Linux 8 を新たにサポート
- コンピュートノードのクラスタースケーリング戦略を設定できるパタメータ追加
- ヘッドノードの
/home
に Amazon EFS をマウントできるようになった - ヘッドノードに対して CloudWatch アラームが設定された
アップデート詳細はリリースノート、ドキュメントの更新履歴をご確認ください。
- Release AWS ParallelCluster v3.8.0 · aws/aws-parallelcluster
- Release notes and document history - AWS ParallelCluster
EC2 Capacity Blocks for ML を新たにサポート
2023 年 11 月に発表された EC2 Capacity Blocks for ML が ParallelCluster にも対応しました。
日付指定で GPU インスタンスの利用を予約(キャパシティを確保)できる新しいインスタンスの予約体系です。 最近 GPU インスタンスはオンデマンド起動でも、キャパシティ不足で起動できないことが多々あります。機会学習用途で ParallelCluster から GPU インスタンスを起動し 1 日単位で使うことが予定されている場合はご検討ください。
現時点でキャパシティを予約できるのは、オハイオリージョンでかつ、p5.48xlarge インスタンスのみとなっています。リージョンも、インスタンスタイプも限定的です。
カスタム AMI で作成した Rocky Linux 8 を新たにサポート
新たな OS として Rocky Linux 8 をサポートしました。ですが、ParallelCluster 公式の AMI の提供はありません。自前で作成したカスタム AMI を ParallelCluster でサポートしてくれるかたちです。
なかなか不思議な対応状況ですね。Rocky Linux 8 を利用したい強いニーズがあったのでしょうか。個人的には Amazon Linux 2023 の対応もお願いしたいです。
クラスタースケーリング戦略を設定できるパタメータ追加
コンピュートノードのスケーリングの仕方を 3 つのタイプの中から選択できるようになりました。デフォルトのクラスタスケーリング戦略はall-or-nothing
になっています。こちらは 3 つの戦略の中では最もコストを抑えた動きをする戦略となっていました。
- all-or-nothing
- スケーリング後のアイドルインスタンスを回避するのが目的の戦略
- 完全にスケールアウトするか、まったくしないかどちらかの動きをする
- greedy-all-or-nothing
- スケーリング後のアイドルインスタンスを回避するのが目的の戦略(1 と同じ)
- all-or-nothing より高いスループットを達成するために一時的にオーバースケーリングが可能
- best-effort
- スループットを優先とした戦略
- アイドルリソースが増えるリスクと引き換えに、ジョブが要求した分だけのノードを起動する
起動できるインスタンス数の制限など細かい仕様がありますので、ご検討際はドキュメントをご確認ください。
Scheduling section - AWS ParallelCluster
ヘッドノードの /home に Amazon EFS をマウントできる
ヘッドノードの /home
をコンピュートノードへ共有されています。ヘッドノードの EBS をコンピュートノードへ共有していると同義です。その/home
に EFS をマウントできるようになりました。
EFS に変更するメリットはコンピュートノードがスケールアウト時、 NFS エクスポートがボトルネックになることを回避できる。ただし、小さなファイルの読み書きがある場合は従来の EBS が推奨とのことです。
コンピュートノードが複数台スケールアウトするなら、/home
に EFS マウントを検討しましょう。EFS は現在推奨モードである Elastic スループットモードが前提となっている感じがするため、/home
へ読み書きに対して課金が発生します。使い方に合わせた選択をお願いします。
HeadNode section - AWS ParallelCluster
ヘッドノードに対して CloudWatch アラームが設定された
ヘッドノードに対して以下の CloudWatch アラームがデフォルトで設定されるようになりました。
- EC2 の StatusCheck
- CPU 使用率 90% 超過
- メモリ使用率 90% 超過
- ディスク使用率 90% 超過(ルートボリューム)
ParallelCluster 3.8 のクラスターをデプロイして確認してみました。しきい値を超過しても通知まではされません。ヘッドノードで間違ってスクリプトを実行してしまい高負荷になったときや、ローカルディスク(EBS)の容量不足になったときには役に立つかもしれません。
どうやらメモリ使用率を取得できているということは、カスタムメトリクスで取得するようになったようですね。
おわりに
ParallelCluster 3.8 のクラスターを用意したので、個々の機能を検証して気になるものがあれば改めてブログで共有します。