対象プログラム | 物性学シミュレーション |
アプリケーション名 | CP2K |
チューニング方法 | 変換ルーチンの最適化,OpenMPの実装 |
成果 | 速度改善とスケーラビリティの改善 推定削減コスト(円換算):6億3千万円 |
HECToR dCSEチームによる物性学シミュレーション(CP2K)の速度とスケーラビリティの改善
Ben Slater, University College London(UCL)
Ian Bethune, Edinburgh Parallel Computing Centre(EPCC)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)
EPCCにおいて英国の国立学術スーパーコンピューティング設備であるHECToR 向けのNAGの計算科学技術(CSE)サポートサービス業務を行っているHPC専門家は,物性科学コードCP2Kを最適化し,スケーラビリティを大幅に改善し実行時間を削減しました。これにより米国科学アカデミー紀要(doi: 10.1073/pnas.1001087107)で公表された新しい科学研究が可能になりました。
主任調査員であるUCLのBen Slater博士及び彼の協力者は、このHECToR CSEの作業により氷内の欠陥析出に関する詳細な研究を行うことが可能になりました。プロジェクトの成功について,Slater博士は次のように述べています:「発表された研究に関して、氷表面の構造の詳細を把握し分子欠陥の表面析出エネルギーを求めるために、氷塊の比較的大きいモデルを用いる必要がありました。最適化されたCP2Kを使用して、1000個以上の原子を含むセルを問題なくモデル化することができました。CP2Kへの今回の投資は研究の容易な遂行に極めて重要でした。」
HECToR HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはNAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとNAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。 これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているCP2Kプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。 |
プロジェクトの背景
この dCSE プロジェクトの目的は、MPI通信を改良することで密度関数理論コードCP2Kの並列パフォーマンス,ロードバランシング,マルチコアパフォーマンスを改善することでした。こうした膨大な原子を用いたシミュレーションは、実行時間の削減とマルチコアノードの大規模スーパーコンピュータを効率的に使用することで現実的なものとなります。Slater博士 (UCL) はプロジェクトの主任調査員であり、Joost VandeVondele博士 (Zurich) と Matthew Watkins 博士(UCL)と協同で作業を進めました。エジンバラ大学のEPCCのIain Bethune はNAG CSE チームとCP2K ユーザと協力して、12人月でプロジェクトを遂行しました。
CP2K
CP2K は自由に入手可能な密度関数理論(DFT)パッケージで,GPLのもとでライセンス化されています。CP2K は多くの個人やグループによって開発されており、現在 50,000 ラインを超える行数の Fortran 95 コードです。CP2K と他のDFTコードとの主な違いは、Quickstep アルゴリズムの実装です。Quickstep アルゴリズムは電子密度に対して、二つの基底関数−つまり波動関数を表す原子に中心を置くガウス型関数と,構造格子上の平面波を使用しています。多くのDFTコードのように,CP2K は実空間表現から逆格子空間(平面波)表現への変換に3次元高速フーリエ変換も使用しています。
プロジェクトの結果
実空間から平面波への変換ルーチンは最適化され,halo交換の時間は半減し,全体の時間は12% 高速化しました。再利用可能データの格納と冗長なMPI集団通信の削除により、高速フーリエ変換ルーチンのパフォーマンスは改善され,さらに12% 高速化しました。非均質システムのロードバランシングは改善され,128コアについて25%速くなり、2048コアについては18%高速化しました。さらに計算が大半を占めるルーチンのほとんどにおいて、OpenMP の実装はスケーラビリティの劇的な改善をもたらしました。元のコードよりも8倍のコア数へスケーラビリティが向上しました。dCSEのPIでありCP2K の主要ユーザである Slater博士は,コードの利用が高まった現在、 CP2KはHECToR 上で一か月に約400万 AU(注) を消費していると推定しています。dCSEが 最適化した CP2K コードをHPCリソース上で利用することで、コスト削減と新しい科学研究が可能になっただけでなく,およそ50%の潜在的な累積パフォーマンスの改善により,HECToRサービスの稼働期間内に CP2Kを用いた研究想定コストを、約 £1.5M 節約できます。
(注)アロケーションユニット(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)までお問い合わせください。
CP2Kにより得られた、氷の(0001)表面上のヒドロニウム(H30+)欠陥(黄色部分の中心の明るい部分)