関連情報
ホーム > 製品&サービス > コンサルティングサービス > HPCチューニングサービス > 事例一覧 > HECToRプロジェクト - 計算流体力学ソルバーCode_Saturneの移植と性能改善

HPCチューニングサービスの事例

HECToRプロジェクト
計算流体力学ソルバーCode_Saturneの移植と性能改善

対象プログラム 流体シミュレーション
アプリケーション名 Code_Saturne
チューニング方法 HECToRへの移植と領域分割の改善
成果 METIS,ParMetis,Scotch,PT-Scotch,Zoltanを組込み、評価した結果、Metisによる領域分割が最も高速となった。
[2017年2月掲載]

HECToR dCSE Teamによる計算流体力学ソルバーCode_Saturneの移植と性能改善

Zhi Shang, Charles Moulinec, David R. Emerson, Xiaojun Gu, Science and Technology Facilities Council (STFC)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)


英国の国立学術スーパーコンピューティング設備であるHECToR 向けの計算科学技術(CSE)サポートサービス業務を行うSTFCのHPC専門家は,計算流体力学(CFD)アプリケーションであるCode_Saturneを大規模並列アーキテクチャへ移植し、性能を改善しました。

計算流体力学(CFD)アプリケーションであるCode_Saturneは、EDFにより1997年以来開発されているソフトウェアです。これは、如何なる3次元グリッド構造も適用可能な計算手法を基礎にしており、潜水艦や空港監視塔など極めて複雑な構造の解析を可能にしています。また、ソルバーの入力用にメッシュデータを分割する並列コードとして設計されています。シミュレーションの完了時には、その結果は可視化ソフトウェアで利用可能なファイルへ変換されます。Code_Saturneは2007年からオープンソースとして公開されています。

dCSE の成功に言及して,マンチェスター大学、機械・航空宇宙・土木工学のAlistair Revell博士は次のように述べています:「このプロジェクトの作業はとても上手く行きました。また、マンチェスター大学の我々のグループのCode_Saturne利用者間に極めて大きな影響を与えました。実質的な成果は幅広く、全体のスケーラビリティや、I/O性能、プリポスト処理の並列化、領域分割ツールに渡ります。これらを全て含めると、HECToRの利用効率の向上により計算乱流研究に深く幅広い大きな進歩がもたらされました。これは他の多くの研究プロジェクトで行われている作業にも役立つでしょう。」

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

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

プロジェクトの背景

このプロジェクトの目的は、オープンソースコードCode_SaturneをHECToRへ移植し、HECToRフェーズ2a(Cray XT4)の8129プロセッサまで十分なスケーラビリティを確保すること、および現状のHECToRフェーズ3(CrayXE6)のメニーコアアーキテクチャ上での効率的な利用を図ることです。もう一つの目的は、様々なオープンソースのメッシュ分割パッケージを評価し、どのパッケージがメモリーとデータ分割時間を最小限にして、最も負荷バランスが良く効率的な通信が可能かを見極めることです。

プロジェクトの結果

広く使用されているオープンソースのメッシュ分割パッケージ2種を用いて、Code_Saturneの効率をテストしました。Code_Saturneで121M四面体要素シミュレーションを実行する場合には、Metisを使用して得られたパーティションが一貫して最良の分解を提供し、シミュレーションに必要な経過時間を最小限に抑えました。しかしながら、メモリの制約はパッケージごとに大きく異なります。たとえばPT-Scotchは、16コアだけを使用して、並列で131072ドメインまでメッシュパーティションを生成することができました。ParMetisでは、131072ドメインを作成するために最低512コアが必要でした。性能プロファイル分析からは、ParMetisに必要なコアの数が増えると1パーティション生成において負荷バランンスが不十分であることが示唆されました。しかし実際には、シミュレーションの実行時間はこの観察結果を反映せず、最大1024コアの場合、ParMetisによる実行時間はより少ないものでした。1024以上のコアと8192コアまで、Metisのシーケンシャルバージョンが最高のスピードアップを示しました。2048および4096コアの場合、PT-ScotchはParMetisよりも性能は優れていました。


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

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

Results matter. Trust NAG.

Privacy Policy | Trademarks