1 / 38

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

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

ralph
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 大域分散環境に適した連立一次方程式の解法 東京大学 情報理工学系研究科 戦略ソフトウェア・電子情報 田浦研 遠藤敏夫 大域向け連立一次・遠藤敏夫

  2. A b x = 大規模連立一次方程式の重要性 • 流体解析,構造解析・・・ • シミュレーションの詳細化   ⇒ 方程式の大規模化 大域向け連立一次・遠藤敏夫

  3. 高熱の問題 (RAID観測カメラより) 大規模計算へのアプローチ(1) • スーパーコンピュータ • 地球シミュレータ,Blue Gene・・・ • 京速計算機(2010年) • 高価,大物は世界に数台 • クラスタ • 比較的安価 • 予算・熱・電力の問題により台数限界 • 低電力クラスタの動きも 情報理工COEISTBSクラスタ 大域向け連立一次・遠藤敏夫

  4. Internet Internet 大規模計算へのアプローチ(2)グリッドコンピューティング 大域分散した多数の計算機を活用 • 複数組織のクラスタ・スパコンを協調利用 • Globus, Condor-G, Ninf-G, Grid MPI… • TeraGrid, NAREGI, Grid5000, PlanetLab… • 家庭等のPCを協調利用 • SETI@home, Folding@home, BOINC… 大域向け連立一次・遠藤敏夫

  5. Ax=b Internet Internet Ax=b Internet Internet • 単一の大規模計算を大域分散で行いたい 本研究の目標 Ax=b Cy=d Ez=f Gw=h • 主流: 各サイトで別の計算 大域向け連立一次・遠藤敏夫

  6. 連立一次を大域分散環境で解くのはなぜ困難?連立一次を大域分散環境で解くのはなぜ困難? • 「大量に」「頻繁に」通信が必要な並列アルゴリズムだから⇒ ネットワーク性能の低い大域分散環境では困難 • 「大量に」は,バンド幅向上により解決可能 • SuperSINETの10Gbps化,一般家庭への光ファイバー普及… • 「long fat pipe」のための通信技術 • 「頻繁に」は,待っていても解決されない • 北海道-沖縄間の通信遅延は10ms以下にはならない(光速限界) ⇒ 大遅延に耐えられる並列アルゴリズムが重要に 大域向け連立一次・遠藤敏夫

  7. 今回の発表 連立一次の様々な解法 • 各手法につき,効率化・並列化の研究が超多数あり ガウス消去法 スカイライン・・・ 直接法 ヤコビ,ガウスザイデル SOR・・・ 定常 反復法 共役勾配法(CG) BiCG, CGS, BiCGStab・・・ GMRES, ORTHOMIN・・・ 非定常 大域向け連立一次・遠藤敏夫

  8. 発表のアウトライン • ガウス消去法 (SWoPP05, Grid05で発表) • Batched pivotingの提案 • 大遅延環境での実験 • CG法 • Block CG法を用いた実験 大域向け連立一次・遠藤敏夫

  9. ガウス消去法(密行列用)とは • 基本は中学で習う方法 • 応用分野 • 流体解析,構造解析 ・・・? • Top500スーパーコンピュータランキング(Linpack) • ピボット選択が計算精度の肝 大域向け連立一次・遠藤敏夫

  10. 主流: ガウス消去+Partial pivoting(GE+PP) for k = 1 to n ピボット選択 第k列中で絶対値最大の値(ピボット)を選ぶ  行交換 更新 n ピボットは分母として使われるため, 絶対値の大きいものが良い 大域向け連立一次・遠藤敏夫

  11. ノード数p=6 (=2x3) 2 O ( n p ) n sb 並列GE+PPの問題 • 二次元ブロックサイクリック分割が主流 利点:通信量が少 毎回のピボット選択の度に同期的通信 大遅延環境ではボトルネックに! 大域向け連立一次・遠藤敏夫

  12. 大遅延があるときのGE+PPの性能 • Linuxクラスタ上で,遅延をエミュレートして実験 • 全ノード間に同一遅延 • +0ms, +2ms, +5ms, +10ms • High performance Linpack (HPL) 利用 • 行列サイズn=32768 • ノード数64 (=8x8) 10msの遅延では はるかに遅い! やはりGE+PPは大遅延に弱い 大域向け連立一次・遠藤敏夫

  13. 他のpivoting手法はどうか? Complete Partial No pivoting Rook [Neal92] Threshold [Malard91]etc. Pairwise [Sorensen85]etc. まじめ 耐遅延でない Batched (提案手法) 誤差の影響激しい さぼる 大域向け連立一次・遠藤敏夫

  14. Batched Pivoting (BP)のねらい • 複数回(d回)分のピボット選択を「まとめる」 • 同期通信回数を1/d に削減 耐遅延性の向上! 大域向け連立一次・遠藤敏夫

  15. d d P1 P1 P3 P2 P4 P2 P1 P3 P2 P4 sb sb Batched Pivoting アルゴリズム (1) d 回分のピボット選択アルゴリズム • 右図ではd行はP1とP2で分割 • 各ノードは自担当分を複製 • 複製に対して局所的,投機的にGE+PP • その仮定でd個のピボット候補がみつかる 大域向け連立一次・遠藤敏夫

  16.   比較 採用! Batched Pivoting アルゴリズム (2) • ピボット候補の集合を通信で集める • 「最良」候補集合を選ぶ • 悪いピボットを避けたい・・・ • 図:d=4の例 I recommend 4.8 on 50th row, -2.5 on 241th row, 4.3 on 285th row, -3.6 on 36th row I recommend -9.2 on 310th row, 6.8 on 121th row, 0.8 on 170th row, -5.9 on 146th row P1 P2 • 最良候補集合を用いて計算を続ける 大域向け連立一次・遠藤敏夫

  17. Partial pivotingとの比較 • 選ばれるピボット • PPは各ステップで独立にピボットを選ぶ • BPでは,連続するdステップのピボットは単一ノード出身 選択の幅が狭まるため,PPより悪い可能性 • 計算量 • PP: • BP: d<<n なら,差は小さい 局所GEのため 大域向け連立一次・遠藤敏夫

  18. 他の手法との比較 • Threshold pivoting [Malard91]etc. • 絶対値最大でなくても,            であればピボットになりうる • Good: 行交換の通信量を削減 • Bad: 耐遅延ではない • Pairwise pivoting [Sorensen85]etc. • 次々に隣接した2行を取り出し,うち1行を消去 (cf. バブルソート) • Good: ピボット選択のパイプライン化可能⇒耐遅延 • Bad: 計算精度悪い 大域向け連立一次・遠藤敏夫

  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 情報理工COE ISTBS クラスタ 大域向け連立一次・遠藤敏夫

  20. 基本的な並列性能 • クラスタでの実験(遅延は普通) • PPとBP (d=4, 16, 64)比較 • 32 から 160 ノード • n=32768, sb=256 • 同等のスケーラビリティ • BPはdの大きさに伴いオーバヘッドあり • d=64 で7から15% 大域向け連立一次・遠藤敏夫

  21. 遅延が大きいとき, BPがはるかに有利 遅延が大きいときの性能 • 遅延をエミュレート • 全ノード間に+2ms, +5ms, +10ms • 64(=8x8) ノード • n=32768, sb=256 • BPは遅延に耐久可能! • d が大きいほど耐久 大域向け連立一次・遠藤敏夫

  22. 計算精度の評価方法 • Partial, Batched, Threshold, Pairwise, No pivoting を比較 • 1ノードで実験 • BPでは,サイズ64のブロックをノードと見なす • 各条件につき,100個の乱数行列 • 行列サイズ 128 ~ 2048 • 正規化残差 を評価 • : 計算結果, ε: マシンイプシロン(= ) • 100回の実験の平均 大域向け連立一次・遠藤敏夫

  23. 計算精度の評価 • PP は精度良好 • No pivoting, Pairwise は精度悪 • BPはPPに匹敵する精度! • d の値により,精度と耐遅延性のトレードオフ 大域向け連立一次・遠藤敏夫

  24. ガウス消去法についてまとめ • ガウス消去法を遅延に強くする,       batched pivotingを提案 • 耐遅延性と計算精度を両立 • 最速アルゴリズム,最適パラメータは状況に依存 • 遅延,ノード数,問題サイズ・・・ 大域向け連立一次・遠藤敏夫

  25. 発表のアウトライン • ガウス消去法 • Batched pivotingの提案 • 大遅延環境での実験 • CG法 • Block CG法を用いた実験 大域向け連立一次・遠藤敏夫

  26. x(2) x(1) x(3) x(4) x(5) CG法とは • 反復法 • n次元ベクトルx が,次々に更新されて真の解へ近づく • CG法は,正定値対称行列向けの反復法のメジャーな手法[Hestenes&Stiefel 52] • 非常に非常に多くの効率化手法が提案されている 大域向け連立一次・遠藤敏夫

  27. CG法のアルゴリズム (素人から見た)特徴: • 「あと探索すべき空間」が, 1ステップで1次元減っていく • 理論上はn 回の反復で真の解へ到達 • たいていはもっと早く収束 • 丸め誤差のため遅いことも for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫

  28. CG法と大遅延環境の関係 ベクトル内積 行列・ベクトル積 • 行列・ベクトル積は耐遅延化可能[Allen 01] • 領域オーバラップ • 内積の結果共有のために毎ステップ同期が必要 ⇒遅延に弱い! for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫

  29. Block CG法の採用 • Block CG法 [O’Leary 80]など • s 個の方程式を同時に解くことができる • あえて1個の方程式に利用 • B の残り(s-1) 列には  ダミー値 s Block CG法 CG法 X B x A A b ×= ×= 大域向け連立一次・遠藤敏夫

  30. Block CG法のアルゴリズム • 要するに,n次元ベクトルx, b, r, p が,n×s 行列へ置き換わっている • 依然,毎ステップ同期が必要 for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫

  31. Block CG法の特徴 • 1ステップの計算量はs 倍強に • 理論上の反復回数がn/s • 「あと探索すべき空間」が, 1ステップでs 次元減 • CG法の1/s倍 ⇒ 合計計算量はやや増 CG: Block CG: 同期通信を減らせるので 大遅延環境で得ができそう 大域向け連立一次・遠藤敏夫

  32. 実験 • CG, Block CGの実行時間比較 • C++で実装,最適化の余地多 • クラスタの16ノード利用,遅延エミュレート • 行列はUF sparse matrix collectionより • msc10848 (n=10848) • cfd2 (n=123440) • 実行条件 • RCM(reverse Cuthill-Mckee)オーダリング • 行を均等分散 • スケーリング • 残差が            となるまで反復 大域向け連立一次・遠藤敏夫

  33. 並列実行時間の比較 もともと 遅い 大遅延の とき有利 • Block CGは遅延の増大に強い • もともとが遅すぎる場合も(行列に依存) 大域向け連立一次・遠藤敏夫

  34. 実際の反復回数は1/sになるか? まぁまぁ 不満 IC: 不完全コレ スキー分解 大域向け連立一次・遠藤敏夫

  35. 残差の推移の比較 • CGのグラフと分岐してからの落ち方が違う? 大域向け連立一次・遠藤敏夫

  36. CG法についてまとめ • CG法もそのままでは遅延に弱いため,Block CG法[O’Leary 80]を用いて実験 • 同期通信回数を大幅に減らし,耐遅延性が高い      大域環境で構造解析,流体解析ができるかも • 使いどころ,最適パラメータ選択は難しい • 反復回数の減り方が激しく行列依存 • より優れたオーダリング,前処理との関係は? 大域向け連立一次・遠藤敏夫

  37. おまけ:本郷・柏間での実験 • 情報理工クラスタ(本郷)と近山研クラスタ(柏) • エミュレーション通りに行かない・・・ • 物理的バンド幅の差?⇒1Gbpsのはずなので悪くない • クラスタ間TCPが1本あたり11Mbpsしか出ていない • 分割や通信順序のチューニング不足,etc, etc. • 片道遅延は2—3ms • 行列はmsc10848 • MPI/GXP2[斎藤06]利用 大域向け連立一次・遠藤敏夫

  38. Internet Internet おわりに • 大域分散環境で大規模計算を実現するためには,インフラ・ハード・ミドルウェア・アプリ全ての層の研究が必要 Ax=b Ax=b 大域向け連立一次・遠藤敏夫

More Related