対象プログラム | 材料モデリング |
アプリケーション名 | CRYSTAL |
チューニング方法 | 分割統治法の実装 |
成果 | パフォーマンスの改善 |
HECToR dCSE Team によるCRYSTAL材料モデリングコードのパフォーマンス改善
Barbara Montanari, Rutherford Appleton Laboratory, STFC
Daniel Jones, Numerical Algorithms Group Ltd (NAG)
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)
NAGのHECToR(英国の国立の学術スーパーコンピュータ設備)向けの計算科学技術(CSE)サポートサービスのもとで業務を行っているNAGのHPC 技術者は、物性科学コードCRYSTALのパフォーマンス改善を行いました。現在このアプリケーションの実行時間は、より効果的なやり方で系の大きさにスケールしており、大規模でより複雑な系を計算リソースを増やすことなくモデル化できるようになりました。さらにCRYSTALの他の部分に、複数のプロセッサに渡って計算を割り当てる新しいメカニズムを実装するといった、コード性能のさらなる効率性が現在研究されています。
dCSEプロジェクトに言及して, STFC、Rutherford Appleton Laboratoryの計算科学技術部門のBarbara Montanari 博士は次のように述べています:「このdCSEプロジェクトによりCRYSTALはHECToRのリソースをフルに活用できるようになり、以前は研究が不可能だった系に対して、ハイブリッド交換項などのより進んだ密度汎関数を適用できるようになります。それを生かすための最初の作業は、バルク構造と表層構造の大規模な調査が進んでいる再生可能エネルギーにありました。その応用には水素の光起電生産,固体酸化物燃料電池やリチウムイオン電池などが含まれます。dCSE ソフトウェア開発プログラムはCRYSTALの新たな開発に非常に有効でした[…]Rutherford Appleton LaboratoryにおいてはCRYSTALスイートコードに対して長期の徹底したサポートが提供されました。」
HECToR HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはNAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとNAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。 これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているCRYSTALプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。 |
プロジェクトの背景
CRYSTAL は第一原理から物質の電子構造を計算するプログラムで、その物質の性質の特定に用いられます。CRYSTAL は英国の材料化学者の重要な道具となっており、HECToRなどのHPCリソースを最大限に活用するためには継続して開発を進めることが大切です。系のサイズが大規模な場合、この種のコードではハミルトニアン行列の対角化、すなわち系の原子数Nに関してO(N3)に比例する演算に多くの時間が費やされます。このdCSEプロジェクトの目的は、CRYSTALのパフォーマンス改善(つまり大規模な系に適用可能にすること)であり、このためにハミルトニアン行列対角化に際してO(N)でスケールする、いわゆる分割統治法を実装することでした。
Rutherford Appleton Laboratory, STFC の計算科学技術部門のBarbara Montanariがプロジェクトの主任調査員でした。NAGのHPC技術者の一人であるDaniel JonesはNAG CSEチームと密接に協力して18人月のプロジェクトを実行しました。
CRYSTAL とその他の材料モデリングコードは、1年間にHECToR上で約 200,000 kAUs (千アロケーションユニット) (注)を使用しています。
プロジェクトの結果
分割統治法は、多電子系をお互いに分離された構成要素へ空間的に分解することによって多電子系の電子間の有効近距離相互作用を用います。サブシステムを再び全体へ組み上げる前に、それぞれ構成要素の電子構造は独立して決定することができます(つまり、並列に処理することができます)。最後に多電子系の全エネルギーを決定します。上の図は2つの計算について、特に密度行列の計算とすべてのサブシステムについての電子構造の構築と計算において、新しい手法により計算時間がシステムサイズに応じてどの程度線形的に増加したかを示しています。別々のサブシステムを複数のプロセッサに振り分ける仕組みが一般的な方法で実装されました。そして現在はCRYSTALコードの他の部分のパフォーマンス改善に用いられています。
(注)アロケーションユニット(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)までお問い合わせください。
CRYSTAL についての詳細は以下から参照いただけます。
http://www.crystal.unito.it/