AWS ParallelCluster

HPC (高性能計算) クラスターを AWS 上に自動構築し、Slurm ジョブスケジューラーでバッチ計算を効率的に実行するオープンソースツール

概要

AWS ParallelCluster は、HPC (High Performance Computing) ワークロード向けのクラスター環境を AWS 上に自動構築するオープンソースのクラスター管理ツールです。Slurm ジョブスケジューラーを標準搭載し、計算ノードの自動スケーリング、共有ファイルシステム (FSx for Lustre、EFS) のマウント、EFA (Elastic Fabric Adapter) による低レイテンシノード間通信を設定ファイル一つで構成します。流体力学シミュレーション、ゲノム解析、金融リスク計算など、大規模並列計算を必要とする科学技術計算に適しています。

クラスター構成と自動スケーリング設計

ParallelCluster のクラスターは、ヘッドノード (ジョブ投入・スケジューリング) と計算ノード (実際の演算実行) で構成されます。YAML 形式の設定ファイルでインスタンスタイプ、最小/最大ノード数、サブネット、セキュリティグループを宣言的に定義し、pcluster create-cluster コマンドで CloudFormation スタックとしてデプロイされます。Slurm の自動スケーリング統合により、ジョブキューにジョブが投入されると必要な計算ノードが自動的に起動し、ジョブ完了後はアイドルタイムアウトを経て自動終了します。複数のキュー (パーティション) を定義して、GPU インスタンス用キュー (p4d.24xlarge)、メモリ最適化キュー (r6i.32xlarge)、汎用キュー (c6i.32xlarge) を使い分ける構成が一般的です。スポットインスタンスの利用もキュー単位で設定でき、中断耐性のあるジョブにはスポットを割り当ててコストを 60-90% 削減できます。

高速ネットワークと共有ファイルシステム

HPC ワークロードではノード間通信のレイテンシがスケーリング効率に直結するため、EFA (Elastic Fabric Adapter) の利用が重要です。EFA は OS バイパスの RDMA 通信を提供し、MPI (Message Passing Interface) アプリケーションのノード間通信レイテンシをマイクロ秒レベルに抑えます。ParallelCluster の設定で EFA を有効にすると、計算ノードに EFA デバイスが自動的にアタッチされ、libfabric ライブラリがインストールされます。共有ファイルシステムとしては、FSx for Lustre が HPC ワークロードに最適です。数百 GB/s のスループットと数百万 IOPS を提供し、S3 バケットとの自動同期機能により、入力データの S3 からの読み込みと計算結果の S3 への書き戻しを透過的に行えます。小規模なジョブや設定ファイルの共有には EFS を併用し、大規模 I/O には FSx for Lustre を使う二重マウント構成が実務では効果的です。

科学技術計算での実践パターンとコスト管理

計算流体力学 (CFD) シミュレーションでは、OpenFOAM や ANSYS Fluent を ParallelCluster 上で実行し、数百ノードでメッシュを分割して並列計算します。ゲノム解析では、BWA-MEM2 によるリード配列のアライメントや GATK によるバリアントコールを Slurm のジョブアレイで数千サンプル並列処理するパターンが一般的です。コスト管理では、Slurm のアカウンティング機能でユーザー・プロジェクト単位の計算時間を記録し、AWS Cost Explorer のタグベースレポートと突合して部門別のチャージバックを実現します。クラスターのライフサイクル管理として、計算が不要な夜間・週末はクラスター自体を削除し、必要時に再作成する運用も ParallelCluster の迅速なプロビジョニング (10-15 分) により現実的です。カスタム AMI を事前にビルドしておけば、ソフトウェアのインストール時間を省略してクラスター起動を高速化できます。

共有するXB!