対象プログラム | 海洋学アプリケーション |
アプリケーション名 | NEMO |
チューニング方法 | より柔軟な領域分割の導入、ハロ交換の配列インデックスの入替、および陸地セル上の余分な計算の除去 |
成果 | 実行時間が10%削減された。 |
HECToR dCSE チームは海洋モデリングコードNEMOのパフォーマンスを改善
Stephen M. Pickles and Andrew R. Porter, Science and Technology Facilities Council(STFC)
HECToR CSE Team, Numerical Algorithms Group Ltd (nAG)
英国の国立のスーパーコンピューティング設備であるHECToR のnAGの計算科学エンジニアリング(CSE)サポートと共に、SFTCのHPCエキスパートはHECToRおよびその他の大規模マルチコアスカラーシステムにおける海洋モデリングコードNEMOのパフォーマンスとスケーラビリティを改善しました。
NEMO(Nucleus for a European Model of the Ocean)は、英国および欧州の海洋学コミュニティにとって戦略的に重要な海洋モデリングコードです。NEMOは何年にも渡り、全球および海洋盆地に対するアプリケーションとして利用されていますが、沿海モデルとしての利用は多くありませんでした。NEMOは当初ベクトルアーキテクチャ向けに設計されており、HECToRのような大規模並列アーキテクチャ上の性能には改善の余地があります。本作業は、浅海問題に焦点を当てて、現代的なアーキテクチャでの数千コアを用いた場合のパフォーマンスとスケーラビリティの改善を行います。このために、より柔軟な領域分割の導入、ハロ交換の配列インデックスの入替、および陸地セル上の余分な計算の除去を行いました。
プロジェクトの成功について、STFC Daresbury研究所のAdvanced research Computing GroupのStephan Pickes博士は次のように述べています。
「dCSEのNEMOプロジェクトは、動的メモリ割当てを導入して海洋モデリングコードNEMOのユーザビリティを向上させて、プロセッサー数を変更した場合にリビルドする必要が無くなりました。これにより、NERC海洋ロードマッププロジェクトでの英国内の海洋モデリングに対するNERC長期データも作成することが可能になりました。」
「dCSEプログラムその全てが、英国計算科学コミュニティにとって極めて価値が高いものです。科学的モデリングコードの競争力の維持のためには、継続的な開発努力が必要です。dCSEプログラムはその重要なギャップを埋めて、HPCおよびソフトウェア工学における能力向上と熟練の維持の助けとなります。さらにこうしたことを通して、英国の科学者が世界で競争力を維持するためのソフトウェア資産維持の助力となります。」
HECToR HECToR はResearch Councils を代行する EPSRC により管理されており、英国学術界の科学と工学をサポートする任務を負っています。エジンバラ大学にある Cray XT スーパーコンピュータはUoE HPCx 社によって管理されています。 CSE サポートサービスはnAG 社によって提供されており、高度なスーパーコンピュータの効率的な活用のために、ユーザは確実に適切なHPC専門家にコンタクトできます。CSEサポートサービスの重要な特徴は分散型CSE(dCSE)プログラムです。これは簡潔なピアレビューを経てユーザからの提案に応える、特定のコードのパフォーマンスとスケーラビリティに対処するプロジェクトです。dCSE プログラムは、伝統的なHPCユーザアプリケーションサポートとnAG によるトレーニングで補われる、約 50 の集中的プロジェクトから成り立っています。 これまでに完了した dCSE プロジェクトは、CSEの尽力により可能なコスト削減と新しい科学の優れた適用例をもたらしました。ここで報告されているNEMOプロジェクトは成功を収めたパフォーマンス改善であり、新たなサクセスストーリーとなっています。 |
プロジェクトの背景
本プロジェクトの目的は、海洋モデリングコードNEMOに対して、HECToRのような大規模マルチコアスカラーシステム上でのパフォーマンス、スケーラビリティおよびユーザビリティを向上させる修正を施すことです。その最適化では、3次元配列インデックスとネストしたループの入れ替えを行い、スカラープロセッサ上のキャッシュ再利用効率を向上させ、マルチコアに適した領域分割および地表の不必要な計算の削除を行いました。
プロジェクトの成果
プロジェクト目標が、膨大なNEMOのソースコードに施されました。HECToRの高速ファイルシステムLUSTREのメタデータ・カタログへの不要なアクセスが減少し、HECToR上でのNEMOの実行時間が10%削減されました。本プロジェクトによる最適化と性能強化は、NEMOのソースリポジトリの1ブランチとなり、将来のNEMO開発のための戦略的な決定に利用されるでしょう。
(注)アロケーションユニット(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)までお問い合わせください。