大域分散環境に適した 連立一次方程式の解法
description
Transcript of 大域分散環境に適した 連立一次方程式の解法
COEワークショップ
大域向け連立一次・遠藤敏夫 1
大域分散環境に適した連立一次方程式の解法
東京大学 情報理工学系研究科戦略ソフトウェア・電子情報 田浦研
遠藤敏夫
COEワークショップ
大域向け連立一次・遠藤敏夫 2
大規模連立一次方程式の重要性
流体解析,構造解析・・・
シミュレーションの詳細化
⇒ 方程式の大規模化
nnnnnn
n
n
b
b
b
x
x
x
aaa
aaa
aaa
2
1
2
1
11
22221
11211
A x b=
COEワークショップ
大域向け連立一次・遠藤敏夫 3
大規模計算へのアプローチ(1)
スーパーコンピュータ 地球シミュレータ, Blue Gen
e ・・・ 京速計算機 (2010 年 ) 高価,大物は世界に数台
クラスタ 比較的安価 予算・熱・電力の問題により台数限
界 低電力クラスタの動きも
情報理工 COE ISTBS クラスタ
高熱の問題(RAID 観測カメラ
より )
COEワークショップ
大域向け連立一次・遠藤敏夫 4
大規模計算へのアプローチ (2)グリッドコンピューティング
大域分散した多数の計算機を活用 複数組織のクラスタ・スパコンを
協調利用 Globus, Condor-G, Ninf-G, Grid
MPI… TeraGrid, NAREGI, Grid5000,
PlanetLab… 家庭等の PC を協調利用
SETI@home, Folding@home, BOINC…
Internet
Internet
Internet
Internet
COEワークショップ
大域向け連立一次・遠藤敏夫 5
本研究の目標
Internet
Internet
Internet
Internet
Ax=b
Cy=d
Gw=hEz=f
主流 : 各サイトで別の計算
Internet
Internet
Ax=b
Internet
Internet
Ax=b
単一の大規模計算を大域分散で行いたい
COEワークショップ
大域向け連立一次・遠藤敏夫 6
連立一次を大域分散環境で解くのはなぜ困難 ?
「大量に」「頻繁に」通信が必要な並列アルゴリズムだから⇒ ネットワーク性能の低い大域分散環境では困難
「大量に」は,バンド幅向上により解決可能 SuperSINET の 10Gbps 化,一般家庭への光ファイバー普及… 「 long fat pipe 」のための通信技術
「頻繁に」は,待っていても解決されない 北海道 - 沖縄間の通信遅延は 10ms 以下にはならない ( 光速限界 )
⇒ 大遅延に耐えられる並列アルゴリズムが重要に
COEワークショップ
大域向け連立一次・遠藤敏夫 7
連立一次の様々な解法
各手法につき,効率化・並列化の研究が超多数あり
直接法
反復法
ガウス消去法スカイライン・・・
定常
非定常
ヤコビ,ガウスザイデルSOR ・・・
共役勾配法 (CG)BiCG, CGS, BiCGStab ・・・GMRES, ORTHOMIN ・・・
今回の発表
COEワークショップ
大域向け連立一次・遠藤敏夫 8
発表のアウトライン
ガウス消去法(SWoPP05, Grid05 で発表 ) Batched pivoting の提案 大遅延環境での実験
CG 法 Block CG 法を用いた実験
COEワークショップ
大域向け連立一次・遠藤敏夫 9
ガウス消去法 ( 密行列用 ) とは
基本は中学で習う方法 応用分野
流体解析,構造解析 ・・・? Top500 スーパーコンピュータランキング
(Linpack) ピボット選択が計算精度の肝
COEワークショップ
大域向け連立一次・遠藤敏夫 10
主流 : ガウス消去 +Partial pivoting(GE+PP)
n
for k = 1 to n ピボット選択第 k 列中で絶対値最大の値 ( ピボット ) を選ぶ
行交換 更新 kkkjikijij aaaaa /
ピボットは分母として使われるため,絶対値の大きいものが良い
COEワークショップ
大域向け連立一次・遠藤敏夫 11
並列 GE+PP の問題
二次元ブロックサイクリック分割が主流利点:通信量が少
n
sb
ノード数 p=6 (=2x3)
毎回のピボット選択の度に同期的通信
)( 2 pnO
大遅延環境ではボトルネックに!
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 は大遅延に弱い
COEワークショップ
大域向け連立一次・遠藤敏夫 13
他の pivoting 手法はどうか ?
まじめ
さぼる
Complete
Partial
No pivoting
Rook [Neal92]
Threshold [Malard91] etc.
Pairwise [Sorensen85] etc.
Batched ( 提案手法 )
耐遅延でない
誤差の影響激しい
COEワークショップ
大域向け連立一次・遠藤敏夫 14
Batched Pivoting (BP) のねらい
複数回 (d 回 ) 分のピボット選択を「まとめる」
同期通信回数を 1/d に削減耐遅延性の向上!
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
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
比較
採用 ! 最良候補集合を用いて計算を続ける
COEワークショップ
大域向け連立一次・遠藤敏夫 17
Partial pivoting との比較
選ばれるピボット PP は各ステップで独立にピボットを選ぶ BP では,連続する d ステップのピボットは単一ノー
ド出身 選択の幅が狭まるため, PP より悪い可能性 計算量
PP: BP:d<<n なら,差は小さい
)()3/2( 23 nOn )()()3/2( 223 dnOnOn 局所 GE のため
COEワークショップ
大域向け連立一次・遠藤敏夫 18
他の手法との比較
Threshold pivoting [Malard91] etc. 絶対値最大でなくても, であればピボットになりうる
Good: 行交換の通信量を削減 Bad: 耐遅延ではない
Pairwise pivoting [Sorensen85] etc. 次々に隣接した 2行を取り出し,うち1行を消去 (cf. バブル
ソート ) Good: ピボット選択のパイプライン化可能⇒耐遅延 Bad: 計算精度悪い
ikpk aa max)10(
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 クラスタ
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)
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 がはるかに有利
COEワークショップ
大域向け連立一次・遠藤敏夫 22
計算精度の評価方法
Partial, Batched, Threshold, Pairwise, No pivoting を比較 1 ノードで実験 BP では,サイズ 64 のブロックをノードと見なす
各条件につき, 100個の乱数行列 行列サイズ 128 ~ 2048
正規化残差 を評価 : 計算結果 , ε: マシンイプシロン (= ) 100 回の実験の平均
nxAbxA ||~||||||/||~||x~ 532
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
COEワークショップ
大域向け連立一次・遠藤敏夫 24
ガウス消去法についてまとめ
ガウス消去法を遅延に強くする, batched pivoting を提案 耐遅延性と計算精度を両立 最速アルゴリズム,最適パラメータは状況に依存
遅延,ノード数,問題サイズ・・・
COEワークショップ
大域向け連立一次・遠藤敏夫 25
発表のアウトライン
ガウス消去法 Batched pivoting の提案 大遅延環境での実験
CG 法 Block CG 法を用いた実験
COEワークショップ
大域向け連立一次・遠藤敏夫 26
CG 法とは
反復法 n 次元ベクトル x が,次々に更新されて真の解へ近づく
CG 法は,正定値対称行列向けの反復法のメジャーな手法 [Hestenes&Stiefel 52] 非常に非常に多くの効率化手法が提案されている
x(1) x(2)
x(3)
x(4)
x(5)
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
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
ベクトル内積行列・ベクトル積
COEワークショップ
大域向け連立一次・遠藤敏夫 29
Block CG 法の採用
Block CG 法 [O’Leary 80] など s 個の方程式を同時に解くことができる あえて 1 個の方程式に利用
B の残り (s-1) 列には ダミー値
× =
CG 法
xA b × =
Block CG 法
XA B
s
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
COEワークショップ
大域向け連立一次・遠藤敏夫 31
Block CG 法の特徴
1ステップの計算量は s 倍強に 理論上の反復回数が n/s
「あと探索すべき空間」が, 1ステップで s 次元減 CG 法の 1/s 倍
⇒ 合計計算量はやや増CG: Block CG:
同期通信を減らせるので大遅延環境で得ができそう
)( 3nO )( 23 snnO
COEワークショップ
大域向け連立一次・遠藤敏夫 32
実験
CG, Block CG の実行時間比較 C++ で実装,最適化の余地多 クラスタの 16ノード利用,遅延エミュレート
行列は UF sparse matrix collection より msc10848 (n=10848) cfd2 (n=123440)
実行条件 RCM(reverse Cuthill-Mckee)オーダリング 行を均等分散 スケーリング 残差が となるまで反復
8
20210/ rr
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)
大遅延のとき有利
もともと遅い
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)
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)
COEワークショップ
大域向け連立一次・遠藤敏夫 36
CG 法についてまとめ
CG 法もそのままでは遅延に弱いため, Block CG 法 [O’Leary 80] を用いて実験 同期通信回数を大幅に減らし,耐遅延性が高い 大域環境で構造解析,流体解析ができるか
も
使いどころ,最適パラメータ選択は難しい 反復回数の減り方が激しく行列依存
より優れたオーダリング,前処理との関係は?
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] 利用
COEワークショップ
大域向け連立一次・遠藤敏夫 38
おわりに
大域分散環境で大規模計算を実現するためには,インフラ・ハード・ミドルウェア・アプリ全ての層の研究が必要
Ax=b Ax=b
Internet
Internet
Internet
Internet