[論文レビュー] Parthenon -- a performance portable block-structured adaptive mesh refinement framework
Parthenonは、Kokkosに基づいて構築されたパフォーマンスポータブルでブロック構造的な自己適応メッシュ細分化(AMR)フレームワークであり、多様なアーキテクチャ上で効率的なエクサスケールシミュレーションを可能にするものである。9,216ノードのFrontier上で1.7×10¹³ゾーンサイクル/秒を達成し、弱スケーリング効率が約92%に達する。これは、デバイスメモリの割り当て、変数およびブロックの論理的パッケージング、およびワンサイド非同期MPIを活用することで、データ移動と通信オーバーヘッドを最小限に抑えることで実現された。
On the path to exascale the landscape of computer device architectures and corresponding programming models has become much more diverse. While various low-level performance portable programming models are available, support at the application level lacks behind. To address this issue, we present the performance portable block-structured adaptive mesh refinement (AMR) framework Parthenon, derived from the well-tested and widely used Athena++ astrophysical magnetohydrodynamics code, but generalized to serve as the foundation for a variety of downstream multi-physics codes. Parthenon adopts the Kokkos programming model, and provides various levels of abstractions from multi-dimensional variables, to packages defining and separating components, to launching of parallel compute kernels. Parthenon allocates all data in device memory to reduce data movement, supports the logical packing of variables and mesh blocks to reduce kernel launch overhead, and employs one-sided, asynchronous MPI calls to reduce communication overhead in multi-node simulations. Using a hydrodynamics miniapp, we demonstrate weak and strong scaling on various architectures including AMD and NVIDIA GPUs, Intel and AMD x86 CPUs, IBM Power9 CPUs, as well as Fujitsu A64FX CPUs. At the largest scale on Frontier (the first TOP500 exascale machine), the miniapp reaches a total of $1.7 imes10^{13}$ zone-cycles/s on 9,216 nodes (73,728 logical GPUs) at ~92% weak scaling parallel efficiency (starting from a single node). In combination with being an open, collaborative project, this makes Parthenon an ideal framework to target exascale simulations in which the downstream developers can focus on their specific application rather than on the complexity of handling massively-parallel, device-accelerated AMR.
研究の動機と目的
- エクサスケールアーキテクチャにおけるブロック構造的AMRフレームワークにおける、アプリケーションレベルのパフォーマンスポータブルな支援の欠如に対処すること。
- CPUとGPUを含む異種システム上で、効率的かつスケーラブルなシミュレーションを、複数のエクサスケールプラットフォームで実現すること。
- デバイスマemoryの割り当てと最適化されたカーネル起動を活用して、マルチノードAMRシミュレーションにおけるデータ移動と通信オーバーヘッドを低減すること。
- アプリケーション開発者が物理法則に集中できるよう、低レベルの並列化とポータビリティの懸念から解放されるモジュラーで拡張可能なフレームワークを提供すること。
- AMDおよびNVIDIAのGPU、IntelおよびAMDのx86 CPU、IBM Power9、富士通A64FX CPUを含む多様なアーキテクチャで、強スケーリングおよび弱スケーリングのパフォーマンスを実証すること。
提案手法
- フレームワークは、多様なハードウェアアーキテクチャを抽象化できるKokkosプログラミングモデルに基づいている。
- すべてのシミュレーションデータが直接デバイスメモリに割り当てられ、ホストとデバイス間のデータ移動を最小限に抑える。
- 変数およびメッシュブロックが大きな構造体に論理的にパックされ、特に小さなブロックサイズの場合のカーネル起動オーバーヘッドを低減する。
- ワンサイド非同期MPI呼び出しを用いて、通信と計算を重ね合わせ、マルチノード環境における遅延を低減する。
- 多次元変数、テンソル、スパース割り当ての抽象化に加え、依存関係を考慮した実行を可能にするタスクベースのドライバを提供する。
- モジュラーなパッケージシステムにより、物理ソルバー(例:流体動力学、放射輸送)の分離が可能となり、再利用性と拡張性が向上する。
実験結果
リサーチクエスチョン
- RQ1パフォーマンスポータブルなAMRフレームワークは、GPUや複数のCPUタイプを含む多様なエクサスケールアーキテクチャで、高い並列効率を達成できるか?
- RQ2デバイスメモリの割り当てと変数の論理的パッケージングは、ブロック構造的AMRシミュレーションにおけるカーネル起動オーバーヘッドをどの程度低減できるか?
- RQ3ワンサイド非同期MPIは、マルチノードAMRシミュレーションにおける通信遅延をどの程度低減し、計算との重ね合わせを改善できるか?
- RQ4特にFrontierのような新興アーキテクチャにおいて、フレームワークはエクサスケールスケールで高い弱スケーリング効率を維持できるか?
- RQ5モジュラーなパッケージ抽象化は、マルチフィジックスアプリケーションにおける迅速なプロトタイピングと再利用をどの程度支援できるか?
主な発見
- Parthenonは、9,216ノードのFrontier上で1.7×10¹³ゾーンサイクル/秒を達成し、エクサスケールレベルのパフォーマンスを実証した。
- Frontierスーパーコンピュータ上で、1ノードから9,216ノードへのスケーリングにおいて、弱スケーリング効率が約92%に達した。
- AMDおよびNVIDIAのGPU、IntelおよびAMDのx86 CPU、IBM Power9 CPU、富士通A64FX CPUを含む、多様なアーキテクチャでパフォーマンスポータビリティが成功裏に実証された。
- 同じノード上でGPUアクセラレーションされたシミュレーションは、CPUオンリーシミュレーションよりも顕著に高速であり、均一グリッドおよびメッシュ細分化グリッドの両方で同様の結果が得られた。
- Parthenon-hydroミニアプリケーションは、1,000行未満のコードで3次元圧縮流体動力学をAMRとともに実装し、迅速なプロトタイピングの能力を示した。
- フレームワークの設計により、メモリと通信の効率的利用が可能となり、変数およびブロックの論理的パッケージングによるカーネル起動オーバーヘッドの低減が実現された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。