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

HECToRプロジェクト VASPパフォーマンス最適化

対象プログラム 電子構造計算
アプリケーション名 VASP
チューニング方法 並列処理の最適化,K点並列化の導入
成果 3倍から12倍の加速化とスケーラビリティの改善
[2014年4月掲載]

HECToR dCSE TeamによるVASP材料化学コードのパフォーマンス最適化

Richard Catlow, Scott Woodley, University College London (UCL)
Andrew Turner, Edinburgh Parallel Computing Centre (EPCC)
Asimina Maniopoulou, Numerical Algorithms Group Ltd (NAG)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)

VASP_optimization

英国の学術研究機関向けのスーパーコンピューティング設備であるHECToR 向けのNAGの計算科学エンジニアリング(CSE)サポートサービスの元で業務を行っているEPCCとNAGの HPC技術者は、VASP (Vienna Ab initio Simulation Package)のパフォーマンスを最適化しました。VASPはHECToRで最も使用されているアプリケーションで、そのパフォーマンスの改善により科学者はより効率よく興味のあるシステムの研究をすることができるようになり、また計算リソースの消費を増やさずにより正確な結果を得ることができます。

最適化はパッケージの効率性を改善しました。これによりとりわけ小さなシステムや中規模のシステムにおいて材料特性をより正確に決定できるようになりました。

dCSE プロジェクトに言及して, UCLの化学科のRicardo Grau-Crespo博士は次のように述べています。「近年のVASPコードの開発の進展により、従来は失敗していたある種の固体(例えば遷移金属やレアアース化合物)の電子構造の正確な説明が可能となりました。これにより触媒作用や電子工学などの分野で新しい研究の機会が開かれました。残る制約は、特にHECToR上でのジョブの終了時間を短くする必要性を考えると、これらの演算における計算コストにあります。これらの新しい開発を活用するためには、コードの並列化において良いスケーラビリティを達成することは不可欠です。このDCSEの作業はK点並列化を使用することによりHECToR のVASPコードのスケーラビリティを大幅に拡張しました。そして計算材料科学の研究はこの作業のおかげで可能となっています。」 さらにBath大学の化学科のAaron Walsh 博士は次のようにコメントしています。「K点並列化はより多くのコア数の利用と新しい科学の両方を促進する上で大きな影響力となるでしょう。これはHECToRフェーズ3やその他のHPCシステムの場合でも同じです。」

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

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

プロジェクトの背景

VASP は第一原理の原子スケール材料のモデリング(例えば、電子構造計算と量子分子動力学)を実行するプログラムです。国際的に広範囲に渡ってユーザ(英国の大きなコミュニティを含めて)がおり、HECToRで稼動するパッケージの中で最も使用されています。にもかかわらず、VASPはこのマシン上で良い性能を示していませんでした。特により小さなシステムで性能が良くありませんでした。従ってコア数が増えても処理性能が向上することはありませんでした。 dCSE project の目的は、(a)並列で実行するようタスクの最適分布を決定すること、(b)コードに新しいレベルの並列化を導入すること、これらにより性能を改善することでした。UCLの化学科のRichard Catlow と Scott Woodley はプロジェクトの研究責任者でした。EPCCのAndrew Turner は(a)を実行しました。また、NAGの Asimina Maniopoulou はNAG CSE team と密接に協力し (b)を実装しました。 (a) には4人月かかり、これは(b)で必要とされたリソースの半分でした。2011年中, VASP の計算はHECToRで約320,000 kAUs (千アロケーションユニット)(注)を消費しました。

プロジェクトの結果

(a) では、広く使用されるテストケースについての VASP パラメータ NPAR (これは並列タスクの分布を制御します) の推奨値の決定が行われました。続いて密線形代数演算のScaLAPACKライブラリのルーチンの取り込みが行われました。最適化により128コア以上を用いた計算で3倍から12倍の間の加速化がなされコードのスケーラビリティが改善しました。(b)ではVASPに新しいレベルの並列化が実装されました。特に研究中のシステムで併進対称を利用するK点並列化の実装が行われました。 これにより一連のテストケース((a)で使用されたものとは異なります)で2倍から70倍の間の加速化がもたらされました。上の図は、テストケースのうちの一つについてのものでK点並列化の実装により得られたスケーラビリティの改善を示しています。この実績は雑誌として出版されています。(A. Maniopoulou, E.R.M. Davidson, R. Grau-Crespo, A. Walsh, I.J. Bush, C.R.A. Catlow and S.M. Woodley. Introducing k-point parallelism into VASP. Computer Physics Communications 183, 1696-1701, 2012)。新バージョンのVASP はHECToRで利用可能です。また、ソースコードは英国の材料化学コンソーシアムに公開されています。


(注)アロケーションユニット(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