AWS ParallelCluster で構築する HPC 環境 - Slurm クラスタの自動構築とスケーリング

HPC クラスタを CloudFormation ベースで自動構築し、Slurm スケジューラでジョブを管理する。スポットインスタンスによるコスト最適化も紹介します。

ParallelCluster の概要

ParallelCluster は AWS が提供するオープンソースの HPC クラスタ管理ツールです。YAML 設定ファイルでクラスタの構成 (インスタンスタイプ、ノード数、ストレージ、ネットワーク) を定義し、pcluster create-cluster コマンドで CloudFormation スタックとして自動構築します。Slurm ジョブスケジューラが標準で構成され、既存の Slurm ジョブスクリプトをそのまま使用できます。計算流体力学 (CFD)、分子動力学、ゲノム解析、気象シミュレーション、金融リスク計算など、大規模な並列計算ワークロードに使用されています。

自動スケーリングとコスト最適化

ParallelCluster の自動スケーリングは Slurm のジョブキューと連動します。ジョブが投入されるとコンピュートノードが自動的に起動し、ジョブ完了後にアイドル状態が一定時間続くとノードが自動的に終了します。ジョブがない時間帯はコンピュートノード数がゼロになり、ヘッドノードの料金のみが発生します。スポットインスタンスを使用すると HPC ワークロードのコストを最大 90% 削減できます。複数のインスタンスタイプを指定するキャパシティタイプ設定で、スポットの可用性を向上させます。チェックポイント対応のアプリケーションでは、スポットの中断時にジョブを自動的に再キューイングする設定が可能です。

EFA と共有ストレージ

EFA (Elastic Fabric Adapter) は HPC ワークロード向けの高速ネットワークインターフェースで、 100 Gbps のノード間通信を提供します。 MPI (Message Passing Interface) ベースの並列計算で、ノード間のデータ交換がボトルネックになるワークロードに有効です。 ParallelCluster の設定で EFA を有効化するだけで、コンピュートノードに自動的に EFA が構成されます。共有ストレージは FSx for Lustre 、 EFSEBS の中から選択できます。 FSx for Lustre は最大数百 GB/s のスループットを提供し、大規模データセットの並列読み取りに最適です。 S3 との統合で、 S3 上のデータを Lustre ファイルシステムに自動的にインポートし、計算結果を S3 にエクスポートできます。 ParallelCluster のアーキテクチャを網羅的に学ぶなら、技術書 (Amazon)を参照してください。

まとめ

ParallelCluster は Slurm ベースの HPC クラスタを AWS 上に自動構築するツールです。自動スケーリングでジョブに応じたリソース管理を実現し、スポットインスタンスでコストを削減し、EFA で高速ノード間通信を提供します。オンプレミスの HPC クラスタからの移行や、バースト的な計算需要への対応に最適です。