AWS ParallelCluster で構築する HPC 環境 - Slurm クラスタの自動構築とスケーリング
ParallelCluster による Slurm ベースの HPC クラスタ自動構築、スポットインスタンス活用、EFA による高速ノード間通信を解説します。
ParallelCluster の概要
この記事は約 3 分で読めます。 ParallelCluster は AWS が提供するオープンソースの HPC クラスタ管理ツールです。YAML 設定ファイルでクラスタの構成 (インスタンスタイプ、ノード数、ストレージ、ネットワーク) を定義し、pcluster create-cluster コマンドで CloudFormation スタックとして自動構築します。Slurm ジョブスケジューラが標準で構成され、既存の Slurm ジョブスクリプトをそのまま使用できます。計算流体力学 (CFD)、分子動力学、ゲノム解析、気象シミュレーション、金融リスク計算など、大規模な並列計算ワークロードに使用されています。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
自動スケーリングとコスト最適化
ParallelCluster の自動スケーリングは Slurm のジョブキューと連動します。ジョブが投入されるとコンピュートノードが自動的に起動し、ジョブ完了後にアイドル状態が一定時間続くとノードが自動的に終了します。ジョブがない時間帯はコンピュートノード数がゼロになり、ヘッドノードの料金のみが発生します。スポットインスタンスを使用すると HPC ワークロードのコストを最大 90% 削減できます。複数のインスタンスタイプを指定するキャパシティタイプ設定で、スポットの可用性を向上させます。チェックポイント対応のアプリケーションでは、スポットの中断時にジョブを自動的に再キューイングする設定が可能です。
EFA と共有ストレージ
EFA (Elastic Fabric Adapter) は HPC ワークロード向けの高速ネットワークインターフェースで、100 Gbps のノード間通信を提供します。MPI (Message Passing Interface) ベースの並列計算で、ノード間のデータ交換がボトルネックになるワークロードに有効です。ParallelCluster の設定で EFA を有効化するだけで、コンピュートノードに自動的に EFA が構成されます。共有ストレージは FSx for Lustre、EFS、EBS の中から選択できます。FSx for Lustre は最大数百 GB/s のスループットを提供し、大規模データセットの並列読み取りに最適です。S3 との統合で、S3 上のデータを Lustre ファイルシステムに自動的にインポートし、計算結果を S3 にエクスポートできます。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
ParallelCluster は Slurm ベースの HPC クラスタを AWS 上に自動構築するツールです。自動スケーリングでジョブに応じたリソース管理を実現し、スポットインスタンスでコストを削減し、EFA で高速ノード間通信を提供します。オンプレミスの HPC クラスタからの移行や、バースト的な計算需要への対応に最適です。
AWS の優位点
- YAML 設定ファイルで Slurm ベースの HPC クラスタを自動構築し、ヘッドノード、コンピュートノード、共有ストレージが数分でプロビジョニングされる
- ジョブキューに応じてコンピュートノードが自動スケールし、ジョブがない時間帯はノード数がゼロになりコストを最小化できる
- EFA (Elastic Fabric Adapter) で 100 Gbps のノード間通信を実現し、MPI ベースの並列計算を高速化できる
- スポットインスタンスとの統合で HPC ワークロードのコストを最大 90% 削減できる
- FSx for Lustre との統合で高スループットの共有ファイルシステムを提供し、大規模データセットの並列アクセスに対応できる