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

HECToRプロジェクト DL_POLYの最適化

対象プログラム 分子動力学シミュレーション
アプリケーション名 DL_POLY
チューニング方法 I/Oの最適化
成果 DL_POLY_3のパフォーマンスが20倍に加速
[2014年4月掲載]

HECToR dCSE Teamによる最適化で分子動力学アプリケーション(DL_POLY_3)のパフォーマンスが20倍に加速

Ilian Todorov, Bill Smith, Laurence Ellison, STFC Daresbury Laboratory
HECToR CSE Team, Numerical Algorithms Group Ltd (NAG)

NAG のHECToR(英国の国立の学術スーパーコンピュータ設備)向けの計算化学技術(CSE)サポートサービスのもとで業務を行うNAG のHPC技術者は、分子動力学の研究に広く利用されるソフトウェアパッケージDL_POLY_3のスケーラビリティとパフォーマンスを改善しました。このプロジェクトで達成されたパフォーマンスの20倍の改善により、以前までは現実的ではなかった卵殻形成の研究が可能になりました。

DL_POLY_3 はSTFC Daresbury研究所による古典分子動力学(MD)シミュレーション汎用パッケージです。Warwick大学の調査員 Mark Rodger と David Quigleyは, 鳥の卵殻形成において知られる ovocleidin-17 (OC-17) タンパク質の研究に際し、Sheffield 大学の協力者と共にHECToRスーパーコンピュータ上でDL_POLY_3を使用しました。HECToRスーパーコンピュータを用いて適切な時間スケールでモデリングを行うためには(特に並列I/Oに関して)大幅なパフォーマンス改善が必要でした。 dCSE プロジェクトの成功に言及して、David Quigley は次のように述べました。「これらのI/O性能の改善を行う前は、DL_POLY_3 は並列ファイルシステムを有効に使用することができず、シミュレーションのパフォーマンスをひどく低下させていました。新しいコードは一つのスナップショットの作成にかかる時間を3分から0.5秒以下に短縮しました。この結果全体のパフォーマンスが20倍に改善されました。」

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

プロジェクトの背景

スーパーコンピュータのサイズ(計算ノード数)が増加するにつれて、研究の推進を妨げるのはアプリケーションの並列化のパフォーマンスだけではありません。多くの場合、ボトルネックになるものとしてI/Oが挙げられます。これは分散データアルゴリズム(DL_POLY_3で利用されているような)の場合は特にそうです。このdCSE プロジェクトの目的は、実際の科学研究において千オーダーのコア上で大規模な系のシミュレーションが実行可能になるよう、I/Oパフォーマンスを改善することでした。この最適化では、Lustre ファイルシステムの利用とI/Oの効果的な並列化の両方を可能にするために、大規模なデータの再編成が行われました。MPI-I/O か NetCDF の何れも容易に利用できるようなモジュール設計も実装されました。 STFC の Ilian Todorov と William Smith はDL_POLY_3の中心的な開発者です。STFC のIlian Todorov は本プロジェクトの主任調査員でした。NAG のIan Bush はNAG CSE チームとDL_POLY_3の開発者と密接に協力し、6人月でプロジェクトを遂行しました。HECToR におけるDL_POLY_3 の利用実績は、2009年の後半以降 8 million AUs (アロケーションユニット)(注) に達しました。

プロジェクトの結果

I/Oサブシステムを最大限に活用するために 広範囲なデータ再分配を実施しました。この結果、通信が大幅に増加したにもかかわらず、このコードはより多くのプロセッサに対してスケーラするようになりました。これらのコード改善により、データファイルの入出力パフォーマンスは数桁に及ぶ改善が示され、ある主要な研究問題(卵殻形成)について全体のパフォーマンスが20倍に改善しました。本作業により、コードは何千ものコアを効率的に利用できるようになり、百万オーダーの粒子系のシミュレーションを行うことができるようになります。両者とも以前はI/Oのオーバーヘッドにより実行が不可能だったものです。


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