対象プログラム | 海洋モデリング向け混相流シミュレーション |
アプリケーション名 | Fluidity |
チューニング方法 | 有限要素メッシュの領域分割法の改善 |
成果 | ヒルベルト空間充填曲線法(HSFC)を実装、、スケーラビリティは5%改善 |
HECToR dCSE Teaによる多目的混相流CFDコード(Fluidity)のNUMA型メモリーアクセス手法によるスケーラビリティ改善
Jon Hill, Imperial College London (ICL)
Mark Filipiak, Edinburgh Parallel Computing Centre (EPCC)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)
英国の国立学術スーパーコンピューティング設備であるHECToR 向けのNAGの計算科学技術(CSE)サポートサービスと協力してEPCCのHPC専門家により、Fluidityの行列生成および行列演算ステップがトポロジカルメッシュおよび計算メッシュの並べ替えにより高速化されました。この再順序化は、NUMAアーキテクチャにおける最適通信パターンを生成させる、各MPIプロセスのメッシュノード及び要素を並べる空間充填曲線アプローチを実装することにより達成されました。
Fluidityはインペリアルカレッジの応用モデリング・計算グループにより開発され、用途には海洋モデリングに焦点を当てています。Fluidityは、全地域、流域、個別地域およびプロセススケールの流れを同時に解析可能で、他のモデルで不可能な海洋気象研究に用いることが出来ます。これは、シミュレーションの粗密性により計算上の自由度や配置を動的に最適化可能なアダプティブモデルです。 長期的な目的としては、世界的な循環シミュレーション機能の実現、例えば北西ヨーロッパ大陸棚の海洋境界流、対流プルームおよび潮汐フロントのような結合した運動状態を、1kmまで解像することです。 Fluidityは、デスクトップワークステーションからHPCプラットフォームまでいずれの計算機においても実行できます。しかしながら、解析対象の問題サイズは特にHECToRのようなNUMAマルチコアプロセッサシステムにおいて制限が生じます。 本プロジェクトの目的は、有限要素構築と解析ルーチンにおけるOpenMP/MPIハイブリッド並列の性能をより引き出すメモリーアクセス手法を実装し、Fluidityのスケーラビリティを改善することです。
dCSE プロジェクトの成功について,ICLの応用モデリング計算グループのDr Jon Hillは次のように述べています。「このプロジェクトは、Zoltanライブラリの空間充填曲線モジュールを用いることによりFluidityのメッシュ再順序化の実装に成功しました。これは、シリアルや並列版の新たなメッシュ読み込みに、さらにメッシュアダプテーションによりメッシュが更新される毎に適用することが可能です。順序付けがメッシュに対して正確に適用されていることが検証されました。初期のテストでは性能向上は小さく、例えば行列・ベクトル積は僅かなキャッシュミスの減少のみが示されました。しかしながら現在はこの再順序化機能が実装され、開発者はデータストリームの改善に対して如何にデータ構造を改良するか、というさらに詳細な解析を実施することが可能となりました。
有限要素構築と解析ルーチンにおけるOpenMP/MPIハイブリッド並列の性能をより引き出すメモリーアクセス手法を実装することにより、Fluidityのスケーラビリティが改善されました。これによりFluidityの使用量は年間5%(100万AU)(注)削減されるでしょう。
HECToR HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはNAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとNAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。 これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているFluidityプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。 |
プロジェクトの背景
本作業で重要な点は、Fluidityのトポロジカルメッシュと計算メッシュの順序の改善のためにその領域分割法を拡張し、本体コードへメッシュ再順序付けを実装することです。機能的な正確性については既存の22,000ユニットに追加して新たなテストおよびリグレッションテストでチェックし、NUMA性能も同時に測定しました。
ICLの応用モデリング計算グループのDr Jon Hillはこのプロジェクトのリーダーです。EPCCのMark Filipiakは、NAG CSE teamと共同して6人月でこのプロジェクトを実施しました。
プロジェクトの結果
各MPIプロセスでのメッシュのノードと要素を並べるために、ヒルベルト空間充填曲線法(HSFC)を実装しました。これは、既存のメッシュ分割とMPIプロセスの負荷バランスにFluidityで用いられる本プロジェクト初期に実装されたZoltanライブラリのHSFCを用いています。 百万有限要素ノード(グリッド)の3D後方ステップ流れシミュレーションを代表テストケースとして用い、この新しいメッシュ再順序化は全体で5%の高速化を示しました。
しかしながら、その性能はHECToRノードのUMA領域上のスレッド配置によりばらつきがある状態でした。 ヒルベルト空間充填曲線による順序化はHECToRで稼働する他の有限要素法コードにも同様な性能向上をもたらすことが可能でしょう。スケーラビリティの改善例はFluidity-ICOMの事例をご覧ください。
(注)アロケーションユニット(allocation unit, AU)はHECToRにおけるノード課金単位です。大まかに言えばLinpackベンチマーク(Rmax)を基にした1時間当たり1Tflopsの実行量がkAUに相当します。例えば60Tflopsのプロセッサ群は60kAU/時間に相当します。
詳細なテクニカルレポートは以下で参照いただけます。
http://www.hector.ac.uk/cse/distributedcse/reports/
さらに詳しくお知りになりたい場合は、日本NAG株式会社 コンサルティンググループご相談窓口 https://www.nag-j.co.jp/nagconsul/toiawase.htm (あるいはメール:consul@nag-j.co.jp)までお問い合わせください。