線形システムのスパースパターンは、反復(KSP)ソルバーにとって重要ですか?


8

ほとんど問題です。一般的な疎で非対称な(数値的および構造的の両方の)行列を考えると、反復ソルバーのスパースパターン(つまり、行列/ベクトルの行/列の置換)はどのくらい重要ですか?フィルインの数に直接影響を与えることにより、直接ソルバー(LU)またはプレコンディショナー(ILU)にとって重要になることがわかります。

ただし、反復ソルバーの場合、最も重要な部分は、実際の行列パターンを気にしないように見えるMatVec操作であるようです。ここで考慮していないパターンに依存する可能性のあるコンポーネントはありますか?

並行してどうですか?マトリックスとベクトルの分布の仕方でパターンが重要になり、通信量/オーバーヘッドを決定するかもしれないが、他の考えや入力を見たいと思います。

私はこれを一般的に、そしてPETScのKSPソルバーに関しても尋ねています。


1
行または列に非常に多くの非ゼロがある場合にのみ、並列で問題が発生するはずです。矢印行列は、このような場合の良い例です(対角行列と密な最後の行と列)。
Jack Poulson

ここで「スパースパターン」は正しい言葉ですか?用語「スパースパターンは」言及しているが、私の知る限り、あなたは、行列のエントリの順序について尋ねると、たとえば、対角線、三重対角、ブロック対角など
shuhalo

@Martin「tridiagonal」のようなプロパティはまだ順序に依存していることに注意してください。たとえば、ランダムな順序での1D問題を考えてみてください。
ジェドブラウン

回答:


6

順序付けは、ロードバランス/通信と事前調整の適合性においてのみ重要です。クリロフメソッドは、順序やマトリックスエントリが格納されているかどうかについては考慮しません。

実際には、悪い順序付けでは、行列を乗算するときに必要な通信よりもはるかに多くの通信が必要になる場合があります。例については、「自然順序付け」と「PETSc順序付け」のPETScユーザーマニュアルのセクションを参照してください。さらに、不適切な並列パーティションに対応する順序付けは、ドメイン分解プリコンディショナーの効果を低下させる可能性があります。ここで重要なのはパーティションであることに注意してください。ただし、パーティションは(同等クラスの)順序付けを引き起こします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.