390 likes | 590 Views
大域分散環境に適した 連立一次方程式の解法. 東京大学 情報理工学系研究科 戦略ソフトウェア・電子情報 田浦研 遠藤敏夫. A. b. x. =. 大規模連立一次方程式の重要性. 流体解析,構造解析・・・ シミュレーションの詳細化 ⇒ 方程式の大規模化. 高熱の問題 (RAID 観測カメラより ). 大規模計算へのアプローチ (1). スーパーコンピュータ 地球シミュレータ, Blue Gene ・・・ 京速計算機 (2010 年 ) 高価,大物は世界に数台 クラスタ 比較的安価 予算・熱・電力の問題により台数限界 低電力クラスタの動きも.
E N D
大域分散環境に適した連立一次方程式の解法 東京大学 情報理工学系研究科 戦略ソフトウェア・電子情報 田浦研 遠藤敏夫 大域向け連立一次・遠藤敏夫
A b x = 大規模連立一次方程式の重要性 • 流体解析,構造解析・・・ • シミュレーションの詳細化 ⇒ 方程式の大規模化 大域向け連立一次・遠藤敏夫
高熱の問題 (RAID観測カメラより) 大規模計算へのアプローチ(1) • スーパーコンピュータ • 地球シミュレータ,Blue Gene・・・ • 京速計算機(2010年) • 高価,大物は世界に数台 • クラスタ • 比較的安価 • 予算・熱・電力の問題により台数限界 • 低電力クラスタの動きも 情報理工COEISTBSクラスタ 大域向け連立一次・遠藤敏夫
Internet Internet 大規模計算へのアプローチ(2)グリッドコンピューティング 大域分散した多数の計算機を活用 • 複数組織のクラスタ・スパコンを協調利用 • Globus, Condor-G, Ninf-G, Grid MPI… • TeraGrid, NAREGI, Grid5000, PlanetLab… • 家庭等のPCを協調利用 • SETI@home, Folding@home, BOINC… 大域向け連立一次・遠藤敏夫
Ax=b Internet Internet Ax=b Internet Internet • 単一の大規模計算を大域分散で行いたい 本研究の目標 Ax=b Cy=d Ez=f Gw=h • 主流: 各サイトで別の計算 大域向け連立一次・遠藤敏夫
連立一次を大域分散環境で解くのはなぜ困難?連立一次を大域分散環境で解くのはなぜ困難? • 「大量に」「頻繁に」通信が必要な並列アルゴリズムだから⇒ ネットワーク性能の低い大域分散環境では困難 • 「大量に」は,バンド幅向上により解決可能 • SuperSINETの10Gbps化,一般家庭への光ファイバー普及… • 「long fat pipe」のための通信技術 • 「頻繁に」は,待っていても解決されない • 北海道-沖縄間の通信遅延は10ms以下にはならない(光速限界) ⇒ 大遅延に耐えられる並列アルゴリズムが重要に 大域向け連立一次・遠藤敏夫
今回の発表 連立一次の様々な解法 • 各手法につき,効率化・並列化の研究が超多数あり ガウス消去法 スカイライン・・・ 直接法 ヤコビ,ガウスザイデル SOR・・・ 定常 反復法 共役勾配法(CG) BiCG, CGS, BiCGStab・・・ GMRES, ORTHOMIN・・・ 非定常 大域向け連立一次・遠藤敏夫
発表のアウトライン • ガウス消去法 (SWoPP05, Grid05で発表) • Batched pivotingの提案 • 大遅延環境での実験 • CG法 • Block CG法を用いた実験 大域向け連立一次・遠藤敏夫
ガウス消去法(密行列用)とは • 基本は中学で習う方法 • 応用分野 • 流体解析,構造解析 ・・・? • Top500スーパーコンピュータランキング(Linpack) • ピボット選択が計算精度の肝 大域向け連立一次・遠藤敏夫
主流: ガウス消去+Partial pivoting(GE+PP) for k = 1 to n ピボット選択 第k列中で絶対値最大の値(ピボット)を選ぶ 行交換 更新 n ピボットは分母として使われるため, 絶対値の大きいものが良い 大域向け連立一次・遠藤敏夫
ノード数p=6 (=2x3) 2 O ( n p ) n sb 並列GE+PPの問題 • 二次元ブロックサイクリック分割が主流 利点:通信量が少 毎回のピボット選択の度に同期的通信 大遅延環境ではボトルネックに! 大域向け連立一次・遠藤敏夫
大遅延があるときのGE+PPの性能 • Linuxクラスタ上で,遅延をエミュレートして実験 • 全ノード間に同一遅延 • +0ms, +2ms, +5ms, +10ms • High performance Linpack (HPL) 利用 • 行列サイズn=32768 • ノード数64 (=8x8) 10msの遅延では はるかに遅い! やはりGE+PPは大遅延に弱い 大域向け連立一次・遠藤敏夫
他のpivoting手法はどうか? Complete Partial No pivoting Rook [Neal92] Threshold [Malard91]etc. Pairwise [Sorensen85]etc. まじめ 耐遅延でない Batched (提案手法) 誤差の影響激しい さぼる 大域向け連立一次・遠藤敏夫
Batched Pivoting (BP)のねらい • 複数回(d回)分のピボット選択を「まとめる」 • 同期通信回数を1/d に削減 耐遅延性の向上! 大域向け連立一次・遠藤敏夫
d d P1 P1 P3 P2 P4 P2 P1 P3 P2 P4 sb sb Batched Pivoting アルゴリズム (1) d 回分のピボット選択アルゴリズム • 右図ではd行はP1とP2で分割 • 各ノードは自担当分を複製 • 複製に対して局所的,投機的にGE+PP • その仮定でd個のピボット候補がみつかる 大域向け連立一次・遠藤敏夫
比較 採用! 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 • 最良候補集合を用いて計算を続ける 大域向け連立一次・遠藤敏夫
Partial pivotingとの比較 • 選ばれるピボット • PPは各ステップで独立にピボットを選ぶ • BPでは,連続するdステップのピボットは単一ノード出身 選択の幅が狭まるため,PPより悪い可能性 • 計算量 • PP: • BP: d<<n なら,差は小さい 局所GEのため 大域向け連立一次・遠藤敏夫
他の手法との比較 • Threshold pivoting [Malard91]etc. • 絶対値最大でなくても, であればピボットになりうる • Good: 行交換の通信量を削減 • Bad: 耐遅延ではない • Pairwise pivoting [Sorensen85]etc. • 次々に隣接した2行を取り出し,うち1行を消去 (cf. バブルソート) • Good: ピボット選択のパイプライン化可能⇒耐遅延 • Bad: 計算精度悪い 大域向け連立一次・遠藤敏夫
並列実験環境 • 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 クラスタ 大域向け連立一次・遠藤敏夫
基本的な並列性能 • クラスタでの実験(遅延は普通) • PPとBP (d=4, 16, 64)比較 • 32 から 160 ノード • n=32768, sb=256 • 同等のスケーラビリティ • BPはdの大きさに伴いオーバヘッドあり • d=64 で7から15% 大域向け連立一次・遠藤敏夫
遅延が大きいとき, BPがはるかに有利 遅延が大きいときの性能 • 遅延をエミュレート • 全ノード間に+2ms, +5ms, +10ms • 64(=8x8) ノード • n=32768, sb=256 • BPは遅延に耐久可能! • d が大きいほど耐久 大域向け連立一次・遠藤敏夫
計算精度の評価方法 • Partial, Batched, Threshold, Pairwise, No pivoting を比較 • 1ノードで実験 • BPでは,サイズ64のブロックをノードと見なす • 各条件につき,100個の乱数行列 • 行列サイズ 128 ~ 2048 • 正規化残差 を評価 • : 計算結果, ε: マシンイプシロン(= ) • 100回の実験の平均 大域向け連立一次・遠藤敏夫
計算精度の評価 • PP は精度良好 • No pivoting, Pairwise は精度悪 • BPはPPに匹敵する精度! • d の値により,精度と耐遅延性のトレードオフ 大域向け連立一次・遠藤敏夫
ガウス消去法についてまとめ • ガウス消去法を遅延に強くする, batched pivotingを提案 • 耐遅延性と計算精度を両立 • 最速アルゴリズム,最適パラメータは状況に依存 • 遅延,ノード数,問題サイズ・・・ 大域向け連立一次・遠藤敏夫
発表のアウトライン • ガウス消去法 • Batched pivotingの提案 • 大遅延環境での実験 • CG法 • Block CG法を用いた実験 大域向け連立一次・遠藤敏夫
x(2) x(1) x(3) x(4) x(5) CG法とは • 反復法 • n次元ベクトルx が,次々に更新されて真の解へ近づく • CG法は,正定値対称行列向けの反復法のメジャーな手法[Hestenes&Stiefel 52] • 非常に非常に多くの効率化手法が提案されている 大域向け連立一次・遠藤敏夫
CG法のアルゴリズム (素人から見た)特徴: • 「あと探索すべき空間」が, 1ステップで1次元減っていく • 理論上はn 回の反復で真の解へ到達 • たいていはもっと早く収束 • 丸め誤差のため遅いことも for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫
CG法と大遅延環境の関係 ベクトル内積 行列・ベクトル積 • 行列・ベクトル積は耐遅延化可能[Allen 01] • 領域オーバラップ • 内積の結果共有のために毎ステップ同期が必要 ⇒遅延に弱い! for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫
Block CG法の採用 • Block CG法 [O’Leary 80]など • s 個の方程式を同時に解くことができる • あえて1個の方程式に利用 • B の残り(s-1) 列には ダミー値 s Block CG法 CG法 X B x A A b ×= ×= 大域向け連立一次・遠藤敏夫
Block CG法のアルゴリズム • 要するに,n次元ベクトルx, b, r, p が,n×s 行列へ置き換わっている • 依然,毎ステップ同期が必要 for k =0, 1, 2… ならば終了 大域向け連立一次・遠藤敏夫
Block CG法の特徴 • 1ステップの計算量はs 倍強に • 理論上の反復回数がn/s • 「あと探索すべき空間」が, 1ステップでs 次元減 • CG法の1/s倍 ⇒ 合計計算量はやや増 CG: Block CG: 同期通信を減らせるので 大遅延環境で得ができそう 大域向け連立一次・遠藤敏夫
実験 • CG, Block CGの実行時間比較 • C++で実装,最適化の余地多 • クラスタの16ノード利用,遅延エミュレート • 行列はUF sparse matrix collectionより • msc10848 (n=10848) • cfd2 (n=123440) • 実行条件 • RCM(reverse Cuthill-Mckee)オーダリング • 行を均等分散 • スケーリング • 残差が となるまで反復 大域向け連立一次・遠藤敏夫
並列実行時間の比較 もともと 遅い 大遅延の とき有利 • Block CGは遅延の増大に強い • もともとが遅すぎる場合も(行列に依存) 大域向け連立一次・遠藤敏夫
実際の反復回数は1/sになるか? まぁまぁ 不満 IC: 不完全コレ スキー分解 大域向け連立一次・遠藤敏夫
残差の推移の比較 • CGのグラフと分岐してからの落ち方が違う? 大域向け連立一次・遠藤敏夫
CG法についてまとめ • CG法もそのままでは遅延に弱いため,Block CG法[O’Leary 80]を用いて実験 • 同期通信回数を大幅に減らし,耐遅延性が高い 大域環境で構造解析,流体解析ができるかも • 使いどころ,最適パラメータ選択は難しい • 反復回数の減り方が激しく行列依存 • より優れたオーダリング,前処理との関係は? 大域向け連立一次・遠藤敏夫
おまけ:本郷・柏間での実験 • 情報理工クラスタ(本郷)と近山研クラスタ(柏) • エミュレーション通りに行かない・・・ • 物理的バンド幅の差?⇒1Gbpsのはずなので悪くない • クラスタ間TCPが1本あたり11Mbpsしか出ていない • 分割や通信順序のチューニング不足,etc, etc. • 片道遅延は2—3ms • 行列はmsc10848 • MPI/GXP2[斎藤06]利用 大域向け連立一次・遠藤敏夫
Internet Internet おわりに • 大域分散環境で大規模計算を実現するためには,インフラ・ハード・ミドルウェア・アプリ全ての層の研究が必要 Ax=b Ax=b 大域向け連立一次・遠藤敏夫