Skip to main content
QUICK REVIEW

[論文レビュー] High-performance Implementation of Matrix-free High-order Discontinuous Galerkin Methods

Steffen Müthing, Marian Piatkowski|arXiv (Cornell University)|Nov 29, 2017
Advanced Numerical Methods in Computational Mathematics参考文献 7被引用数 26
ひとこと要約

本論文は、CPUアーキテクチャ上で和因子化とSIMDベクトル化を用いた、高次不連続ガラーキン法の高性能で行列を必要としない実装を提示する。AVX2対応のインテルCPU上で理論ピーク性能の50%以上を達成し、多項式次数7において行列ベースのアプローチと比較して100倍を超えるスピンアップを達成。最大6,144コアまで優れた弱スケーラビリティと強スケーラビリティを示した。

ABSTRACT

Achieving a substantial part of peak performance on todays and future high-performance computing systems is a major challenge for simulation codes. In this paper we address this question in the context of the numerical solution of partial differential equations with finite element methods, in particular the discontinuous Galerkin method applied to a convection-diffusion-reaction model problem. Assuming tensor product structure of basis functions and quadrature on cuboid meshes in a matrix-free approach a substantial reduction in computational complexity can be achieved for operator application compared to a matrix-based implementation while at the same time enabling SIMD vectorization and the use of fused-multiply-add. Close to 60\% of peak performance are obtained for a full operator evaluation on a Xeon Haswell CPU with 16 cores and speedups of several hundred (with respect to matrix-based computation) are achieved for polynomial degree seven. Excellent weak scalability on a single node as well as the roofline model demonstrate that the algorithm is fully compute-bound with a high flop per byte ratio. Excellent scalability is also demonstrated on up to 6144 cores using message passing.

研究の動機と目的

  • PDEの有限要素シミュレーションにおいて、現代のHPCシステムで高い性能を達成する課題に取り組む。
  • 行列アセンブリを回避することで、高次不連続ガラーキン法の計算複雑度を低減する。
  • マルチコアCPU上のSIMDベクターユニットおよびファズド乗算加算命令を効率的に活用する。
  • 大規模シミュレーションにおけるメモリ帯域幅のボトルネックを最小限に抑え、高フロップ/バイト比を達成する。
  • メッセージパッシングを用いた分散メモリシステムにおける強および弱スケーラビリティを示す。

提案手法

  • 六面体メッシュ上のテンソル積基底関数および台形則を用い、行列の保存およびアセンブリを排除する行列を必要としないアプローチを採用する。
  • 和因子化を適用することで、要素あたりの演算子評価の計算複雑度をO(p^6)からO(p^4)に低減する。
  • AVX-512およびファズド乗算加算命令を活用し、高次元の演算強度と自由度にわたるベクトル化を実現する。
  • 複数の要素や面にわたるベクトル化を必要としない、セルベースのカーネルを採用する。
  • 分散メモリクラスタでのスケーラブルなメッセージパッシングを実現するため、ハロ交換および通信オーバーラップ戦略を実装する。
  • ルーフラインモデルを用いて性能を検証し、計算に依存する動作および高次元の演算強度を確認する。

実験結果

リサーチクエスチョン

  • RQ1アクセラレータに依存せずに、現代のCPUアーキテクチャ上で行列を必要としない高次DG法が、高い性能を達成できるか?
  • RQ2和因子化およびSIMDベクトル化は、DG法における計算複雑度の低減およびフロップ/バイト比の向上にどの程度寄与するか?
  • RQ3分散メモリ環境において、数千のCPUコアにわたるスケーリング性能はどの程度か?
  • RQ4ネイティブCPU命令および最適化されたメモリアクセスパターンのみを用いて、ピーク性能のどの程度を達成できるか?
  • RQ5フレームワークレベルのコード再構築を回避しても、行列を必要としないアプローチは高い効率を維持できるか?

主な発見

  • AVX2およびファズド乗算加算命令を用いた16コアのXeon Haswell CPU上で、行列を必要としない実装は理論ピーク性能の50%以上を達成した。
  • 同じハードウェア上で多項式次数7において、行列ベースの計算と比較して100倍を超えるスピンアップが達成された。
  • ルーフラインモデリングにより、実装が完全に計算に依存しており、高次元のフロップ/バイト比が確認された。
  • 弱スケーリングは384ノード(768コア)まで優れた性能を示し、問題サイズにかかわらずほぼ平坦な効率が維持された。
  • 最大6,144コアまで強スケーリングが実証され、通信オーバーラップが限界に達したため、効率は約39%に低下した。
  • 複数の要素や面にわたるベクトル化を必要としないため、既存の有限要素フレームワークへのシームレスな統合が可能となった。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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