Skip to main content
QUICK REVIEW

[論文レビュー] A block Recycled GMRES method with investigations into aspects of solver performance

Michael L. Parks, Kirk M. Soodhalter|arXiv (Cornell University)|Apr 6, 2016
Matrix Theory and Algorithms参考文献 31被引用数 14
ひとこと要約

本稿では、複数の右辺ベクトルを伴う大規模でスパースな非エルミート線形方程式系の系列に対する収束を高速化するため、ブロックKrylov再利用とデフラーションを組み合わせたブロック再利用GMRES法を提案する。データ移動の効率性とキャッシュ再利用の向上がブロック演算によって達成されるが、直交化コストがその利点を減少させる可能性がある。本手法はTrilinosに実装されており、大規模問題において、収束性および性能指標において標準的手法を上回ることを示している。

ABSTRACT

We propose a block Krylov subspace version of the GCRO-DR method proposed in [Parks et al.; SISC 2005], which is an iterative method allowing for the efficient minimization of the the residual over an augmented Krylov subspace. We offer a clean derivation of our proposed method and discuss methods of selecting recycling subspaces at restart as well as implementation decisions in the context of high-performance computing. Numerical experiments are split into those demonstrating convergence properties and those demonstrating the data movement and cache efficiencies of the dominant operations of the method, measured using processor monitoring code from Intel.

研究の動機と目的

  • 複数の右辺が存在する大規模でスパースな非エルミート線形方程式系の系列を、効率的に解く課題に対処すること。
  • ブロックKrylov法と部分空間再利用技術を組み合わせることで、収束性と計算効率を向上させること。
  • 高性能コンピューティング環境におけるデータ移動とキャッシュ効率に注目し、ブロック再利用手法の性能を収束性を超えて調査すること。
  • 特に投影演算子の文脈において、ブロック演算と直交化コストのトレードオフを評価すること。
  • ブロック再利用GMRESの明確な導出と実装ガイドラインを提供し、TrilinosおよびMATLABでのコードを公開すること。

提案手法

  • GCRO-DR法のブロックKrylov部分空間版を提案し、線形方程式系の系列間でデフラクテッド不変部分空間を再利用可能にする。
  • ブロックアーノルド過程を用いてブロックKrylov部分空間を生成し、収束を加速するために再利用されたデフラクション部分空間を追加する。
  • システム行列に $(\mathbf{I} - \mathbf{P})$ の投影演算子を適用し、再利用された部分空間に直交するようにすることで、デフラクション空間における残差の最小化を保証する。
  • ハウスホルダーに基づくブロック保存および適用戦略を用いて、直交化および行列・ベクトル積の過程でのキャッシュ効率を維持する。
  • Intelプロセッサの監視ツールを用いてデータ移動量とキャッシュミス回数を測定し、行列・ベクトル積および直交化ルーチンの性能を評価する。
  • ブロック全体に適用する演算と列単位での適用を比較し、特に投影を施した状況におけるキャッシュ効率のトレードオフを評価する。

実験結果

リサーチクエスチョン

  • RQ1ブロックKrylov法と再利用技術を組み合わせることで、複数の右辺を持つ線形方程式系の系列に対する収束性はどの程度向上するか?
  • RQ2データ移動とキャッシュ効率の観点から、行列・ベクトル積におけるブロック演算と列単位の演算の性能はどのように異なるか?
  • RQ3システム行列に投影演算子を適用した場合、ブロック再利用手法における行列・ベクトル演算のキャッシュ効率にどのような影響があるか?
  • RQ4直交化ルーチン(例:修正グラムシュミット法 vs. 多段階古典的グラムシュミット法)は、ブロック再利用GMRESにおける性能とキャッシュ利用にどのように影響するか?
  • RQ5総探索部分空間次元を標準的ブロックGMRESと一致させた場合でも、直交化における非効率性を考慮しても、ブロック再利用手法が全体の実行時間性能を向上させられるか?

主な発見

  • ブロック再利用GMRESは、大規模問題および複数の右辺が存在する状況において、標準的ブロックGMRESおよび非ブロック再利用手法よりも急峻な収束曲線を達成する。
  • 投影が施されていない演算子では、ブロック行列・ベクトル積が顕著なキャッシュ効率の向上を示し、キャッシュミスが最大2〜3倍減少し、実行時間が向上する。
  • システム行列に投影演算子が適用された場合、ブロック演算の性能優位性は低下し、一部のケースでは列単位の適用よりも性能が劣ることがある。これはデータ局所性の低下に起因する。
  • 複数の行列について、投影された行列をブロックに適用する時間と単一ベクトルに適用する時間の比が2倍を超えるケースが複数存在し、投影された状況では顕著な性能ペナルティが生じていることが示された。
  • 修正グラムシュミット法や多段階古典的グラムシュミット法といった直交化ルーチンは類似した性能特性を示すが、キャッシュ効率の観点ではブロック直交化が常に列単位の方法を上回るとは限らない。
  • C++実装はTrilinosのBelosパッケージに、MATLAB版は公開されており、再現性および既存のHPCワークフローへの統合を支援する。

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

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

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

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