Skip to main content
QUICK REVIEW

[論文レビュー] Long range forces in a performance portable Molecular Dynamics framework

William R. Saunders, James P. Grant|arXiv (Cornell University)|Aug 3, 2017
Parallel Computing and Optimization Techniques被引用数 3
ひとこと要約

本論文は、ドメイン固有言語(DSL)とコード生成を用いて長距離電気的力にEwald和を統合する、パフォーマンスに頼らない分子動力学フレームワークを提示する。MPI+OpenMP並列処理と自動最適化を組み合わせることで、特に中程度のコア数において優れたスケーラビリティと競争力のあるパフォーマンスを達成し、現代の多くのコアアーキテクチャに効率的に移植可能であることを示している。これは、正確なMDシミュレーションに不可欠な複雑な電気的相互作用をサポートする。

ABSTRACT

Molecular Dynamics (MD) codes predict the fundamental properties of matter by following the trajectories of a collection of interacting model particles. To exploit diverse modern manycore hardware, efficient codes must use all available parallelism. At the same time they need to be portable and easily extendible by the domain specialist (physicist/chemist) without detailed knowledge of this hardware. To address this challenge, we recently described a new Domain Specific Language (DSL) for the development of performance portable MD codes based on a "Separation of Concerns": a Python framework automatically generates efficient parallel code for a range of target architectures. Electrostatic interactions between charged particles are important in many physical systems and often dominate the runtime. Here we discuss the inclusion of long-range interaction algorithms in our code generation framework. These algorithms require global communications and careful consideration has to be given to any impact on parallel scalability. We implemented an Ewald summation algorithm for electrostatic forces, present scaling comparisons for different system sizes and compare to the performance of existing codes. We also report on further performance optimisations delivered with OpenMP shared memory parallelism.

研究の動機と目的

  • 低レベルの並列プログラミングの専門知識が不要な状態で、分子動力学シミュレーションにおける効率的で移植可能な長距離電気的力の実装という課題に対処すること。
  • 化学者・物理学者などのドメイン科学者が、高水準で複雑な力カーネルを記述できるようにし、多様なハードウェアで高いパフォーマンスを達成すること。
  • [3]のパフォーマンスに頼らないMDフレームワークを拡張し、特にEwald和による長距離相互作用、特に電気的力をサポートすること。
  • MPI+OpenMPハイブリッドバックエンドを導入することで、負荷のバランスを改善し通信オーバーヘッドを低減し、大規模シミュレーションにおける並列スケーラビリティを向上させること。
  • DL_POLY_4などの既存のMDコードと同等のパフォーマンスを達成しながら、コードの移植可能性と拡張性を維持すること。

提案手法

  • Python上で構築されたドメイン固有言語(DSL)を用いて、ハードウェア固有の詳細を抽象化した高水準での粒子相互作用カーネルを記述する。
  • コード生成システムを適用し、マルチCPUおよびマルチGPUシステムを含む複数のアーキテクチャ向けに最適化された並列Cコードを自動生成する。
  • Ewald和アルゴリズムを実装し、ポテンシャルを実空間成分とフーリエ空間成分に分割して長距離電気的力を計算する。
  • MPI+OpenMPハイブリッド並列化戦略を採用:ノード間通信にはMPI、ノード内共有メモリ並列処理にはOpenMPを用い、通信コストを低減する。
  • グローバル配列操作における書き込み競合を防ぐために、スレッドセーフなリダクションコードを生成し、ユーザーの介入を不要にする。
  • ベクトル化(例:Intelコンパイラが生成するパック命令)とEwaldパラメータ(αとrc)のチューニングによりパフォーマンスを最適化し、実空間とフーリエ空間の作業量のバランスを取る。

実験結果

リサーチクエスチョン

  • RQ1パフォーマンスに頼らないMDフレームワークは、Ewald和を用いて、長距離電気的力を効率的かつ移植可能に実装できるか?
  • RQ2Ewald実装のパフォーマンスは、DL_POLY_4などの既存のMDコードと比較して、絶対実行時間とスケーラビリティの面でどの程度か?
  • RQ3特に大規模コア数において、純粋なMPIと比較して、MPI+OpenMPハイブリッドバックエンドは強スケーリングをどの程度向上させるか?
  • RQ41ノードを超えてスケーリングする際、最適でないEwaldパラメータ(α、rc)がパフォーマンスに与える影響は何か?
  • RQ5複雑な長距離相互作用をサポートしながら、移植可能性やドメイン科学者の使いやすさを損なわず、高いパフォーマンスを維持できるか?

主な発見

  • Ewald和実装は理論的予想通りO(N^3/2)の計算複雑度を達成しており、N = 1.8×10^5粒子の場合、実行時間の87%が電気的力に費やされている。
  • 1つの8コアCPU上で、小規模な系ではDL_POLY_4と同等のパフォーマンスを示すが、大規模系ではSPME法を採用するDL_POLY_4が10倍の速度で上回っている。
  • MPI+OpenMPハイブリッドバックエンドにより、256コア(16ノード)まで強スケーリングが可能となり、純粋なMPIのスケーラビリティ限界を克服した。
  • 1ノードにおけるMPI+OpenMP実装では、ピーク浮動小数点ベクトル性能の34%を達成しており、フーリエ空間ループが最も計算コストの高いコンponentである。
  • Intelコンパイラがk空間の四分位にわたるフーリエ空間ループのベクトル化を成功させ、SIMD命令の有効な使用が確認された。
  • 最適な設定と比較して、劣化したEwaldパラメータ(α = 0.032、rc = 19Å)であっても、単一ノードでのパフォーマンスにほとんど影響を与えず、良好なパフォーマンスとスケーラビリティを維持している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。