Amazon Web Services ブログ
AWS上でのハーモニー数値気象予報モデルの実行
この記事は、2021 年 9 月 30 日に Jacob Poulsen と Karthik Raman によって投稿された「Running the Harmonie numerical weather prediction model on AWS」をソリューションアーキテクトの小野が翻訳したものです。
この投稿は、Danish Meteorological Institute (デンマーク気象協会、DMI) のシニア HPC リサーチャーの Jacob Poulsen 及び AWS のシニア HPC ソリューションアーキテクトの Karthik Raman の寄稿によるものです。
デンマーク気象協会 (DMI) はデンマーク王国全体の大気、気候、海洋モデルの作成を担当しています。DMI と協力してハーモニー数値気象予報モデル (Harmonie Numerical Weather Prediction) を使用した完全な数値予報 (NWP) サイクルのデータフローを AWS 上に移行して実行しました。移行と運用に関するレポートは ACCORD コミュニティニュースレターで確認できます。
このブログ投稿では、そのレポートを拡張し AWS で Harmonie モデルの予測コンポーネントを実行した最初の結果を示します。また、これらの AWS で実行した現時点のありのままの結果を、Cray XC40 及び Intel Xeon ベースの Cray XC50 のスーパーコンピュータで達成したものと共に示します。
背景
デンマーク気象協会 (DMI) はデンマークに於ける気象庁で、デンマーク王国全体の大気、気候、海洋モデルの作成・実行を担当しています。DMI の活動は数値予報 (NWP) を中心としています。DMI は United Weather Centre の一員であり、ここで研究された NWP ワークフローは United Weather Centre West の数値予報向けの共通の設定に向けた取り組みに由来しています。United Weather Centre の 10 のメンバー全員と大規模な NWP モデル開発コミュニティがここで Harmonie モデルと呼ぶ同一の NWP モデルを信頼しています。
最近私達は ACCORD のニュースレターで、AWS 上で完全な NWP サイクルのデータフローを Harmonie モデルで実行し移行した経験の詳細を発表しました。そのレポートでは NWP の運用をクラウドコンピューティングで行なう妥当性の向上や、多数の天気予報や気候調査分野でのクラウドコンピューティング活用のユースケースについても触れています。
Harmonie テストケース
評価のために本番環境と同じ 2km あたり 1920x1620x90 のグリッドサイズの解像度を持つワークロードを利用しました。このワークロードは現在 United Weather Centre West の数値予報の共通設定に向けた共同作業として開発されています。典型的な予報の長さは 1 時間単位で 48 時間のものです。予報の為の計算時間の目標は 40 分で、1 時間ごと実行サイクルで後処理も必要となります。この評価のために、予報の長さを 48 時間から 1 時間に短縮しました。成功の指標は 50 秒の計算時間で 1 時間の予報を提供することでした。
インスタンスの評価
Amazon EC2 の C5 インスタンスは AWS Nitro system 上に構築され、また AWS カスタムの Intel (R) Xeon (R) Platinum 8000 シリーズのプロセッサを搭載しています。C5n インスタンスは第 4 世代のカスタム Nitro card と Elastic Network Adapter (ENA) デバイスを利用して単一のインスタンスで 100Gbps のネットワークスループットを提供しています。これらのインスタンスはネットワーク集約型の HPC ワークロードに最適です。C5.18xlarge (36 の Intel Skylake シリーズの物理コアを持つインスタンス) は Elastic Fabric Adapter (EFA) をサポートしており、これによって AWS 上で大規模な MPI を使用した高レベルのノード間通信でアプリケーションを実行可能です。
今回の研究で利用した Cray-X40 システムは 36 コアの Intel (R) Xeon (R) E5-2695-V @ 2.10GHz の CPU から成り、Cray-XC50 システムは 36 コアの Intel (R) Xeon (R) Gold 6140 @ 2.30GHz で構成されています。どちらのシステムも Cray 独自の Aries インターコネクトと Lustre ファイルシステムを持つ Cray Sonexion ストレージを使用しています。
NWP モデルは高速ネッワークを利用する利点が大きいので、AWS 上の EFA を使用した c5n.18xlarge インスタンスと、Cray Aries インターコネクトを備えた 2 つの Cray マシン—— Cray XC40 と Cray XC50 ——を比較しました。
AWS 上にデプロイしたアーキテクチャ
図 1 にあるように、AWS ParallelCluster を使って Amazon EC2 インスタンスのクラスタを起動しました。これは AWS によってサポートされるオープンソースのクラスタ管理ツールで、AWS 上に簡単に HPC クラスタをデプロイできます。ParallelCluster では簡単なテキストの設定ファイルに、クラスタに必要となる計算ノード、ストレージ、ネットワークなどのリソースを記述するだけで自動化可能です。
AWS で Harmonie を実行するため、必要となるコンポーネント全てを含んだカスタム Amazon Machine Image (AMI) を使ってクラスタを構築しました。計算ノード、ストレージ、ネットワークについても必要となるものを ParallelCluster の設定ファイルに定義しました。計算ノードは EFA が有効化された c5n.18xlarge インスタンス、ストレージは並列 I/O 向けの Amazon FSx for Lustre と入力データを保持する S3 バケットを用意しました。また Slurm スケジューラをジョブ投入に利用します。これらのシステム設定の方法は、オンプレミスのそれとそれほど違いはありません。
パフォーマンス最適化の設定
この評価のゴールは、本番環境と同程度の規模の数値予報 (NWP) モデルを変更せずにそのまま AWS で実行し、そのパフォーマンスと実現可能性を理解する事です。そのため、異なるシステム間での詳細な最適化には重点を置いていません。
コンパイラの選定と調整: AWS 上で Harmonie を実行した際のパフォーマンス評価に、GCC8.4 と Intel コンパイラを比較したところ、Intel コンパイラの方が最大 20%程度性能が高い事が分かりました。AWS の c5n.18xlarge で Intel コンパイラのバージョン 2021.2 を、Cray XC40/XC50 では Intel コンパイラのバージョン 17.0.3.053 と 18.0.0.128 を利用しました。
Hybrid MPI x OpenMP: このモデルは MPI のみで実行しました。3 つ全てのシステムで 1 コア毎に 1 MPI ランクとしています。Harmonie コードは hybrid MPI と OpenMP による並列化をサポートしています。今後の挑戦として、MPI ランクと OpenMP スレッドの正しいバランスの評価があります。
I/O パフォーマンス: Harmonie は I/O パフォーマンスに非常に敏感です。このコードには、分割された I/O サーバを有効にし、明示的に I/O を行なう MPI タスクを割り当てるオプションがあります。この I/O サーバのオプションを有効にし全てのシステムを評価しました。実体験に基づいて、4 つの専用の MPI タスクを I/O に割り当てました。これは全てのシステムで最適でした。更に AWS での I/O パフォーマンスを向上させるため、フルマネージド型の高性能な Lustre ファイルシステムサービスである AWS FSx for Lustre を使用しました。Cray XC40 と Cray XC50 の Lustre ファイルシステムは、どちらも Sonexion ストレージで動いています。
移行と再現性
本番環境全体が AWS 上に構築されていて、主要な HPC コンポーネント (予報とデータ融合 (4dvar)) は、3 つのどのシステムでもチューニングの努力はせずインストールしたままのランタイムを利用しており、科学的にテストされています。この最初のベンチマークで、AWS に構築されたクラスタはオンプレミスと同等のパフォーマンスを実証しました。
バイナリとそのサードパーティライブラリの依存関係は、自己完結型の Harmonie AMI (Amazon Machine Image) と対応する AWS ParallelCluster で解決されています。
Harmonie 予測パフォーマンス
図 2 は、Harmonie モデルを使った 1 時間の予測のパフォーマンスを AWS、Cray XC40、Cray XC50 で比較したものです。X 軸はインスタンス数とその際の解像度、Y 軸は実行時間 (短いほど良い) です。比較してみると 145 インスタンスの時 AWS の c5n.18xlarge (Intel Skylake ベース) は Cray XC40 (Intel Broadwell ベース) と比較して 43% 良好、86 インスタンスの時は Cray XC50 (Intel Skylake ベース) と比べ 16% 良い結果になっています。この評価の時点では、Cray XC50 マシンには 86 ノードしかありませんでした (従って表の 145 インスタンスの部分には XC50 は記載されていません)。評価された全てのシステムには、ノード当たり 36 の物理コアを持つホストがあるため、ノード単位でパフォーマンスを比較する方が簡単です。
1 時間予報の目標時間である 50 秒を達成するには、65台 から 77 台の c5n.18xlarge インスタンスが必要です。特にこのモデルでは並列化効率約 70%で EFA を利用した c5n.18xlarge が 145 台の規模までスケールしました。
まとめ
このブログでは、大規模な本番環境で Harmonie モデルを利用した密結合の NWP シミュレーションを Amazon EC2 インスタンスで実証しました。c5n インスタンスを利用した場合、Cray XC40 と比較して 最大 48%、XC50 と比して最大 16% のパフォーマンス向上が見られました。高いネットワーク帯域を持つ EFA は、Harmonie モデルの大規模実行に際して、1 時間予報に設定された目標値よりもターンアラウンドタイムを 37% 減少させました。
Amazon EC2 インスタンスで NWP モデルをテストする事をお勧めします。AWS ParallelCluster を使用して Harmonie AMI を取得し、AWS にデプロイする詳細な手順は HarmonieAWS の GitHub リポジトリにあります。ご不明な点がありましたらお問い合わせ下さい。
Jacob は DMI のシニア HPC パフォーマンススペシャリストで、計算機科学に於ける天気、海洋、気候モデルの性能分析とアプリケーションの最適化の分野で 20 年以上の経験があります。
このブログの内容と意見は第三者の著者のものであり、AWS はこのブログの内容や正確性について責任を負いません。