1 / 27

応用数理工学特論 第 5 回

応用数理工学特論 第 5 回. 計算理工学専攻 張研究室 山本有作. 前回の概要. 連立一次方程式の高性能解法 (密行列の場合) LU 分解 LU 分解のブロック化 LU 分解の並列化(共有メモリ型並列計算機) LU 分解の並列化(分散メモリ型並列計算機). 今回の概要. 連立一次方程式の高性能解法 (疎行列の場合) 差分法により生じる疎行列 疎行列向け連立一次方程式解法の分類 帯ガウス法 スパースソルバ. 差分法により生じる疎行列. ポアソン方程式 応用 熱伝導 静電場 流体力学 応力とひずみの解析 物理的意味

nuri
Download Presentation

応用数理工学特論 第 5 回

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. 応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作

  2. 前回の概要 • 連立一次方程式の高性能解法 (密行列の場合) • LU分解 • LU分解のブロック化 • LU分解の並列化(共有メモリ型並列計算機) • LU分解の並列化(分散メモリ型並列計算機)

  3. 今回の概要 • 連立一次方程式の高性能解法 (疎行列の場合) • 差分法により生じる疎行列 • 疎行列向け連立一次方程式解法の分類 • 帯ガウス法 • スパースソルバ

  4. 差分法により生じる疎行列 • ポアソン方程式 • 応用 • 熱伝導 • 静電場 • 流体力学 • 応力とひずみの解析 • 物理的意味 • ある点でのu の値 = その周囲でのu の値の平均値 + 外力の項

  5. 大規模計算の例 • 3次元の応力・ひずみ解析

  6. 簡単な例 • 2次元正方領域での熱伝導方程式 y 1 u(0, y) = 0 u(1, y) = 0 u(x, 0) = 0 u(x, 1) = 0 x 0 1

  7. 行列 2次元ポアソン方程式の離散化 • 5×5の2次元格子 • 差分法で離散化 → 疎行列 格子 4 5 1 2 3 9 10 6 7 8 14 15 11 12 13 19 20 16 17 18 24 25 21 22 23

  8. 疎行列向け連立一次方程式解法の分類 • 直接法 --- ガウスの消去法に基づく方法 • 帯ガウス法 • スパースソルバ • 反復法 --- 解を逐次的に改良する方法 • 定常反復法 • ヤコビ法,ガウス=ザイデル法,SOR法 • クリロフ部分空間法 • CG法(共役勾配法) • CGS法,Bi-CGSTAB法,GPBi-CG法 • GMRES法

  9. 直接法の特徴 • 長所 • 安定性 • 行列が対称正定値であれば,必ず解が求まる。 • 必要なメモリ量・計算時間が事前に予測可能 • 係数行列が同じで右辺ベクトルのみ異なる複数の連立一次方程式を解くのに有利 • 短所 • 必要なメモリ量が大きい • フィルインのため • 反復法がうまくいく場合は,計算時間の面で不利

  10. 反復法の特徴 • 長所 • 必要なメモリ量が小さい。 • 元の行列(+ 数本の作業用ベクトル)のみを使って計算可能 • うまくいく場合は非常に高速 • 短所 • 収束しない場合や,収束に非常に時間のかかる場合がある。

  11. 反復法の収束特性の例 • ヘルムホルツ方程式 張研で開発 されたGPBi-CG法→

  12. 帯ガウス法 • 帯行列に対してガウス消去法を適用すると,非ゼロ要素は帯の内部にしか現れないことに着目 • 帯の内部のみを記憶・演算して演算量とメモリ量を節約

  13. 2次元ポアソン方程式のオーダリング • 5×5の2次元格子 • 分割を2段階行い,領域を4個の部分領域に分割 格子 ND法による オーダリング 第1段階での セパレータ 4 5 5 7 1 2 3 1 3 9 9 10 6 8 6 7 8 2 4 10 24 25 21 22 23 第2段階での セパレータ 14 15 11 12 13 19 20 15 17 16 17 18 11 13 19 24 25 16 18 21 22 23 12 14 20 行列 ND法による オーダリング 各対角ブロック の分解は独立に 実行可能

  14. 一般の場合のオーダリング セパレータ • Nested Dissection 法によるオーダリング   (有限要素法から生じる疎行列の場合) • セパレータと呼ばれる節点集合を取り除くことにより,メッシュを2つの部分に分割 • この分割に従って行列の行・列を並び替え,行列を縁付きブロック対角形に変形 • この処理を各対角ブロックに対して再帰的に繰り返す • オーダリングによる並列性抽出 • コレスキー分解のステップでは,各対角ブロックを並列に分解可能 • 各対角ブロックの演算負荷が均等で,かつ縁の部分が狭い(セパレータに属する節点の個数が小さい)分割が望ましい 有限要素法メッシュ 0 0 置換後の行列 0 0 1 0 2 3 4 5 0 6 7 7 3段階の分割後の行列

  15. 消去木と演算の並列性 • 消去木とは • 疎行列のコレスキー分解における消去演算の依存関係を表現するグラフ • 消去木の各節点は行列 L の各列に対応 • ND法でオーダリングした行列に対する消去木 • 消去木と行列の対応関係 • 鎖の部分 ⇔ 縁の部分 • 部分木 ⇔ 対角ブロック • 共通部分を持たない2つの部分木に対する分解演算は並列に実行可能 再帰的縁付きブロック 対角行列 対応する消去木

  16. 消去木を用いたデータ割り当て • subtree-to-subcube 割り当て • 鎖の部分では,周期的に節点をプロセッサに割り当てる • 分岐点でプロセッサ群を2分割し,各部分木をそれぞれのプロセッサ群に割り当てる。この操作を再帰的に行う • 消去木が不均等な場合 • 単純な subtree-to-subcube 割り当てでは大きな負荷不均衡が生じる場合あり • subtree-to-subcube 割り当ての改良が必要

  17. コレスキー分解 • 処理 • 各プロセッサに分散された行列 A を入力として,並列にコレスキー分解を行う • アルゴリズム • 対角ブロックの分解と縁の部分の計算を,小さいレベルのブロックから順に再帰的に繰り返す 入力行列 消去木 4プロセッサで協調して消去演算 2プロセッサで協調して消去演算 各プロセッサで独立に消去演算(通信なし)

  18. スパースソルバの処理フロー START オーダリング 置換行列Pの作成。演算量削減と並列性抽出が目標 分解後の非零要素決定,演算量・所要メモリ量算定, 消去木作成 シンボリック分解I 各プロセッサへの データ割り当て決定 消去木に基づき,負荷均等化・通信最小化を達成する ように行列の列のプロセッサへの割り当てを決定 データ分散 上記の割り当て方法に基づき,行列データを分散 シンボリック分解II 分解後の非零要素を格納するデータ構造を作成 コレスキー分解 前進後退代入 データ収集 END

  19. 試作版スパースソルバの性能評価結果 • 概要 • 以上のアルゴリズムに基づく並列プログラムを開発し,2種のPCクラスタ上で性能評価を行った • 計算機環境 • Alphaクラスタ(mellon) • Alpha EV5 533Mhz ×8ノード • RAM 128MB/ノード • 100base-tx 接続 • コンパイラは g77 –O3 を使用 • Power PC G5クラスタ(muscat) • PowerPC G5 2.0Ghz × 8ノード • RAM 2GB/ノード • Gigabit Ether接続 • コンパイラは g77 –O3 を使用

  20. 例題 • Harwell Boeing Matrix Collectionの5種の行列と,3次元ポアソン方程式を離散化して得られる行列に対し,コレスキー分解の性能を評価

  21. 1プロセッサでの実行時間(コレスキー分解部)1プロセッサでの実行時間(コレスキー分解部) Alphaプロセッサでの実行時間 G5プロセッサでの実行時間 G5 は Alpha の10倍程度高速

  22. 並列実行時の加速率 • 3dp24,32,bcsstk30,31は比較的よい結果 • bcsstk29は加速率が低い • bcsstk17,18は加速率が低いが,問題規模が小さいためやむを得ないと考えられる

  23. 消去木による分析 • 消去木を用いて,各レベルでの負荷分散と演算・通信の時間比を調べ,性能評価結果を分析 • 3dp24の場合 • 負荷分散は比較的良い   → 加速率良好 • 上のレベルでの演算が多く,   独立に実行可能な演算が   少ない   → これを改善すれば,並列      化効率を更に改善可能 レベル0: 全PUで協調 レベル1: 4PUで協調 レベル2: 2PUで協調 レベル3: 各PUが独立に計算 演算時間 通信時間 面積が時間の長さを表す

  24. 消去木による分析(続き) bcsstk30 bcsstk29 ・ 演算のほとんどは最上位レベルで,  独立に演算できる部分が少ない   → 並列化効率の改善には,より      良いオーダリングが必要 ・ 独立に演算できる部分が多い   → 加速率良好 ・ 負荷分散はやや不均衡   → これを改善すれば,並列化      効率を更に向上可能 消去木を用いて並列性能を解析し,性能改善に役立てることが可能

  25. 参考文献 • 山本有作: “疎行列連立一次方程式の直接解法”,計算工学,Vol. 11, No. 4, pp. 14-18 (2006). http://www.na.cse.nagoya-u.ac.jp/~yamamoto/work.html

  26. グループ発表について • 概要 • 最後の2回の授業を使って行う。 • 2~3人のグループで1つの発表を行う。 • 講義で勉強したことをもとに,自分たちで数値実験を行った結果を発表。あるいは論文を読んでまとめて発表。 • スケジュール • グループ決定: 6/19 まで • 発表テーマ決定: 6/26 まで • 発表: 7/10,7/17 (各グループ15~20分程度)

  27. 発表テーマの例 • 自分の取り組んでいるシミュレーションのプログラムを,高性能化あるいは並列化した結果の報告 • 講義で学んだ行列計算アルゴリズムの性能評価 • 分散メモリ型計算機上でのLU分解の並列化 • スパースソルバの性能評価 • 固有値計算アルゴリズムの性能評価,など • 高性能計算に関する論文を読み,まとめて報告 • その他

More Related