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

HECToRプロジェクト SWT/SS3Fのスケーラビリティ改善

対象プログラム 乱流シミュレーション
アプリケーション名 SWT/SS3F
チューニング方法 2D領域分割の適用、FFT3W、2DECOMP&FFTライブラリの適用
成果 スケーラビリティが10倍以上改善
[2015年11月掲載]

HECToR dCSE TeaによるNavier-Stokesコード、SWT/SS3Fのスケーラビリティと並列効率の改善

 Gary Coleman , Roderick Johnstone , University of Southampton
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)


英国の国立学術スーパーコンピューティング設備であるHECToR 向けの計算科学技術(CSE)サポートサービスと協力してNAGのHPC専門家により、疑ポテンシャル法によるNavier-Stokes解法で用いられる2つの重要なコードのスケーラビリティと並列効率が改善されました。

SWTコードは、無限平面チャネル内の乱流とクエット・ポアズイユ乱流のDNSで用いられます。SS3Fコードは、3Dフーリエ表示を用いたブジネスク近似における非圧縮性N-S方程式を解きます。両方のコードはUK乱流コンソーシアムで利用されています。

疑スペクトル法においては、N-S方程式の非線形移流項は実空間で評価しなくてはならず、波数空間との間の変換をデータ領域が分割されたスライス内で行わねばなりません。このプロジェクト以前には、SWTとSS3Fの両方は1Dデータ分割による並列版でした。この場合、その分割数は3次元空間の一つの次元上の点の数となり、利用プロセッサ数が制限されてしまいます。両方のコードへより良い領域分割を実装することにより、それらのスケーラビリティは極めて高くなりました: SS3Fは現在、12000コア、SWTは8192コアまで、代表的な問題サイズに対してスケールしています。

dCSE プロジェクトの成功についてサザンプトン大学のGary Coleman教授は次のように述べています。「このプロジェクトにより現在および未来のHEC資源の有効利用を可能にし、これまで取り組まれていなかった問題や領域を研究することが可能になりました。」

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

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

プロジェクトの背景

このdCSEプロジェクトの目的は、SWTとSS3Fの両方に対してHECToRで可能となるスケーラビリティの制限を外すことであり、これはその並列FFT実装を改善することを意味します。特に、FFT3Wを2DECOMP&FFT ライブラリのFFTルーチンとして活用します。

サザンプトン大学・工学/環境学科のGary Colemanがこのプロジェクトの調査主任です。サザンプトン大学のRoderick Johnstoneは、NAG CSEチームと密接な連携を取りながら6人月でプロジェクトを遂行しました。

プロジェクトの結果

FFTルーチンをFFTW3へ変更するのみで効率は改善しました。SS3Fに対して、代表的な問題サイズ3072×325×1024の実行において計算時間が53%削減されました。SWTでは、1Dチェビシェフ変換を修正することにより108モード問題に対して時間ステップ当り51%削減され、109モード問題に対しては55%削減されました。

さらに、2DECOMP&FFTライブラリの並列転置ルーチンを用いた並列3D FFT(SSF3)および2D FFT/1Dチェビシェフ変換(SWT)の実装により、SS3FとSWTの両方のスケーラビリティが代表的な問題サイズに対して10倍以上改善しました。 このアプローチはSWTをテスト問題サイズ108モードを8129コア以上スケールさせ、SS3Fを109モードの問題サイズに対して12000コアまでスケールさせました。

オリジナルコードの性能限界付近での実シミュレーション・テストケースを実施した。オリジナルの1D領域分割を用いていたならば、ノード当たりのコア数削減をすることでしか実行できなかったよりチャレンジングな問題に対して改善が期待できる結果となりました。

このプロジェクトの結果、両方のコードは同じコア数で同等の仕事を行うのに半分のAU配分で済みます。SWTではAU(注)は34%減少しウォールクロックでも30倍高速化しました。


(注)アロケーションユニット(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)までお問い合わせください。

関連情報
MENU
Privacy Policy  /  Trademarks