大域分散環境に適した 連立一次方程式の解法 東京大学 情報理工学系研究科 戦略ソフトウェア・電子情報 田浦研 遠藤敏夫 COEワークショップ 大域向け連立一次・遠藤敏夫 1 大規模連立一次方程式の重要性 流体解析,構造解析・・・ a11 a21 a n1 a12 a1n x1 b1 a22 a2 n x2 b2 an1 ann xn bn A x= b シミュレーションの詳細化 ⇒ 方程式の大規模化 COEワークショップ 大域向け連立一次・遠藤敏夫 2 大規模計算へのアプローチ(1) スーパーコンピュータ 地球シミュレータ,Blue Gene・・・ 京速計算機(2010年) 高価,大物は世界に数台 クラスタ 比較的安価 予算・熱・電力の問題により台数限界 情報理工COE ISTBSクラスタ 低電力クラスタの動きも 高熱の問題 (RAID観測カメラより) COEワークショップ 大域向け連立一次・遠藤敏夫 3 大規模計算へのアプローチ(2) グリッドコンピューティング 大域分散した多数の計算機を活用 複数組織のクラスタ・スパコンを協調 利用 Internet Globus, Condor-G, Ninf-G, Grid MPI… TeraGrid, NAREGI, Grid5000, PlanetLab… 家庭等のPCを協調利用 SETI@home, Folding@home, BOINC… Internet COEワークショップ 大域向け連立一次・遠藤敏夫 4 本研究の目標 Ax=b Ax=b Interne t Gw=h Cy=d Interne t Ez=f Ax=b Interne t Interne t 主流: 各サイトで別の 計算 COEワークショップ 単一の大規模計算を 大域分散で行いたい 大域向け連立一次・遠藤敏夫 5 連立一次を大域分散環境で 解くのはなぜ困難? 「大量に」「頻繁に」通信が必要な並列アルゴリズムだから ⇒ ネットワーク性能の低い大域分散環境では困難 「大量に」は,バンド幅向上により解決可能 SuperSINETの10Gbps化,一般家庭への光ファイバー普及… 「long fat pipe」のための通信技術 「頻繁に」は,待っていても解決されない 北海道-沖縄間の通信遅延は10ms以下にはならない(光速限界) ⇒ 大遅延に耐えられる並列アルゴリズムが重要に COEワークショップ 大域向け連立一次・遠藤敏夫 6 連立一次の様々な解法 ガウス消去法 スカイライン・・・ 直接法 ヤコビ,ガウスザイデル SOR・・・ 定常 反復法 非定常 今回の発表 共役勾配法(CG) BiCG, CGS, BiCGStab・・・ GMRES, ORTHOMIN・・・ 各手法につき,効率化・並列化の研究が超多数あり COEワークショップ 大域向け連立一次・遠藤敏夫 7 発表のアウトライン ガウス消去法 (SWoPP05, Grid05で発表) Batched pivotingの提案 大遅延環境での実験 CG法 Block CG法を用いた実験 COEワークショップ 大域向け連立一次・遠藤敏夫 8 ガウス消去法(密行列用)とは 基本は中学で習う方法 応用分野 流体解析,構造解析 ・・・? Top500スーパーコンピュータランキング(Linpack) ピボット選択が計算精度の肝 COEワークショップ 大域向け連立一次・遠藤敏夫 9 主流: ガウス消去+Partial pivoting (GE+PP) for k = 1 to n ピボット選択 第k列中で絶対値最大の値(ピボッ ト)を選ぶ 行交換 n 更新 aij aij aik akj / akk ピボットは分母として使われるため, 絶対値の大きいものが良い COEワークショップ 大域向け連立一次・遠藤敏夫 10 並列GE+PPの問題 ノード数p=6 (=2x3) 二次元ブロックサイクリック分割が 主流 利点:通信量が少 O(n 2 p ) 毎回のピボット選択の度に 同期的通信 n 大遅延環境ではボトルネックに! sb COEワークショップ 大域向け連立一次・遠藤敏夫 11 大遅延があるときの GE+PPの性能 Linuxクラスタ上で,遅延を エミュレートして実験 全ノード間に同一遅延 +0ms, +2ms, +5ms, +10ms High performance Linpack (HPL) 利用 行列サイズn=32768 ノード数64 (=8x8) 10msの遅延では はるかに遅い! 1400 Execution time (sec) 1200 1000 800 600 400 200 やはりGE+PPは大遅延に弱い COEワークショップ 大域向け連立一次・遠藤敏夫 0 +0 +2 +5 +10 Added latency (msec) Partial 12 他のpivoting手法はどうか? まじめ Complete Rook [Neal92] 耐遅延でない Partial Threshold [Malard91] etc. Batched (提案手法) Pairwise さぼる COEワークショップ [Sorensen85] etc. No pivoting 大域向け連立一次・遠藤敏夫 誤差の影響激しい 13 Batched Pivoting (BP)のねらい 複数回(d回)分のピボット選択を「まとめる」 同期通信回数を1/d に削減 耐遅延性の向上! COEワークショップ 大域向け連立一次・遠藤敏夫 14 Batched Pivoting アルゴリズム (1) d 回分のピボット選択アルゴリズム 右図ではd 行はP1とP2で分割 各ノードは自担当分を複製 複製に対して局所的,投機的に GE+PP d d その仮定でd個のピボット候補がみ つかる sb P1 P1 P3 P2 P4 P1 P3 P2 P4 P2 sb COEワークショップ 大域向け連立一次・遠藤敏夫 15 Batched Pivoting アルゴリズム (2) ピボット候補の集合を通信で集める 「最良」候補集合を選ぶ 悪いピボットを避けたい・・・ 図:d=4の例 P1 I recommend 4.8 on 50th row, -2.5 on 241th row, 4.3 on 285th row, -3.6 on 36th row P2 比較 I recommend -9.2 on 310th row, 6.8 on 121th row, 0.8 on 170th row, -5.9 on 146th row 採用! 最良候補集合を用いて計算を続ける COEワークショップ 大域向け連立一次・遠藤敏夫 16 Partial pivotingとの比較 選ばれるピボット PPは各ステップで独立にピボットを選ぶ BPでは,連続するdステップのピボットは単一ノード出身 選択の幅が狭まるため,PPより悪い可能性 計算量 3 2 ( 2 / 3 ) n O ( n ) PP: 3 2 2 ( 2 / 3 ) n O ( n ) O ( dn ) BP: d<<n なら,差は小さい COEワークショップ 大域向け連立一次・遠藤敏夫 局所GEのため 17 他の手法との比較 Threshold pivoting [Malard91] etc. 絶対値最大でなくても, a pk max aik (0 1) であればピボットになりうる Good: 行交換の通信量を削減 Bad: 耐遅延ではない Pairwise pivoting [Sorensen85] etc. 次々に隣接した2行を取り出し,うち1行を消去 (cf. バブルソート) Good: ピボット選択のパイプライン化可能⇒耐遅延 Bad: 計算精度悪い COEワークショップ 大域向け連立一次・遠藤敏夫 18 並列実験環境 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 情報理工COE ISTBS クラスタ COEワークショップ 大域向け連立一次・遠藤敏夫 19 Execution time (sec) 基本的な並列性能 400 350 300 250 200 150 100 50 0 クラスタでの実験(遅延は普通) 32 96 128 160 64 The number of nodes 同等のスケーラビリティ BPはdの大きさに伴いオーバ ヘッドあり Partial Batched(16) COEワークショップ Batched(4) Batched(64) PPとBP (d=4, 16, 64)比較 32 から 160 ノード n=32768, sb=256 d=64 で7から15% 大域向け連立一次・遠藤敏夫 20 遅延が大きいときの性能 遅延が大きいとき, BPがはるかに有利 Execution time (sec) 1400 遅延をエミュレート 1200 1000 800 600 400 200 0 +0 +2 +5 +10 Added latency (msec) Partial Batched(16) COEワークショップ 全ノード間に+2ms, +5ms, +10ms 64(=8x8) ノード n=32768, sb=256 BPは遅延に耐久可能! d が大きいほど耐久 Batched(4) Batched(64) 大域向け連立一次・遠藤敏夫 21 計算精度の評価方法 Partial, Batched, Threshold, Pairwise, No pivoting を 比較 1ノードで実験 BPでは,サイズ64のブロックをノードと見なす 各条件につき,100個の乱数行列 行列サイズ 128 ~ 2048 100回の実験の平均 正規化残差 || A~ x b || / || A || || ~ x || n を評価 ~x : 計算結果, ε: マシンイプシロン(= 2 53) COEワークショップ 大域向け連立一次・遠藤敏夫 22 正規化残差 計算精度の評価 0.1 10 1 0.01 0.1 0.01 0.001 0.001 100 100 PP は精度良好 No pivoting, Pairwise は 精度悪 BPはPPに匹敵する精度! 1000 1000 行列サイズ n Partial Partial Batched(16) Batched(16) Threshold(0.5) Threshold(0.5) Pairwise Pairwise COEワークショップ d の値により,精度と耐遅延 性のトレードオフ 10000 Batched(4) Batched(4) Batched(64) Batched(64) Threshold(0.25) Threshold(0.25) No No 大域向け連立一次・遠藤敏夫 23 ガウス消去法についてまとめ ガウス消去法を遅延に強くする, batched pivotingを提案 耐遅延性と計算精度を両立 最速アルゴリズム,最適パラメータは状況に依存 遅延,ノード数,問題サイズ・・・ COEワークショップ 大域向け連立一次・遠藤敏夫 24 発表のアウトライン ガウス消去法 Batched pivotingの提案 大遅延環境での実験 CG法 Block CG法を用いた実験 COEワークショップ 大域向け連立一次・遠藤敏夫 25 CG法とは 反復法 n次元ベクトルx が,次々に更新されて真の解へ近づく CG法は,正定値対称行列向けの反復法のメジャー な手法 [Hestenes&Stiefel 52] 非常に非常に多くの効率化手法が提案されている x(2) x(1) x(3) (4) x x(5) COEワークショップ 大域向け連立一次・遠藤敏夫 26 CG法のアルゴリズム x(0) 0; r (0) b; p(0) r (0) for k =0, 1, 2… ( k ) (r ( k ) , r ( k ) ) /( p ( k ) , Ap( k ) ) (素人から見た)特徴: 「あと探索すべき空間」が, 1ステップで1次元減っていく x ( k 1) x ( k ) ( k ) p ( k ) r ( k 1) r ( k ) ( k ) Ap( k ) ( k ) (r ( k 1) , r ( k 1) ) /(r ( k ) , r ( k ) ) p ( k 1) r ( k 1) ( k ) p ( k ) r ( k 1) 0 ならば終了 理論上はn 回の反復で真 の解へ到達 COEワークショップ たいていはもっと早く収束 丸め誤差のため遅いことも 大域向け連立一次・遠藤敏夫 27 CG法と大遅延環境の関係 x(0) 0; r (0) b; p(0) r (0) ベクトル内積 行列・ベクトル積 for k =0, 1, 2… ( k ) (r ( k ) , r ( k ) ) /( p ( k ) , Ap( k ) ) x ( k 1) x ( k ) ( k ) p ( k ) r ( k 1) r ( k ) ( k ) Ap( k ) ( k ) (r ( k 1) , r ( k 1) ) /(r ( k ) , r ( k ) ) p ( k 1) r ( k 1) ( k ) p ( k ) r ( k 1) 0 ならば終了 COEワークショップ 行列・ベクトル積は耐遅 延化可能[Allen 01] 領域オーバラップ 内積の結果共有のため に毎ステップ同期が必要 ⇒遅延に弱い! 大域向け連立一次・遠藤敏夫 28 Block CG法の採用 Block CG法 [O’Leary 80]など s 個の方程式を同時に解くことができる あえて1個の方程式に利用 B の残り(s-1) 列には Block CG法 CG法 A COEワークショップ ダミー値 ×x = b 大域向け連立一次・遠藤敏夫 A s ×X = B 29 Block CG法のアルゴリズム X (0) 0; R(0) B; P(0) R(0) for k =0, 1, 2… ( k ) ( P ( k )T AP( k ) ) 1 ( R ( k )T R ( k ) ) X ( k 1) X (k ) P (k ) (k ) R ( k 1) R ( k ) AP( k ) ( k ) ( k ) ( R ( k )T R ( k ) ) 1 ( R ( k 1)T R ( k 1) ) 要するに,n次元ベクトル x, b, r, p が,n×s 行列 へ置き換わっている 依然,毎ステップ同期が 必要 P ( k 1) R ( k 1) P ( k ) ( k ) R ( k 1) 0 ならば終了 COEワークショップ 大域向け連立一次・遠藤敏夫 30 Block CG法の特徴 1ステップの計算量はs 倍強に 理論上の反復回数がn/s 「あと探索すべき空間」が, 1ステップでs 次元減 CG法の1/s 倍 ⇒ 合計計算量はやや増 3 3 2 O ( n sn ) O ( n ) CG: Block CG: 同期通信を減らせるので 大遅延環境で得ができそう COEワークショップ 大域向け連立一次・遠藤敏夫 31 実験 CG, Block CGの実行時間比較 行列はUF sparse matrix collectionより C++で実装,最適化の余地多 クラスタの16ノード利用,遅延エミュレート msc10848 (n=10848) cfd2 (n=123440) 実行条件 RCM(reverse Cuthill-Mckee)オーダリング 行を均等分散 スケーリング 8 残差が r 2 / r0 2 10 となるまで反復 COEワークショップ 大域向け連立一次・遠藤敏夫 32 並列実行時間の比較 実行時間(s) 250 200 大遅延の とき有利 150 100 50 0 600 400 200 +5 +10 追加遅延(ms) CG 800 0 +0 もともと 遅い cfd2 実行時間(s) msc10848 BCG(4) BCG(16) +0 CG +10 +5 追加遅延(ms) BCG(4) BCG(16) Block CGは遅延の増大に強い もともとが遅すぎる場合も(行列に依存) COEワークショップ 大域向け連立一次・遠藤敏夫 33 実際の反復回数は1/sになるか? 行列 前処理 CG BCG(4) BCG(16) scaling 5541 1731 602 (1/3.2) (1/9.2) 307 94 (1/4.7) (1/15.3) 5400 2816 (1/1.6) (1/3.0) 1867 1027 (1/1.6) (1/2.8) 31560 8304 (1/4.0) (1/15.0) 13080 2900 (1/3.7) (1/16.8) msc10848 (n=10848) IC scaling 1437 8411 cfd2 (n=123440) 加速IC(2) scaling 2910 124827 ct20stif (n=52329) 加速IC(2) COEワークショップ 48855 大域向け連立一次・遠藤敏夫 まぁまぁ 不満 IC: 不完全コレ スキー分解 34 残差の推移の比較 msc10848 1.E+02 1.E+00 相対残差 相対残差 1.E+00 1.E-02 1.E-04 1.E-02 1.E-04 1.E-06 1.E-06 1.E-08 1.E-08 1 1001 2001 3001 4001 5001 反復回数 CG cfd2 1.E+02 BCG(4) BCG(16) 1 2001 CG 4001 6001 反復回数 BCG(4) 8001 BCG(16) CGのグラフと分岐してからの落ち方が違う? COEワークショップ 大域向け連立一次・遠藤敏夫 35 CG法についてまとめ CG法もそのままでは遅延に弱いため,Block CG法 [O’Leary 80]を用いて実験 同期通信回数を大幅に減らし,耐遅延性が高い 大域環境で構造解析,流体解析ができるかも 使いどころ,最適パラメータ選択は難しい 反復回数の減り方が激しく行列依存 より優れたオーダリング,前処理との関係は? COEワークショップ 大域向け連立一次・遠藤敏夫 36 おまけ:本郷・柏間での実験 情報理工クラスタ(本郷)と近山研クラスタ(柏) 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]利用 エミュレーション通りに行かない・・・ 物理的バンド幅の差?⇒1Gbpsのはずなので悪くない クラスタ間TCPが1本あたり11Mbpsしか出ていない 分割や通信順序のチューニング不足,etc, etc. COEワークショップ 大域向け連立一次・遠藤敏夫 37 おわりに 大域分散環境で大規模計算を実現するために は,インフラ・ハード・ミドルウェア・アプリ全ての 層の研究が必要 Ax=b Internet COEワークショップ Ax=b Internet 大域向け連立一次・遠藤敏夫 38
© Copyright 2024 ExpyDoc