[論文レビュー] Improving strong scaling of the Conjugate Gradient method for solving large linear systems using global reduction pipelining
本稿では、分散メモリHPCシステムにおける強スケーリングを向上させるために、深さパイプライン化された共役勾配法(p(l)-CG)を提案する。この手法は、グローバルリダクションを計算および通信とオーバーラップすることで、通信と計算のオーバーモードを実現する。反復ごとに非同期MPI_Iallreduce呼び出しをずらして実行することで、p(l)-CGは古典的CGに対して理論的にO(l)の高速化を達成可能であり、PETScを用いて1024ノード(1ノードあたり16ランク)で実証された。通信がボトルネックとなる環境では顕著な性能向上が得られた。
This paper presents performance results comparing MPI-based implementations of the popular Conjugate Gradient (CG) method and several of its communication hiding (or 'pipelined') variants. Pipelined CG methods are designed to efficiently solve SPD linear systems on massively parallel distributed memory hardware, and typically display significantly improved strong scaling compared to classic CG. This increase in parallel performance is achieved by overlapping the global reduction phase (MPI_Iallreduce) required to compute the inner products in each iteration by (chiefly local) computational work such as the matrix-vector product as well as other global communication. This work includes a brief introduction to the deep pipelined CG method for readers that may be unfamiliar with the specifics of the method. A brief overview of implementation details provides the practical tools required for implementation of the algorithm. Subsequently, easily reproducible strong scaling results on the US Department of Energy (DoE) NERSC machine 'Cori' (Phase I - Haswell nodes) on up to 1024 nodes with 16 MPI ranks per node are presented using an implementation of p(l)-CG that is available in the open source PETSc library. Observations on the staggering and overlap of the asynchronous, non-blocking global communication phases with communication and computational kernels are drawn from the experiments.
研究の動機と目的
- 分散メモリシステムにおける古典的共役勾配法(CG)の強スケーリングボトルネックを解消する。これは、内積およびノルム計算におけるグローバル同期に起因する。
- スケーリングに伴う古典的CGの性能劣化を、アルゴリズムの再設計によりグローバル通信オーバーヘッドの影響を低減することで是し、性能を向上させる。
- パイプライン化CG(p(l)-CG)が、グローバルリダクションを計算および通信とオーバーラップすることで、優れた強スケーリングを達成できることを示す。
- NERSC Coriシステム(最大1024ノード)を用いて、実世界のHPCワークロードにおいてパイプライン化CGの有効性を検証する。
- MPI3の非ブロッキング非同期通信が、スケーラブルかつ通信隠蔽可能なKrylov法ソルバの実装に与える実用的利点を強調する。
提案手法
- MPI非ブロッキング集約(MPI_Iallreduce)を用いて、グローバルリダクションを早期に開始し、その後続の計算および通信フェーズとオーバーラップする。
- アルゴリズムを構造化し、1反復目のグローバルリダクション処理を、後続の反復における行列-ベクトル積(spmv)およびベクトル更新(axpy)とオーバーラップする。
- パイプライン長lを用いて、同時にl+1反復を実行可能にすることで、通信と計算を複数反復にわたってずらして実行する。
- 深さパイプライン化技術を活用し、ローカル計算および他のグローバル通信とオーバーラップすることで、グローバルリダクションのレイテンシを隠蔽する。
- 再現性および実用的関連性を確保するため、オープンソースのPETScライブラリを用いてp(l)-CGを実装およびベンチマークする。
- NERSC Cori(Haswell)システム上で、最大1024ノードおよび1ノードあたり16MPIランクを用いた強スケーリング実験を実施し、性能を分析する。
実験結果
リサーチクエスチョン
- RQ1パイプライン化CG手法は、大規模分散メモリシステムにおいて、古典的CGに比べてどれほど強スケーリングを向上させられるか?
- RQ2グローバルリダクションを計算および通信とオーバーラップすることで、同期ボトルネックがどれほど軽減されるか?
- RQ3通信がボトルネックとなるワークロードにおいて、パイプライン長lを増加させることで得られる性能向上はどの程度か?
- RQ4どの環境で『通信のずらし』効果が古典的CGおよび短いパイプラインよりも顕著に性能向上をもたらすか?
- RQ5非ブロッキングMPI呼び出し(MPI_Iallreduce)は、パイプライン化CGのスケーラビリティおよび効率性にどのように寄与するか?
主な発見
- NERSC Coriシステム(最大1024ノード)において、p(l)-CGはl ≥ 2のとき、古典的CGに比べて顕著に優れた強スケーリングを示した。これは、通信隠蔽の有効性を裏付ける。
- グローバルリダクションが計算および通信と最適にオーバーラップされる場合、古典的CGに比べて理論的高速化O(l)が達成可能である。
- 400万未知数の対角系(通信がボトルネック)では、p(2)-CGがp(1)-CGに比べて顕著な性能向上を示した。これは、グローバル通信フェーズのオーバーラップに起因する。
- 通信がボトルネックでない状況(例:2次元ラプラシアン問題)では、パイプライン長l ≥ 3の性能向上は顕著ではなく、glredとspmvの実行時間がほぼ同等であった。
- 反復ごとにグローバル通信フェーズをずらすことで、glredの実行時間のばらつきに強く、全体の負荷バランスが向上する。
- 非ブロッキンググローバルリダクションにMPI_Iallreduceを用いることは、効果的なオーバーラップを可能にする上で不可欠であり、本研究ではこのオーバーラップが実現された際、顕著な性能向上が観察された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。