オーダリングを考慮したblock並列化による...オーダリングを考慮したblock並列化による...

18
オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 慶幸 (九州大学工学部電気情報工学科) 尾上 勇介 (九州大学大学院システム情報科学府) 藤野 清次 (九州大学情報基盤研究開発センター)

Upload: others

Post on 09-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

オーダリングを考慮したBlock並列化によるIDR( )-SOR法の性能向上

1

東 慶幸 (九州大学工学部電気情報工学科)尾上勇介 (九州大学大学院システム情報科学府)藤野清次 (九州大学情報基盤研究開発センター)

Page 2: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

発表の手順

2

研究の背景と目的

IDR(s)-SOR法とは

IDR(s)-SOR法の並列化

前進代入計算の並列化

行列要素の並び替え

数値実験

まとめ

Page 3: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

研究の背景と目的

3

背景

2009年,連立一次方程式の新たな解法であるIDR(s)-SOR法[1]が提案され,その収束性の良さが注目されている.

数値計算の高速化のため並列計算が用いられる

目的

IDR(s)-SOR法を並列化により高速化

単純なBlock並列化

対角優位性を考慮したBlock並列化

これらを実装し,並列性能評価を行う

[1]藤野清次,尾上勇介,“IDR定理をベースにしたSOR法の提案”,2009.

Page 4: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

定常反復法

4

反復法とは連立一次方程式 の解法 初期解を漸化式により真の解へ収束させる

定常反復法では係数行列を

と分離し,以下の漸化式により近似解を更新する

SOR法の分離行列は以下の通り

Page 5: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

IDR(s)-SOR法

5

IDR(s)-SOR法とは,SOR法にIDR (Induced Dimension

Reduction)定理を適用した反復法

以下の漸化式により解ベクトル及び残差ベクトルを更新する

ただし はSOR法の分離行列に基づく

Page 6: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

IDR(s)-SOR法

6

IDR(s)-SOR法の算法中,前進代入計算と行列ベクトル積計算の計算量が大部分を占める

これらの部分の並列化により計算速度の向上が見込まれる

IDR(s)-SOR法の算法

Page 7: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

前進代入計算

7

前進代入計算 は, を求めるためにが必要となる逐次計算である

ただし

そのままでは並列化できないが, は前処理行列と見なせ,係数行列との近似度の低下が許容される

Page 8: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

前進代入計算の並列化

8

下三角行列 をBlock化後,対角ブロック のみ利用

それ以外の部分(remain)を とおく

番目のスレッドに以下の前進代入計算を割り当てる

対角ブロックのみ利用

Page 9: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

行列ベクトル積計算 に,前進代入の並列化で棄却された行列 を加える

を用いることで,並列版IDR(s)-SOR法が得られる

以下のように係数行列を復元できる(分離行列の作り方が異なる解法となる)

並列化後に無視された要素の取り扱い

9

Page 10: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

Block並列化を考慮したオーダリング

10

RCMオーダリング[2]

バンド幅を縮小する(非零要素を対角要素の近傍に並び換える)

貪欲アルゴリズムであり、行列の物理的な性質は考慮しない

に含まれる非零要素数の削減を図る

RCMオーダリング

行列poisson3Da

[2] Cuthill, E., Mckee, J., Reducing the bandwidth of sparse symmetric matrices., 1969.

Page 11: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

Block並列化を考慮したオーダリング

11

ほぼ非対角要素からなる の影響を相対的に減らす

MC64オーダリング

行列wasedaの一部

MC64オーダリング(対角優位オーダリング)[3]

対角優位とは,対角要素の絶対値が同じ行の非対角要素の総和より大きいこと

非対角要素が対角要素に対して小さくなるように並び換える

[3] Duff, I. S., Koster, J., On algorithms for permuting large entries to the diagonal of a sparse matrix‘’, 2001.

Page 12: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

数値実験

12

計算機環境 CPU:Intel Xeon X5570(2.93GHz, 4 cores) ×2 CPUs

コンパイラ: Intel Fortran Compiler ver. 11.1

最適化オプション: -O3

並列化API: OpenMP

計算は倍精度浮動小数点演算で行った

計算条件 右辺項ベクトル:物理的条件から得られる値を利用

係数行列に対角スケーリングを行い,対角項を1に正規化

収束判定条件:

最大反復回数:10000回

スレッド数: 1, 2, 4, 8 (4通り)

次数 : 1, 2, 4, 8 (4通り)

緩和係数 :0.2から1.8まで0.2刻み(9通り)

テスト行列は数値解析で実際に使われている問題を25種類

Page 13: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

テスト行列

13

matrix N nnz nnz/N 解析分野

big 13,209 91,465 6.92 グラフ理論

language 399,130 1,216,334 3.05

xenon1 48,600 1,181,120 24.30 材料力学

xenon2 157,464 3,866,688 24.56

dc2 116,835 766,396 6.56

電気回路dc3 116,835 766,396 6.56

memplus 17,758 126,150 7.10

waseda 19,060 24,377,548 1278.99 電磁界解析

Zhao1 33,861 166,453 4.92

chipcool0 40,401 281,150 6.96

熱伝導解析

chipcool1 20,082 281,150 14.00

epb1 14,743 95,053 6.45

epb2 25,228 175,027 6.94

epb3 84,617 463,625 5.48

ecl32 51,993 380,415 7.32

半導体デバイスmatrix_9 103,430 2,121,550 20.51

wang3 26,064 177,168 6.80

wang4 26,068 177,196 6.80

west0479 479 1,888 3.94 化学反応プロセス

west2021 2,021 7,310 3.62

air-cfl5 1,536,000 19,435,428 12.65

流体力学

poisson3Da 13,514 352,762 26.10

poisson3Db 85,623 2,374,949 27.74

raefsky2 3,242 294,276 90.77

raefsky3 3,312 1,488,768 449.51

Page 14: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

実験結果

14

の全体行列に占める割合(表中“ratio”)が小さい行列は台数効果が高い事例が多かった

Page 15: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

実験結果

15

バンド幅を縮小できた行列,対角優位度を向上できた行列では収束までの時間,台数効果の良い事例が多かった

行列 オーダリング バンド幅対角

優位度スレッド数 反復回数 反復時間[s] 台数効果

poisson3Da

- 12,093.5 16.53 1 141 0.126 1.00

8 216 0.059 2.14

RCM 2,854.3 16.53 1 144 0.129 1.00

8 159 0.033 3.91

matrix_9

- 8,291.1 4.73 1 2,358 6.640 1.00

8 2,430 1.944 3.42

MC64 8,291.1 5.10 1 2,732 8.880 1.00

8 2,613 1.867 4.76

dc3

- 57552.7 3.52 1 235 1.368 1.00

8 360 0.884 1.55

MC64 57552.7 14.09 1 178 1.374 1.00

8 279 0.792 1.73

Page 16: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

実験結果

16

0.00

1.00

2.00

3.00

4.00

5.00

6.00

1 2 3 4 5 6 7 8

0.00

1.00

2.00

3.00

4.00

5.00

6.00

1 2 3 4 5 6 7 8

オーダリングなし MC64オーダリング後

行列epb3の台数効果(s=2, ω=1.0)

threads threads

speed up speed up

の影響を減らすことが,並列性能の向上につながる

Page 17: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

実験結果の集計

17

8並列時の各オーダリング付きBlock並列版IDR(s)-SOR法の収束性

対角優位性を向上させることが有効

オーダリングなし,RCMオーダリング後の場合に対しMC64オーダリング後の行列が良い収束性を示す.

オーダリング 収束 収束[%] 未収束 発散 破綻 合計none 411 45.7% 48 254 187 900 RCM 425 47.2% 55 235 185 900 MC64 469 52.1% 55 244 132 900

総計 2,700

MC64オーダリングで収束する事例は,オーダリングなしの場合に対し6%(58ケース)増加

Page 18: オーダリングを考慮したBlock並列化による...オーダリングを考慮したBlock並列化による IDR( )-SOR法の性能向上 1 東慶幸 (九州大学工学部電気情報工学科)

まとめ

18

Block並列化によりIDR(s)-SOR法を高速化できた

の非零要素数により,収束性が大きく変化した

オーダリングにより の影響を減らすアプローチは有効

MC64オーダリングが高速化に効果的だった

スレッドの負荷分散を考慮した分割

安定性の改善

今後の課題