大域分散環境に適した 連立一次方程式の解法

38
COEワワワワワワワ ワワワワワワ ワワワワ 1 ワワワワワワワワワワ ワワ ワワワワワワワ ワワワワ ワワワワワワワワワ ワワワワワワワワ ワワワワ ワワワ ワワワワ

description

大域分散環境に適した 連立一次方程式の解法. 東京大学 情報理工学系研究科 戦略ソフトウェア・電子情報 田浦研 遠藤敏夫. A. b. x. =. 大規模連立一次方程式の重要性. 流体解析,構造解析・・・ シミュレーションの詳細化   ⇒ 方程式の大規模化. 高熱の問題 (RAID 観測カメラより ). 大規模計算へのアプローチ (1). スーパーコンピュータ 地球シミュレータ, Blue Gene ・・・ 京速計算機 (2010 年 ) 高価,大物は世界に数台 クラスタ 比較的安価 予算・熱・電力の問題により台数限界 低電力クラスタの動きも. - PowerPoint PPT Presentation

Transcript of 大域分散環境に適した 連立一次方程式の解法

Page 1: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 1

大域分散環境に適した連立一次方程式の解法

東京大学 情報理工学系研究科戦略ソフトウェア・電子情報 田浦研

遠藤敏夫

Page 2: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 2

大規模連立一次方程式の重要性

流体解析,構造解析・・・

シミュレーションの詳細化

  ⇒ 方程式の大規模化

nnnnnn

n

n

b

b

b

x

x

x

aaa

aaa

aaa

2

1

2

1

11

22221

11211

A x b=

Page 3: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 3

大規模計算へのアプローチ(1)

スーパーコンピュータ 地球シミュレータ, Blue Gen

e ・・・ 京速計算機 (2010 年 ) 高価,大物は世界に数台

クラスタ 比較的安価 予算・熱・電力の問題により台数限

界 低電力クラスタの動きも

情報理工 COE ISTBS クラスタ

高熱の問題(RAID 観測カメラ

より )

Page 4: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 4

大規模計算へのアプローチ (2)グリッドコンピューティング

大域分散した多数の計算機を活用 複数組織のクラスタ・スパコンを

協調利用 Globus, Condor-G, Ninf-G, Grid

MPI… TeraGrid, NAREGI, Grid5000,

PlanetLab… 家庭等の PC を協調利用

SETI@home, Folding@home, BOINC…

Internet

Internet

Internet

Internet

Page 5: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 5

本研究の目標

Internet

Internet

Internet

Internet

Ax=b

Cy=d

Gw=hEz=f

主流 : 各サイトで別の計算

Internet

Internet

Ax=b

Internet

Internet

Ax=b

単一の大規模計算を大域分散で行いたい

Page 6: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 6

連立一次を大域分散環境で解くのはなぜ困難 ?

「大量に」「頻繁に」通信が必要な並列アルゴリズムだから⇒ ネットワーク性能の低い大域分散環境では困難

「大量に」は,バンド幅向上により解決可能 SuperSINET の 10Gbps 化,一般家庭への光ファイバー普及… 「 long fat pipe 」のための通信技術

「頻繁に」は,待っていても解決されない 北海道 - 沖縄間の通信遅延は 10ms 以下にはならない ( 光速限界 )

⇒  大遅延に耐えられる並列アルゴリズムが重要に

Page 7: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 7

連立一次の様々な解法

各手法につき,効率化・並列化の研究が超多数あり

直接法

反復法

ガウス消去法スカイライン・・・

定常

非定常

ヤコビ,ガウスザイデルSOR ・・・

共役勾配法 (CG)BiCG, CGS, BiCGStab ・・・GMRES, ORTHOMIN ・・・

今回の発表

Page 8: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 8

発表のアウトライン

ガウス消去法(SWoPP05, Grid05 で発表 ) Batched pivoting の提案 大遅延環境での実験

CG 法 Block CG 法を用いた実験

Page 9: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 9

ガウス消去法 ( 密行列用 ) とは

基本は中学で習う方法 応用分野

流体解析,構造解析 ・・・? Top500 スーパーコンピュータランキング

(Linpack) ピボット選択が計算精度の肝

Page 10: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 10

主流 : ガウス消去 +Partial pivoting(GE+PP)

n

for k = 1 to n ピボット選択第 k 列中で絶対値最大の値 ( ピボット ) を選ぶ

 行交換 更新 kkkjikijij aaaaa /

ピボットは分母として使われるため,絶対値の大きいものが良い

Page 11: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 11

並列 GE+PP の問題

二次元ブロックサイクリック分割が主流利点:通信量が少

n

sb

ノード数 p=6 (=2x3)

毎回のピボット選択の度に同期的通信

)( 2 pnO

大遅延環境ではボトルネックに!

Page 12: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 12

大遅延があるときのGE+PP の性能

Linux クラスタ上で,遅延をエミュレートして実験 全ノード間に同一遅延 +0ms, +2ms, +5ms,

+10ms High performance

Linpack (HPL) 利用 行列サイズ n=32768 ノード数 64 (=8x8)

10ms の遅延でははるかに遅い !

0

200

400

600

800

1000

1200

1400

+0 +2 +5 +10Added latency (msec)

Exec

utio

n tim

e (s

ec)

Partialやはり GE+PP は大遅延に弱い

Page 13: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 13

他の pivoting 手法はどうか ?

まじめ

さぼる

Complete

Partial

No pivoting

Rook [Neal92]

Threshold [Malard91] etc.

Pairwise [Sorensen85] etc.

Batched ( 提案手法 )

耐遅延でない

誤差の影響激しい

Page 14: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 14

Batched Pivoting (BP) のねらい

複数回 (d 回 ) 分のピボット選択を「まとめる」

同期通信回数を 1/d に削減耐遅延性の向上!

Page 15: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 15

Batched Pivoting アルゴリズム (1)

d 回分のピボット選択アルゴリズム 右図では d 行は P1 と P2 で分割

各ノードは自担当分を複製 複製に対して局所的,投機的

に GE+PP その仮定で d 個のピボット候補

がみつかるsb

sb

P1

P2

P1

P2

P3

P4

P3

P4

dP1

P2

d

Page 16: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 16

Batched Pivoting アルゴリズム (2)

ピボット候補の集合を通信で集める 「最良」候補集合を選ぶ

悪いピボットを避けたい・・・ 図: d=4 の例

I recommend4.8 on 50th row,

-2.5 on 241th row,4.3 on 285th row,-3.6 on 36th row

P1 I recommend-9.2 on 310th row,6.8 on 121th row,0.8 on 170th row,-5.9 on 146th row

P2

  比較

採用 ! 最良候補集合を用いて計算を続ける

Page 17: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 17

Partial pivoting との比較

選ばれるピボット PP は各ステップで独立にピボットを選ぶ BP では,連続する d ステップのピボットは単一ノー

ド出身 選択の幅が狭まるため, PP より悪い可能性 計算量

PP: BP:d<<n なら,差は小さい

)()3/2( 23 nOn )()()3/2( 223 dnOnOn 局所 GE のため

Page 18: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 18

他の手法との比較

Threshold pivoting [Malard91] etc. 絶対値最大でなくても,            であればピボットになりうる

Good: 行交換の通信量を削減 Bad: 耐遅延ではない

Pairwise pivoting [Sorensen85] etc. 次々に隣接した 2行を取り出し,うち1行を消去 (cf. バブル

ソート ) Good: ピボット選択のパイプライン化可能⇒耐遅延 Bad: 計算精度悪い

ikpk aa max)10(

Page 19: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 19

並列実験環境

192ノード Linux クラスタ Dual Xeon 2.4/2.8GHz

ノードあたり 1 CPU使用 Gigabit ethernet クラスタ内片道遅延 : 55—75 us

HPL の改造により BP を実装 mpich 1.2.6 BLAS library by Kazushige Goto

情報理工 COEISTBS クラスタ

Page 20: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 20

基本的な並列性能

クラスタでの実験 ( 遅延は普通 ) PP と BP (d=4, 16, 64) 比較 32 から 160 ノード n=32768, sb=256

同等のスケーラビリティ BP は d の大きさに伴いオー

バヘッドあり d=64 で 7から 15%

050

100150200250300350400

32 64 96 128 160The number of nodes

Exec

utio

n tim

e (s

ec)

Partial Batched(4)Batched(16) Batched(64)

Page 21: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 21

遅延が大きいときの性能

遅延をエミュレート 全ノード間に +2ms,

+5ms, +10ms 64(=8x8) ノード n=32768, sb=256

BP は遅延に耐久可能 ! d が大きいほど耐久0

200

400

600

800

1000

1200

1400

+0 +2 +5 +10Added latency (msec)

Exec

utio

n tim

e (s

ec)

Partial Batched(4)Batched(16) Batched(64)

遅延が大きいとき,BP がはるかに有利

Page 22: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 22

計算精度の評価方法

Partial, Batched, Threshold, Pairwise, No pivoting を比較 1 ノードで実験 BP では,サイズ 64 のブロックをノードと見なす

各条件につき, 100個の乱数行列 行列サイズ 128 ~ 2048

正規化残差 を評価 : 計算結果 , ε: マシンイプシロン (= ) 100 回の実験の平均

nxAbxA ||~||||||/||~||x~ 532

Page 23: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 23

計算精度の評価

PP は精度良好 No pivoting, Pairwise

は精度悪 BP は PP に匹敵する精度! d の値により,精度と耐

遅延性のトレードオフ0.001

0.01

0.1

1

10

100 1000 10000

n行列サイズ

正規

化残差

Partial Batched(4)Batched(16) Batched(64)Threshold(0.5) Threshold(0.25)Pairwise No

0.001

0.01

0.1

100 1000 10000

n行列サイズ

正規

化残差

Partial Batched(4)Batched(16) Batched(64)Threshold(0.5) Threshold(0.25)Pairwise No

Page 24: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 24

ガウス消去法についてまとめ

ガウス消去法を遅延に強くする,        batched pivoting を提案 耐遅延性と計算精度を両立 最速アルゴリズム,最適パラメータは状況に依存

遅延,ノード数,問題サイズ・・・

Page 25: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 25

発表のアウトライン

ガウス消去法 Batched pivoting の提案 大遅延環境での実験

CG 法 Block CG 法を用いた実験

Page 26: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 26

CG 法とは

反復法 n 次元ベクトル x が,次々に更新されて真の解へ近づく

CG 法は,正定値対称行列向けの反復法のメジャーな手法 [Hestenes&Stiefel 52] 非常に非常に多くの効率化手法が提案されている

x(1) x(2)

x(3)

x(4)

x(5)

Page 27: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 27

CG 法のアルゴリズム

(素人から見た)特徴: 「あと探索すべき空間」

が, 1ステップで 1次元減っていく

理論上は n 回の反復で真の解へ到達 たいていはもっと早く収束 丸め誤差のため遅いことも

)0()0()0()0( ;;0 rpbrx

for k =0, 1, 2…

)()()1()1(

)()()1()1()(

)()()()1(

)()()()1(

)()()()()(

),/(),(

),/(),(

kkkk

kkkkk

kkkk

kkkk

kkkkk

prp

rrrr

Aprr

pxx

Apprr

ならば終了0)1( kr

Page 28: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 28

CG 法と大遅延環境の関係

行列・ベクトル積は耐遅延化可能 [Allen 01]

領域オーバラップ 内積の結果共有のために毎ステップ同期が必要

⇒ 遅延に弱い!

)0()0()0()0( ;;0 rpbrx

for k =0, 1, 2…

)()()1()1(

)()()1()1()(

)()()()1(

)()()()1(

)()()()()(

),/(),(

),/(),(

kkkk

kkkkk

kkkk

kkkk

kkkkk

prp

rrrr

Aprr

pxx

Apprr

ならば終了0)1( kr

ベクトル内積行列・ベクトル積

Page 29: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 29

Block CG 法の採用

Block CG 法 [O’Leary 80] など s 個の方程式を同時に解くことができる あえて 1 個の方程式に利用

B の残り (s-1) 列には  ダミー値

×    =

CG 法

xA b ×     =

Block CG 法

XA B

s

Page 30: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 30

Block CG 法のアルゴリズム

要するに, n 次元ベクトル x, b, r, p が, n×s 行列へ置き換わっている

依然,毎ステップ同期が必要

)0()0()0()0( ;;0 RPBRX

for k =0, 1, 2…

)()()1()1(

)1()1(1)()()(

)()()()1(

)()()()1(

)()(1)()()(

)()(

)()(

kkkk

kTkkTkk

kkkk

kkkk

kTkkTkk

PRP

RRRR

APRR

PXX

RRAPP

ならば終了0)1( kR

Page 31: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 31

Block CG 法の特徴

1ステップの計算量は s 倍強に 理論上の反復回数が n/s

「あと探索すべき空間」が, 1ステップで s 次元減 CG 法の 1/s 倍

⇒ 合計計算量はやや増CG: Block CG:

同期通信を減らせるので大遅延環境で得ができそう

)( 3nO )( 23 snnO

Page 32: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 32

実験

CG, Block CG の実行時間比較 C++ で実装,最適化の余地多 クラスタの 16ノード利用,遅延エミュレート

行列は UF sparse matrix collection より msc10848 (n=10848) cfd2 (n=123440)

実行条件 RCM(reverse Cuthill-Mckee)オーダリング 行を均等分散 スケーリング 残差が            となるまで反復

8

20210/ rr

Page 33: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 33

並列実行時間の比較

Block CG は遅延の増大に強い もともとが遅すぎる場合も ( 行列に依存 )

msc10848

0

50

100

150

200

250

+0 +5 +10(ms)追加遅延

(s)

実行時

CG BCG(4) BCG(16)

cfd2

0

200

400

600

800

+0 +5 +10(ms)追加遅延

(s)

実行時

間CG BCG(4) BCG(16)

大遅延のとき有利

もともと遅い

Page 34: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 34

実際の反復回数は 1/s になるか?

不満

まぁまぁ

IC: 不完全コレスキー分解

行列 前処理 CG BCG(4)BCG(16

)

  scaling 5541 1731 602

msc10848

    (1/3.2) (1/9.2)

(n=10848)

IC 1437 307 94

      (1/4.7) (1/15.3)

  scaling 8411 5400 2816

cfd2     (1/1.6) (1/3.0)

(n=123440)

加速IC(2)

2910 1867 1027

      (1/1.6) (1/2.8)

  scaling 124827 31560 8304

ct20stif     (1/4.0) (1/15.0)

(n=52329)

加速IC(2)

48855 13080 2900

      (1/3.7) (1/16.8)

Page 35: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 35

残差の推移の比較

CG のグラフと分岐してからの落ち方が違う?

msc10848

1.E- 08

1.E- 06

1.E- 04

1.E- 02

1.E+00

1.E+02

1 1001 2001 3001 4001 5001反復回数

相対残差

CG BCG(4) BCG(16)

cfd2

1.E- 08

1.E- 06

1.E- 04

1.E- 02

1.E+00

1.E+02

1 2001 4001 6001 8001反復回数

相対残差

CG BCG(4) BCG(16)

Page 36: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 36

CG 法についてまとめ

CG 法もそのままでは遅延に弱いため, Block CG 法 [O’Leary 80] を用いて実験 同期通信回数を大幅に減らし,耐遅延性が高い     大域環境で構造解析,流体解析ができるか

使いどころ,最適パラメータ選択は難しい 反復回数の減り方が激しく行列依存

より優れたオーダリング,前処理との関係は?

Page 37: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 37

おまけ:本郷・柏間での実験

情報理工クラスタ ( 本郷 ) と近山研クラスタ ( 柏 )

エミュレーション通りに行かない・・・ 物理的バンド幅の差?⇒ 1Gbps のはずなので悪くない クラスタ間 TCP が 1本あたり 11Mbps しか出ていない 分割や通信順序のチューニング不足, etc, etc.

  1クラスタ

2クラスタ

  16ノード

8+8ノード

CG 27.5(s) 510(s)

BCG(4) 13.6 321

BCG(16) 20.4 198

• 片道遅延は 2—3ms• 行列は msc10848• MPI/GXP2[斎藤 06] 利用

Page 38: 大域分散環境に適した 連立一次方程式の解法

COEワークショップ

大域向け連立一次・遠藤敏夫 38

おわりに

大域分散環境で大規模計算を実現するためには,インフラ・ハード・ミドルウェア・アプリ全ての層の研究が必要

Ax=b Ax=b

Internet

Internet

Internet

Internet