Successfully reported this slideshow.
なぜなに Linpack    2013/2/9,2/10- とある勉強会での発表資料 -   Yuki Kawaguchi          1
自己紹介名前: Yuki Kawaguchitwitter: @kawa0810はてな id: kawa0810・学生時代の研究  並列・分散処理,GPGPU,数値計算関係・仕事      ソフトウェア開発 & サポート            ...
本題3
Linpack と Top500Linpack とは?  ・LU 分解による連立一次方程式 Ax = b の解法   ただし,A は係数行列,x は未知ベクトル,b は既知ベクトル  ・Top500 のベンチマークで利用Top500 とは?  ...
HPC チャレンジベンチマーク表 彰 ・High Performance Linpack (HPL)    Linpack で連立一次方程式を解く際の TFLOPS ・DGEMM:倍精度の行列行列積 ・STREAM:メモリへの連続アクセスの際の...
現在の Top500 のベスト31位:Titan (Cray Inc.)・性能:17.59 PFLOPS・特徴:NVIDIA 製 GPU 搭載2位:Sequoia (IBM)・性能:16.32 PFLOPS・特徴:汎用型,省エネ設計3位:K,京...
目的Linpack の並列化方法について  『簡単(?)』にご紹介!!        7
LU 分解の復習 - 1係数行列 A を A = LU に分解するただし,L は対角要素を1とする下三角行列,    U は上三角行列である.     Ax = b は 次式のように表せる            LU x = b        ...
LU 分解の復習 - 2    ここで,y = Ux とすると,                       Ly = bとなる.L は下三角行列なので前進代入法を用いて解くことにより次式が得られる.                      ...
LU 分解の復習 - 3        ここで,y を Ux にもどすと,                    Ux = L               1                                           ...
LU 分解の演算量と問題点              2 3・LU 分解:   O     n              3                             2n3・前進代入法: O(n )  2            ...
LU 分解の演算量と問題点                         如何に並列化するか              2 3          がポイント・LU 分解:   O     n              3           ...
並列 LU 分解のアルゴリズムRight-Looking 法・バランスよくデータ分散が可能・ブロック Right-Looking 法がよく用いられるLeft-Looking 法・データの分散方法によって大量の通信が発生する・Cell/B.E. ...
ブロック Right-Looking 法 - 1     A をブロックに分割する      a11 a12 a13 a14 a15      a21 a22 a23 a24   a25      a31 a32 a33 a34   a35  ...
ブロック Right-Looking 法 - 2   軸選択を行いながら LU 分解する      a11 a12 a13 a14 a15      a21 a22 a23 a24   a25      a31 a32 a33 a34   a3...
ブロック Right-Looking 法 - 3      u11            a12 a13 a14 a15     l11      l21   a22 a23 a24   a25      l31   a32 a33 a34  ...
ブロック Right-Looking 法 - 4               1              をかける            l11      u11            a12 a13 a14 a15     l11     ...
ブロック Right-Looking 法 - 5      u11            u12 u13 u14 u15     l11      l21   a22 a23 a24   a25      l31   a32 a33 a34  ...
ブロック Right-Looking 法 - 6      u11            u12 u13 u14 u15     l11      l21   a22 a23 a24   a25      l31   a32 a33 a34  ...
ブロック Right-Looking 法 - 7      u11            u12 u13 u14 u15     l11      l21   a22 a23 a24 a25      l31   a32 a33 a34 a35...
ブロック Right-Looking 法 - 8 再び, 軸選択を行いながら LU 分解する     すべて終わるまで繰り返す      u11            u12 u13 u14 u15     l11      l21   a22...
ブロック Right-Looking 法 - 9            LU 分解完成!!      u11            u12 u13 u14 u15     l11              u22 u      l21   l2...
問題点:データの分散方法どうやって各マシンにデータを分散配置させればいいのか?  u11        u12 u13 u14 u15 l11  l21   a22 a23 a24 a25  l31   a32 a33 a34 a35  l41...
ブロック・サイクリック分割          各ブロックをそれぞれ PU に割り当てるa11 a12 a13 a14 a15          a11 a12 a13 a14 a15a21 a22 a23 a24   a25        a2...
並列 HPL - 1各ブロックをそれぞれ PU に割り当てる    a11 a12 a13 a14 a15    a21 a22 a23 a24   a25    a31 a32 a33 a34   a35    a41 a42   a43 a...
並列 HPL - 2軸要素を各 PU に転送する a11 a12 a13 a14 a15 a21 a22 a23 a24   a25 a31 a32 a33 a34   a35 a41 a42   a43 a44 a45 a51 a52 a53...
並列 HPL - 3軸要素を使い LU 分解する a11 a12 a13 a14 a15 a21 a22 a23 a24   a25 a31 a32 a33 a34   a35 a41 a42   a43 a44 a45 a51 a52 a53...
並列 HPL - 4再度,軸要素を各 PU に転送する  a11 a12 a13 a14 a15  a21 a22 a23 a24   a25  a31 a32 a33 a34   a35  a41 a42   a43 a44 a45  a51...
並列 HPL - 5再度,軸要素を使い LU 分解する  a11 a12 a13 a14 a15  a21 a22 a23 a24   a25  a31 a32 a33 a34   a35  a41 a42   a43 a44 a45  a51...
並列 HPL - 6  LU 分解が終わり次第各ブロックを転送する         u11               a12 a13 a14 a15        l11        l21    a22 a23 a24   a25横方向通...
並列 HPL - 7  を転送し,u を求める (dtrsm) l11    u11          a12 a13 a14 a15   l11    l21   a22 a23 a24   a25    l31   a32 a33 a34 ...
並列 HPL - 7               u を送信する         u11               u12 u13 u14 u15        l11        l21    a22 a23 a24   a25縦方向通信...
並列 HPL - 8           u11                 u12 u13 u14 u15          l11          l21    a22 a23 a24 a25データがそろい          l31 ...
並列 HPL - 9       LU 分解完成!! u11       u12 u13 u14 u15l11         u22 ul21    l22     23 u24 u25               u33l31     l3...
性能をだすための重要点 - 1通信 (Message Passing Interface)・無駄な通信をいかにさせずに計算させるか?・非同期通信の利用          a11 a12 a13 a14 a15          a21 a22 ...
性能をだすための重要点 - 2計算 (Basic Linear Algebra Subprograms)・行列行列積・MPI + マルチスレッド + SIMD + キャッシュ・アクセラレータ型計算機の利用     l11   l12   l13...
前進代入法と後退代入法パトラッシュ,僕はもう疲れたよ...        37
結論     Linpack の自作は面倒    ライブラリを使いましょう!!・Super LU・各ベンダのライブラリ・etc              38
今後のスパコン分野 (推測)アクセラレータ型計算機の普及・NVIDIA 製 GPU の新アーキテクチャの登場 (Kepler)・Intel 社の Many Intelgrated Core の参入    出典:NVIDIA 社         ...
Upcoming SlideShare
Loading in …5
×

linpack

3,741 views

Published on

Published in: Technology

linpack

  1. 1. なぜなに Linpack 2013/2/9,2/10- とある勉強会での発表資料 - Yuki Kawaguchi 1
  2. 2. 自己紹介名前: Yuki Kawaguchitwitter: @kawa0810はてな id: kawa0810・学生時代の研究 並列・分散処理,GPGPU,数値計算関係・仕事 ソフトウェア開発 & サポート 2
  3. 3. 本題3
  4. 4. Linpack と Top500Linpack とは? ・LU 分解による連立一次方程式 Ax = b の解法  ただし,A は係数行列,x は未知ベクトル,b は既知ベクトル ・Top500 のベンチマークで利用Top500 とは? ・スパコンの上位500位を決定するプロジェクト  http://www.top500.org ・毎年,6月と11月の年2回測定 & 更新 ・評価方法:High Performance Linpack 4
  5. 5. HPC チャレンジベンチマーク表 彰 ・High Performance Linpack (HPL) Linpack で連立一次方程式を解く際の TFLOPS ・DGEMM:倍精度の行列行列積 ・STREAM:メモリへの連続アクセスの際のバンド幅 ・Fast Fourier Transform (FFT):高速フーリエ変換 ・PTRANS:行列の転値 ・RandomAccess:メモリへのランダムアクセス ・Communication bandwidth and latency 通信のバンド幅とレイテンシ 5
  6. 6. 現在の Top500 のベスト31位:Titan (Cray Inc.)・性能:17.59 PFLOPS・特徴:NVIDIA 製 GPU 搭載2位:Sequoia (IBM)・性能:16.32 PFLOPS・特徴:汎用型,省エネ設計3位:K,京 (Fujitsu)・性能:10.51 PFLOPS・特徴:汎用型 6
  7. 7. 目的Linpack の並列化方法について 『簡単(?)』にご紹介!! 7
  8. 8. LU 分解の復習 - 1係数行列 A を A = LU に分解するただし,L は対角要素を1とする下三角行列,    U は上三角行列である. Ax = b は 次式のように表せる LU x = b 8
  9. 9. LU 分解の復習 - 2 ここで,y = Ux とすると, Ly = bとなる.L は下三角行列なので前進代入法を用いて解くことにより次式が得られる. y=L 1 b 1 y1 b1 l21 1 0 y2 b2 l31 l32 1 y3 = b3 . . . . .. .. . . . . . . . . . . ln1 ln2 ··· 1 yn bn 9
  10. 10. LU 分解の復習 - 3 ここで,y を Ux にもどすと, Ux = L 1 bとなる.U は上三角行列なので後退代入法を用いて解くことにより次式が得られる. x=U 1 L 1 b u11 u12 u13 ··· u1n x1 b1 u22 u23 ··· u2n x2 b2 u33 ··· u3n x3 =L 1 b3 .. . . . . . . 0 . . . . unn xn bn 10
  11. 11. LU 分解の演算量と問題点 2 3・LU 分解: O n 3 2n3・前進代入法: O(n ) 2 O + 2n2 3・後退代入法: O(n2 ) 11
  12. 12. LU 分解の演算量と問題点 如何に並列化するか 2 3 がポイント・LU 分解: O n 3 2n3・前進代入法: O(n ) 2 O + 2n2 3・後退代入法: O(n2 ) 12
  13. 13. 並列 LU 分解のアルゴリズムRight-Looking 法・バランスよくデータ分散が可能・ブロック Right-Looking 法がよく用いられるLeft-Looking 法・データの分散方法によって大量の通信が発生する・Cell/B.E. で用いられているCrout 法・大量の通信が必要・分散メモリ型並列計算機では実装が困難 13
  14. 14. ブロック Right-Looking 法 - 1 A をブロックに分割する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 14
  15. 15. ブロック Right-Looking 法 - 2 軸選択を行いながら LU 分解する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 15
  16. 16. ブロック Right-Looking 法 - 3 u11 a12 a13 a14 a15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 16
  17. 17. ブロック Right-Looking 法 - 4 1  をかける l11 u11 a12 a13 a14 a15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 17
  18. 18. ブロック Right-Looking 法 - 5 u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 18
  19. 19. ブロック Right-Looking 法 - 6 u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 19
  20. 20. ブロック Right-Looking 法 - 7 u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 20
  21. 21. ブロック Right-Looking 法 - 8 再び, 軸選択を行いながら LU 分解する すべて終わるまで繰り返す u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 21
  22. 22. ブロック Right-Looking 法 - 9 LU 分解完成!! u11 u12 u13 u14 u15 l11 u22 u l21 l22 23 u24 u25 u33 l31 l32 l u34 u35 33 u44 l41 l42 l43 l u45 44 u55 l51 l52 l53 l54 l 55 22
  23. 23. 問題点:データの分散方法どうやって各マシンにデータを分散配置させればいいのか? u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 23
  24. 24. ブロック・サイクリック分割 各ブロックをそれぞれ PU に割り当てるa11 a12 a13 a14 a15 a11 a12 a13 a14 a15a21 a22 a23 a24 a25 a21 a22 a23 a24 a25a31 a32 a33 a34 a35 a31 a32 a33 a34 a35a41 a42 a43 a44 a45 a41 a42 a43 a44 a45a51 a52 a53 a54 a55 a51 a52 a53 a54 a55 24
  25. 25. 並列 HPL - 1各ブロックをそれぞれ PU に割り当てる a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 25
  26. 26. 並列 HPL - 2軸要素を各 PU に転送する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 26
  27. 27. 並列 HPL - 3軸要素を使い LU 分解する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 27
  28. 28. 並列 HPL - 4再度,軸要素を各 PU に転送する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 28
  29. 29. 並列 HPL - 5再度,軸要素を使い LU 分解する a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 繰り返す 29
  30. 30. 並列 HPL - 6 LU 分解が終わり次第各ブロックを転送する u11 a12 a13 a14 a15 l11 l21 a22 a23 a24 a25横方向通信 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 30
  31. 31. 並列 HPL - 7  を転送し,u を求める (dtrsm) l11 u11 a12 a13 a14 a15 l11 l21 a22 a23 a24 a25 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 31
  32. 32. 並列 HPL - 7 u を送信する u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25縦方向通信 l31 a32 a33 a34 a35 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 32
  33. 33. 並列 HPL - 8 u11 u12 u13 u14 u15 l11 l21 a22 a23 a24 a25データがそろい l31 a32 a33 a34 a35 次第計算 l41 a42 a43 a44 a45 l51 a52 a53 a54 a55 繰り返す 33
  34. 34. 並列 HPL - 9 LU 分解完成!! u11 u12 u13 u14 u15l11 u22 ul21 l22 23 u24 u25 u33l31 l32 l u34 u35 33 u44l41 l42 l43 l u45 44 u55l51 l52 l53 l54 l 55 34
  35. 35. 性能をだすための重要点 - 1通信 (Message Passing Interface)・無駄な通信をいかにさせずに計算させるか?・非同期通信の利用 a11 a12 a13 a14 a15 a21 a22 a23 a24 a25 a31 a32 a33 a34 a35 a41 a42 a43 a44 a45 a51 a52 a53 a54 a55 35
  36. 36. 性能をだすための重要点 - 2計算 (Basic Linear Algebra Subprograms)・行列行列積・MPI + マルチスレッド + SIMD + キャッシュ・アクセラレータ型計算機の利用 l11 l12 l13 l14 l15 u11 u12 u13 u14 u15 l21 l22 l23 l24 l25 u21 u22 u23 u24 u25 l31 l32 l33 l34 l35 u31 u32 u33 u34 u35 l41 l42 l43 l44 l45 u41 u42 u43 u44 u45 l51 l52 l53 l54 l55 u51 u52 u53 u54 u55 36
  37. 37. 前進代入法と後退代入法パトラッシュ,僕はもう疲れたよ... 37
  38. 38. 結論 Linpack の自作は面倒 ライブラリを使いましょう!!・Super LU・各ベンダのライブラリ・etc 38
  39. 39. 今後のスパコン分野 (推測)アクセラレータ型計算機の普及・NVIDIA 製 GPU の新アーキテクチャの登場 (Kepler)・Intel 社の Many Intelgrated Core の参入 出典:NVIDIA 社 出典:Intel 社. http://www.nvidia.co.jp http://www.intel.comCPU の機能向上・クロック数はあがらない → コア数の増加・ベクタ長命令の強化 (Altivec,SSE,AVX,etc) 39

×
Save this presentationTap To Close