プログラムの高速化・並列化サービスの事例

HECToRプロジェクト COSAの並列効率改善

対象プログラム マルチブロック圧縮性流体シミュレーション
アプリケーション名 COSA
チューニング方法 ハイブリッド(OpenMP/MPI)並列効率およびMPI I/Oの改善
成果 より大きなモデルの取り扱いを可能になり、大規模ケースで30%性能向上
[2015年11月掲載]

HECToR dCSE Teaにより改善されたマルチブロックCFDソルバー(COSA)の並列効率

M. Sergio Campobasso, Lancaster University
 Adrian Jackson, Edinburgh Parallel Computing Centre (EPCC)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)


英国の国立学術スーパーコンピューティング設備であるHECToR 向けのNAGの計算科学技術(CSE)サポートサービスと共に、EPCCのHPC専門家は,マルチブロックCFDソルバー(COSA)のMPIおよびOpenMP/MPIハイブリッド構成による並列効率の改善に成功しました。MPIの1対1通信の全体数を削減するためにHaloバッファを用い、共有データの整合性を考慮したOpenMP/MPIハイブリッド並列、および同期によるオーバーヘッドを削減するためにOpenMP領域へMPIを配置した独立した並列化領域を用いることにより性能を改善しました。

COSAは非定常空気力学、固定構造の空力弾性、回転翼およびターボ機械ブレードの解析のために、圧縮性Navier-Stokesモデルをベースにしています。COSAは、定常、time-domainおよびHarmonic Balance流体ソルバーを含みます。これらのソルバーは全てマルチブロック構造格子の有限体積法を用いています。全てのソルバーは水平軸風力タービンなどでの低速流に対しても用いることが可能な、低速プリコンディショニング法も用いることが出来ます。 COSAは基本としてMPI並列が用いられますが、シミュレーション規模により幾何的な分割数が制限されるため、より多くのコアを用いることが出来るように、同時にOpenMPによる並列化機能も実装されています。このプロジェクトの目的は、両方の並列化に対して、並列効率を向上させ計算時間を削減するように最適化することです。

dCSE プロジェクトの成功について,ランチェスター大学工学部のDr M. Sergio Campobassoは次のように述べています。「このプロジェクトで成し遂げられた研究開発はいろいろな意味で非常に価値あるものです。MPIおよびMPI/OpenMPハイブリッドのHarmonic BalanceソルバーとMPI time-domainソルバーの劇的な並列性能向上により、ほとんどのクラスター上でCOSAを用いた解析計算が大幅に短時間化しただけでなく、再生可能エネルギーの問題に挑戦するために、このソフトウェアの開発と応用を継続することが出来る基盤(COSA HBソルバー)を実質的に統合することができました」

MPIと様々な最適化を実施することによりHECToRマシン上でスケール性が改善されました。幾つかのシミュレーションでは、全計算時間はオリジナルコードに比べ半分になりました。また大規模テストケース(2048ブロック/4,194,304セルおよび17 real harmonics)においてこの新しいコードは2048cpuで30%高速化しました。

HECToR
HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはNAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとNAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。

これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているCOSAプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。

プロジェクトの背景

COSA並列版は大規模シミュレーションを正確かつシリアルコードより十分に高速に計算しなければなりませんが、これら並列版の効率は最適な状態ではありませんでした。OpenMP並列はデスクトップや小規模共有メモリクラスタなどのローカルマシンに適していますが、大規模シミュレーションには向いていません。さらにこのOpenMP並列版は少ないコア数でもスケールしていませんでした。MPI版は一部分を除き良好な効率を示しました。このMPI版は、シミュレーションの格子ブロックの最大値を並列コア最大数としていたため、この制限を取り払い、ブロック数以上のコア数を利用できるようにハイブリッド版の並列化を行いました。 ハイブリッド並列版は、しかしながらMPIのみのバージョンに比べ、OpenMPの十分な機能実装がされていなかったため効率が低いままでした。

このプロジェクトの責任者は、ランチェスター大学 工学部 Sergio Campobasso博士です。EPCCのAdrian JacksonはNAG CSEチームと共に、6人月でこのプロジェクトを実施しました。

プロジェクトの結果

このプロジェクトでは、MPIメッセージをバッファへ統合することにより、100倍までの性能向上を実現させ、さらに、MPI I/Oの改善も実施しました。結果として、262,144セルおよび31 real harmonicsのグリッドケースにおいて、512cpuを用いて、改善前の701秒に比べ改善後は547秒に性能向上しました。より大きなテストケース(2048ブロック/4,194,304セルおよび17 real harmonics)において、改善後のコードは、2048cpuで30%、512cpuで40%高速化しました。

MPI並列と最適化の組合せにより、HECToR上での性能を改善し、全計算時間はオリジナルコードに比べて半分に減少しました。これらの開発結果はCOSAのソースコードに組み込まれています。COSAはHECToRの主要なモジュールとしてもインストールされています。


詳細なテクニカルレポートは以下で参照いただけます。
http://www.hector.ac.uk/cse/distributedcse/reports/

さらに詳しくお知りになりたい場合は、日本NAG株式会社 コンサルティンググループご相談窓口 https://www.nag-j.co.jp/nagconsul/toiawase.htm (あるいはメール:consul@nag-j.co.jp)までお問い合わせください。

関連情報
MENU
Privacy Policy  /  Trademarks