AWS ParallelCluster
HPC (ハイパフォーマンスコンピューティング) クラスターを AWS 上に構築・管理するオープンソースツール
何ができるか
AWS ParallelCluster は、HPC クラスターを AWS 上に自動構築するオープンソースのクラスター管理ツールです。Slurm ジョブスケジューラー、共有ファイルシステム (EFS、FSx for Lustre)、コンピュートノードの自動スケーリングを設定ファイル 1 つで構築します。ジョブの投入量に応じてコンピュートノードが自動的に増減します。
どのような場面で使うか
科学技術計算 (流体力学、分子動力学)、ゲノム解析、気象シミュレーション、金融リスク計算、機械学習のトレーニングに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
レンタルスーパーコンピューターに例えられます。必要な時に必要な台数のコンピューター (ノード) を借りて計算を実行し、終わったら返却します。計算量に応じて自動的にコンピューターの台数が増減します。
ParallelCluster とは
この記事は約 2 分で読めます。 AWS ParallelCluster は、HPC クラスターの構築を自動化するツールです。YAML 設定ファイルでヘッドノード、コンピュートノード、ストレージ、ネットワークを定義し、`pcluster create-cluster` コマンドで CloudFormation スタックとしてデプロイします。Slurm でジョブを投入すると、キューに応じてコンピュートノードが自動起動します。
スケーリングとストレージ
ParallelCluster はジョブキューのペンディングジョブ数に応じてコンピュートノードを自動スケーリングします。スポットインスタンスを活用すると、オンデマンドの最大 90% 割引でコンピュートコストを削減できます。共有ストレージは FSx for Lustre (高スループット)、EFS (汎用)、EBS (ヘッドノード) から選択できます。EFA (Elastic Fabric Adapter) で MPI 通信の高速化も可能です。
はじめかた
pip で pcluster CLI をインストールし、YAML 設定ファイルを作成します。`pcluster create-cluster` でクラスターを作成し、SSH でヘッドノードに接続します。Slurm の sbatch コマンドでジョブを投入すると、コンピュートノードが自動起動してジョブを実行します。
Azure・オンプレミスとの比較
AWS の優位点
- YAML 設定ファイル 1 つで HPC クラスター全体を自動構築し、CloudFormation で管理
- ジョブキューに応じたコンピュートノードの自動スケーリングで、アイドル時のコストをゼロに
- スポットインスタンスの活用でオンデマンドの最大 90% 割引を実現
注意点
- ParallelCluster 自体は無料のオープンソースツール。EC2、EBS、FSx などの AWS リソース料金が発生
- スポットインスタンスの中断に耐えられるワークロード (チェックポイント対応) ではコストを大幅に削減可能
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。