対象プログラム | 海洋学モデリングアプリケーションプログラム |
アプリケーション名 | Fluidity-ICOM |
チューニング方法 | 行列のアセンブリコードの最適化,インターリーブI/Oの実装,コードリファクタリング |
成果 | スケーラビリティが劇的に改善 |
HECToR dCSE teamにより海洋モデリングアプリケーション(Fluidity-ICOM)のスケーラビリティが劇的に改善
Gerard Gorman, Imperial College London (ICL)
Mike Ashworth, Science and Technology Facilities Council (STFC)
Xiaohu Guo, Science and Technology Facilities Council (STFC)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)
STFCにおいて英国の国立学術スーパーコンピューティング設備であるHECToR 向けのNAGの計算科学技術(CSE)サポートサービス業務を行うHPC専門家が,海洋モデリングアプリケーションFluidity-ICOMのスケーラビリティを改善しました。このプロジェクトの結果,Fluidity-ICOMはHECToRのCray XT4の4096コア上で効率良く稼働できるようになりました。
Fluidity-ICOM は計算流体力学のアダプティブ非構造有限要素コードFluidityを基礎に構築されています。これは3次元非静水圧並列マルチスケール海洋モデルで構成されており,この海洋モデルは非構造異方性アダプティブメッシュについての様々な有限要素法と有限体積法の離散化手法を実装しています。そのため多層格子を必要とせずに、非常に広範囲の統合的な解構造が単一の数値シミュレーションで正確にかつ効果的に表現されます。
dCSE プロジェクトの成功に言及して,連携研究者であるGerard Gorman博士 (Imperial College London)は次のように述べています。「 4096コアまでの優れた強スケーリングを達成したことでFluidity-ICOMの新しい領域に対処することが出来ます。大学で利用可能な大きさの計算プラットフォームからHECToRへの移行により科学者の“think big”が可能になりました。多くの複雑な物理的問題において、分解能はシミュレーションを制限する重要な要因です。実際に,多くの物理特性は任意の計算プラットフォーム内でシミュレーションが実行されるよう大まかにパラメータ化する必要があります。dCSEが改善したコードを用いてHECToRを利用することで物理特性を捉える精度が向上しました。」
HECToR HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはNAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとNAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。 これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているFluidity-ICOMプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。 |
プロジェクトの背景
この dCSE プロジェクトの目的は,最先端のワークステーションとクラスターベースのコードから大規模なスーパーコンピューティングプラットフォームまで、効果的にモデルを実行できるようにFluidity-ICOMを開発することでした。 こうすることでFluidity-ICOMはローカルな研究室ソフトウェアから高品質のコミュニティソフトウェアへ移行しやくなります。 プロジェクトではプロファイリングと最適化,メッシュ・アダプティビティのスケーラビリティとパラレルI/O を対象にしました。STFC のMike Ashworth はプロジェクトの主任研究員でICLのGerard Gormanは連携研究員でした。STFC のXiaohu Guo はNAG CSE チームとICOM 開発者と協力して12人月のプロジェクトを遂行しました。 HECToR上のFluidity-ICOMの使用量は 2009年に200万AU (allocation units)(注)に達しました。
プロジェクトの結果
dCSE プロジェクトは以下を含む広範囲の開発を対象としました。 移植性の増加;行列生成コードの最適化(ブロック化されたスパース記憶域);インターリーブI/Oの実装;コードリファクタリング;パフォーマンスボトルネックの調査とその解決のためのプロファイリング;並列線形ソルバパフォーマンス(PETScインターフェースで提供される)インデックスリナンバリング法の実装。また,fluidity-ICOMはサードパーティのソフトウェア(20個の外部パッケージが使用されている)への相対的に複雑な依存性があるため,ユーザが簡単にソフトウェア環境を設定してFluidity-ICOM をインストールできるように いくつかのモジュールがHECToRユーザに提供されています。この研究の重要な一部として最適なコンパイルフラグの推奨が有りました。並列メッシュ最適化アルゴリズムと完全GFDモデル両方のスケーラビリティの分析が行われました。
この作業はメイン開発ブランチで行われ、Fluidityリリースの一部となっています。Gorman博士は述べています。「このようなプロジェクトは科学的目標達成のために極めて重要ですが,標準の研究助成金のもとに資金を得ることは一般的には困難です。dCSEはその労力を科学研究以外のところに費やすことのないよう努めました。」
(注)アロケーションユニット(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)までお問い合わせください。