Fill-in LevelつきIC分解による 前処理について 染原一仁 † 藤野清次 ‡ † 九州大学大学院システム情報科学府 ‡ 九州大学情報基盤センター 1 発表の手順 研究の背景、目的 前処理技法 IC(tol)分解 :閾値によるドロッピング IC(p)分解 :fill-in levelによるドロッピング 数値実験 まとめ 2 研究の背景、目的 ~背景~ 大規模な連立一次方程式 Ax = b を前処理つき共役 勾配(CG)法で高速に解きたい (行列Aは対称正定値行列) CG法の収束性を高めるために前処理が併用して用い られることが多く,その種類は様々である ~目的~ 棄却判定の異なる2つのIC分解(IC(tol)分解,IC(p)分 解)によって得られる前処理行列を適用したICCG法の 収束性評価を行う. 3 前処理(1) 連立一次方程式Ax=bに前処理行列M を以下の ように作用させる M-1Ax=M-1b 係数行列M-1Aが単位行列 I に近似される 1 0 固有値の重複,密集 |λ(M-1A)| 反復法の収束性向上 4 前処理(2) 対角スケーリング(CG法に適用) IC分解(前処理つきCG法に適用) 前進(後退)代入 近似逆行列型前処理(前処理つきCG法に適 用) 行列ベクトル積 5 IC(不完全コレスキー)分解 係数行列が対称な場合に適用可能。 以下のように係数行列A を近似分解する。 A = LLT + R + RT 下三角行列 棄却行列 前処理行列M = LLT を作用させる。 (L-1AL-T) (LTx) = (L-1b) 計算時間小、使用メモリ量小⇒実用的。6 IC(tol)分解 閾値(tolerance)を用いたドロッピングによるIC分 解 lij < tol lij = 0 ただし,i ≠ j 前処理行列の非零要素数が予測できない 7 IC(p)分解(1) Fill-in levelを用いたドロッピングによるIC分解 levij > p lij = 0 levij = min{levij, levik+levkj+1} levij = min{levij, max(levik,levkj)+1} (Y.Saad, Iterative methods for Sparse Linear Systems, 2003) 係数行列Aの非零要素パターンによりFill-inの深さを探 索 IC(0)分解では前処理行列Lの非零要素数と係数行列A の下三角部分は等しくなる 8 IC(p)分解(2) IC(0) IC(1) 分解 係数行列:A 行列:L 9 数値実験 計算機 :IBM eServer p5 モデル 595 CPU :IBM POWER5 (1CPU使用) クロック周波数 :1.9 GHz メモリ容量 :3 GB プロセッサ/メモリ 間帯域幅(ピーク時) :811.0GBps キャッシュサイズ :1.9MB コンパイラ :IBM XL Fortran version 9.1 オプション :-O3 -qarch=pwr5 -qtune=pwr5 -qhot 10 計算条件 計算は全て倍精度演算 プログラム言語はfortran90を使用 前処理つきCG法の収束判定は相対残差 ||rk+1||/||r0|| < 10-12 初期近似解 x0 はすべて 0 固有値計算は数値計算ライブラリLAPACKを使用 テスト行列はフロリダ大学,Matrix Marketのデータ ベース, http://www.cise.ufl.edu/research/sparse/matrices/index.html http://math.nist.gov/MatrixMarket/ 11 実験に用いた解法 (反復法はすべてCG法) 解法 前処理 DIAG 対角スケーリングのみ適用 SIC(tol) DIAG+シフトつきIC(tol)分解 SIC(p) DIAG+シフトつきIC(p)分解 IC分解途中に対角要素が負にならないようにシフトを適用 A+αIを分解(α:シフト量),今回は0.2に固定 条件数:cond=||A|| ||A-1|| = (最大固有値) / (最小固有値) 実対称正定値行列 12 テスト行列(1) 次元数:1万以下 行列 bcsstk15 次元数 下三角部分の 半帯幅 分野 非零要素数 3,948 60,882 437 sts4098 4,098 38,227 3,323 nasa4704 4,704 54,730 423 bcsstk16 4,884 147,631 Muu 7,102 88,618 4,696 Kuu 7,102 173,651 4,697 bcsstk38 8,032 181,746 6,029 140 構造解析 13 行列bcsstk15 非零要素パターン 次元数 :3,948 非零要素数:60,882 半帯幅 :437 14 IC(tol)分解による 行列Lの非零要素パターン tol = 0.1 非零要素数 = 15,125 tol = 0.005 非零要素数 = 53,518 15 IC(p)分解による 行列Lの非零要素パターン p=0 非零要素数 = 60,882 p=1 非零要素数 = 126,535 16 IC(p)分解による 行列Lの非零要素パターン p=0 非零要素数 = 60,882 p=2 非零要素数 = 191,225 17 行列bcsstk15 tol=0.1 次元数:3,948 条件数:6.54×109 p=0 tol=0.005 p=1 p=2 18 行列bcsstk15 (条件数:6.54×109) 解法 DIAG SIC(tol) SIC(p) 閾値/level Lの非零 要素数 0.1 15,125 0.05 21,525 0.01 41,149 0.005 53,518 0 60,882 1 126,535 2 191,225 条件数 8.21×104 8.55×103 4.71×103 4.04×103 3.93×103 5.77×103 4.18×103 3.89×103 反復回数 665 217 174 161 159 187 163 158 19 行列sts4098 次元数:4,098 条件数:2.17×108 tol=0.1 p=0 tol=0.005 p=1 p=2 20 行列sts4098 (条件数:2.17×108) 解法 DIAG SIC(tol) SIC(p) 閾値/level Lの非零 要素数 0.1 14,782 0.05 21,235 0.01 36,714 0.005 46,369 0 38,227 1 389,651 2 1,051,689 条件数 6.72×103 3.62×102 3.07×102 2.52×102 2.52×102 4.20×102 2.65×102 2.53×102 反復回数 547 137 119 115 115 140 117 114 21 テスト行列(2) 次元数:5万以上 行列 nasasrb 下三角部分の 半帯幅 分野 非零要素数 54,870 1,366,097 893 s3dkt3m2 90,449 1,921,955 shipsec8 114,919 3,384,159 4,627 bmwcra_1 148,770 5,396,386 141,050 thremal2 次元数 1,228,045 G3_circuit 1,585,478 614 構造解析 4,904,179 1,226,000 熱解析 4,623,152 947,128 回路問題 22 各前処理つきCG法の収束性 行列:nasasrb 23 IC(p)CG法の収束性 行列:nasasrb 24 行列nasasrb 次元数:54,870 解法 DIAG SIC(tol) SIC(p) 閾値/level 行列Lの 反復回数 計算時間 [sec] 非零要素数 19,779 118.11 0.05 481,328 5,573 59.83 0.01 940,936 4,821 66.93 0 1,366,097 4,360 75.88 1 2,192,348 3,852 108.88 25 各前処理つきCG法の収束性 行列:G3_circuit 26 各前処理つきCG法の収束性 行列:G3_circuit 27 行列G3_circuit 次元数:1,585,478 解法 DIAG SIC(tol) SIC(p) 閾値/level 行列Lの 反復回数 合計時間 [sec] 非零要素数 3,299 328,54 0.01 6,741,212 1,022 253.61 0.005 7,554,105 1,013 262.54 0 4,623,152 1,181 267.93 1 6,075,667 1,044 253.29 2 7,817,649 1,014 264.53 28 行列6ケース(合計時間) 行列 解法 nasasrb IC(tol) 0.05 5,573 59.83 s3dkt3m2 IC(tol) 0.1 12,102 186.21 shipsec8 IC(tol) 0.005 1,743 66.63 bmwcra_1 IC(tol) 0.05 2,013 113.53 thermal2 0.01 2,067 506.03 1 1,044 253.29 IC(tol) G3_circuit IC(p) 閾値/level 反復回数 合計時間 29 まとめ 次元数5万以上の行列において6ケース中5ケー スはIC(tol)分解によるICCG法の計算時間が最 も短くなった. Fill-in levelによるIC(p)分解では許容するlevel を大きくすることにより,L-1AL-Tの条件数は1に 近づき,ICCG法の収束性は向上する. しかし,行列Lの非零要素数が多くなり,収束ま での計算時間は増加する. 30 31 固有値分布 bcsstk15 32 固有値分布 sts4098 33
© Copyright 2025 ExpyDoc