Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Yasunori Futamura

960 views

Published on

Yasunori Futamura

Published in: Science
  • Be the first to comment

  • Be the first to like this

Yasunori Futamura

  1. 1. モンテカルロ法に基づく   超大規模疎行列の固有値分布計算 筑波大学   二村保徳 1
  2. 2. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   2
  3. 3. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   3
  4. 4. 行列の固有値問題 •  標準固有値問題   •  Aはn次の正方行列、λはスカラー、uは非零の ベクトル •  n個の固有値が存在   •  本講演ではAが実対称行列の場合を扱う   –  固有値はすべて実数   –  相異なる固有値の固有ベクトルは互いに直交する   •  行列が超大規模疎行列である場合を考える   4 Au = u
  5. 5. 問題のさまざまなパターン •  行列の大きさ   –  小規模   –  大規模   •  行列Aの疎密   –  疎行列   –  密行列   •  何を求めるか   –  固有値のみ   –  固有値と固有ベクトル両方欲しい   •  どの固有対を求めるか   –  (絶対値)最大/最小から何個   –   ある特定の区間内全部   –  ある値から近いもの数個   5
  6. 6. 固有値問題の解法 直交変換に基づく方法 射影法 主に直交変換で3重対角行列な どの簡単な形に変換.変換後の 行列の性質を利用し   2つの部分空間     を生成,   Lanczos法 Jacobi-­‐Davidson法 櫻井・杉浦法 を満たす    を近似固有対 とする   etc.. u K ( , u) K, L などの反復計算で固有対を 求める   QR法 分割統治法   二分法+逆反復法   部分空間の生成法に応じて   様々な解法がある 6 etc..   , Au u L
  7. 7. 固有値問題の解法 ユニタリ変換に基づく方法 射影法 密行列の全固有値を求める 場合に有効 行列要素を変換する   疎行列の部分固有値を求める 場合に有効 計算量として,求める固有対 数に依存する項が支配的 計算量として,求める固有対 数に依存しない項が支配的 行列要素を変換しない   7
  8. 8. 指定した区間内の固有値を求める射 影法 •  本講演では指定した区間内の固有値を求める場合に ついて考える •  指定した値付近の固有値と対応する固有ベクトルを 求める手法   –  Shi=-­‐and-­‐invert  Lanczos法   –  Jacobi-­‐Davidson法   –  etc   •  指定した区間内(複素平面上の領域)の固有値を求 める手法   –  櫻井・杉浦法*1   –  FEAST*2   –  etc   8 *1  T.  Sakurai  and  H.  Sugiura,  J.  Comput.  Appl.  Math.  159(1),  119-­‐128  (2003) *2  E.  Polizzi,  Phys.  Rev.  B.  Vol.  79,  115112  (2009)  
  9. 9. たくさん固有値が欲しい場合 •  求めたい固有値の数Mが多くなると、Gram-­‐ Schmidt直交化など、計算量がMの2乗に比 例する部分の計算コストが効いてくる   – 求めたい区間を複数の小区間に分けて、それぞ れ区間の固有値計算を個別に行う   – 異なる区間の計算は独立なので並列計算ができ る   9
  10. 10. このアプローチの難しいところ •  計算量が小区間にある固有値数に比例するため、並 列計算する場合はなるべく固有値数が均等になるよう に分けたい   •  なので固有値の分布がわかると嬉しい   •  でも固有値がわからなくて固有値計算をしているわけ なので、それがわかるなら苦労しない   •  とは言え、粗い近似で良いので少ない計算コストで固 有値分布を計算できる方法はないものか?   10 Re ‥eigenvalue  
  11. 11. 固有値分布を求める方法 •  Gershgorinの定理の利用   –  固有値を包むGershgorin円が大きすぎる場合がある   –  行列が陽に与えれられない場合に困難   •  Sylvesterの慣性則の利用   –  修正Cholesky分解が必要   –  行列が陽に与えられない場合に困難   •  行列Traceのモンテカルロ計算に基づく手法   –  行列が陽に与えられない場合でも使える   –  モンテカルロ法なので不正確な場合も..   11
  12. 12. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   12
  13. 13. 行列Traceのモンテカルロ計算   に基づく近似法の概要 •  行列Traceのモンテカルロ計算に基づく近似法   – Traceをとることによって固有値数を与える矩形の 行列値関数を考える   – その行列値関数を多項式や有理関数で近似   – 近似した行列値関数のTraceをモンテカルロ計算で さらに近似   13 0 h( )
  14. 14. 指定区間内の固有値数を求める •  区間[a, b]内の固有値数mを求める   A = U UT Ak = U k UT UT U = I tr(h(A)) = tr(Uh( )UT ) = tr( i [a,b] uiuT i ) = m 定義と関係式 ただし h(t) 1 if t [a, b] 0 otherwize diag( 1, 2, . . . , n) U [u1, u2, . . . , un] 14
  15. 15. 矩形関数の近似 •  矩形関数h(A)を近似する   – 多項式近似*1   •  Chebyshev多項式等   – 周回数値積分による近似(有理関数近似)*2 0 h( ) 今回扱う手法 15 *1  E.  D.  Napoli,  E.  Polizzi,  Y.  Saad,  arXiv:1308.4275v2,  2014   *2  Y.  Futamura,  H.  Tadano,  and  T.  Sakurai,  JSIAM  Le`ers,  Vol.  2,  pp.  127-­‐130,  2010  
  16. 16. ただし、        かつ 周回積分のよる表現 16 h(A) = 1 2 i (zI A) 1 dz 1 2 i (zI A) 1 dz = 1 2 i U(zI ) 1 UT dz = n i=1 1 2 i 1 z i dzuiuT i = b Re Im ‥eigenvalue   Γ = a よって a b = m
  17. 17. 数値積分 •  周回積分を数値積分で近似する   – 台形則   – Gauss-­‐Legendre則   – etc..     •  h(A)の有理関数近似と見て取れる   1 2 i (zI A) 1 dz N j=1 wj(zjI A) 1 wj:重み,zj:積分点 17
  18. 18. 行列traceのモンテカルロ計算 •  大規模行列の場合、行列多項式や逆行列の 陽を計算するのは非現実的 18 行列のtraceを求めるモンテカルロ系の 方法を用いる M.  F.  Hutchinson,  Commun.  Staast.  Simula.,  19  (1990),  pp.  433–450.     Z.  Bai,  M.  Fahey  and  G.  Golub,  Vol.  74,  Issues  1-­‐2,  pp.  71-­‐89,  1996   H.  Avron  and  S.  Toledo,  Journal  of  the  ACM,  58,  p.  8,  2011   F.  Roosta-­‐Khorasani,  U.  Ascher,  Foundaaons  of  Computaaonal  Mathemaacs,  pp.1-­‐26,  2014    
  19. 19. 問題設定 •  多項式近似の場合:   –  実対称行列の(実係数)多項式は実対称行列   •  周回数値積分(有理関数近似)の場合:   –  積分点を共役対で与えれば実対称行列の議論に落 ちる   •  問題設定:実対称行列Aのtraceを近似する   w(zI A) 1 + w(zI A) 1 は実対称行列 ※ Re Im 19
  20. 20. 行列Traceのモンテカルロ計算 •  viは乱数で作られたベクトル   •  vi TAviの期待値がtr(A)になるように作られる   •  Aが行列値関数の値だったりして陽に与えられ なくても、Aとベクトルとの積が計算できれば使え る tr(A) 1 s s i=1 vT i Avi 20
  21. 21. Trace  esamatorの種類 •  Hutchinson  esamator   •  Gaussian  esamator   •  Normalized  Rayleigh-­‐quoaent  esamator   •  Unit  vector  esamator 21 H.  Avron  and  S.  Toledo,  Journal  of  the  ACM,  58,  p.  8,  2011   F.  Roosta-­‐Khorasani,  U.  Ascher,  Foundaaons  of  Computaaonal  Mathemaacs,  pp.1-­‐26,  2014    
  22. 22. Hutchinson  esamator •  各要素が等確率で-­‐1か1のベクトルを使う   •  行列Traceを近似するモンテカルロ法の最初の 提案*1で使われ、広く用いられている*2   •  行列が対角優位なほど分散が相対的に小さくな る   •  Aが対角行列の場合は、ベクトル1本で真値が得 られる   Var(vT Av) = 2(||A||2 F n i=1 aii) 22 *1  M.  F.  Hutchinson,  Commun.  Staast.  Simula.,  19  (1990),  pp.  433–450.     *2  H.  Avron  and  S.  Toledo,  Journal  of  the  ACM,  58,  p.  8,  2011  
  23. 23. Gaussian  esamator •  各要素が互いに独立に標準正規分布に従うベク トルを使う   •  このようなベクトルは直交行列をかけても上記の 性質が不変であることが知られている   •  そのため実対称行列の場合、分散は固有値の みで決まる   Var(vT Av) = 2 n i=1 i 2 23
  24. 24. Normalized  Rayleigh-­‐quoaent   esamator •  各要素が互いに独立に平均0の、ある確率分 布に従う乱数ベクトルを使う.ただし、vTv=n •  Hutchinson  esamatorはこれの一例   •  分散は乱数の確率分布で決まる    (※これだけ他のesamatorに対して抽象的) 24
  25. 25. Unit  vector  esamator •             を一様に乱択し、単位ベクトルeiを 使う   •  分散は行列の対角成分のみのばらつきできまる   •  対角要素が全て等しい場合は、ベクトル1本で真値が 得られる •  離散フーリエ変換などでシャッフルするアプローチもあ る i {1, 2, . . . , n} tr(A) n s s i=1 vT i Avi 25 Var(nvT Av) = n n i=1 A2 ii tr(A)2
  26. 26. 固有値分布の推定 •  固有値分布を知りたい区間を複数の小区間 に分割   •  それぞれの小区間で固有値数を求める   26 Re 3 4 2 4 3 a b
  27. 27. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   27
  28. 28. 数値実験(概要) •  指定区間の固有値数推定   – Trace  esamatorはすべてHutchinson  esamator   – Matrix  Marketの行列における実験   – 積分点数 N  の増加に応じた固有値数の変化(ex. 1)   – サンプルベクトル数 s  の増加に応じた固有値数 の変化(ex.2)   •  指定区間の固有値分布推定(ex.3)   – 密度汎関数計算で現れる行列における実験   28
  29. 29. 数値実験  ex.1 •  Matrix  Marketの行列における実験   •  標準固有値問題   – PLAT1919   – BCSST13   29 Matrix Size a b #eig  in  Γ PLAT1919 1919 -­‐0.5e7 4.5e7 40 BCSST13 2003 1.0e3 5.0e3 11
  30. 30. 数値実験  ex.1 •  積分点数 N  の増加に応じた固有値数の変化 を調べる   •  行列traceはexactに計算した    (Monte  Carlo法は用いていない)   30
  31. 31. ex.1  数値実験結果 PLAT1919 31 35   40   45   50   55   60   0   10   20   30   40   50   60   70   Eigenvalue  count   Number  of  quadrature  points   PLAT1919  (n  =  1919)  
  32. 32. ex.1  数値実験結果  BCSST13 32 10.9   10.92   10.94   10.96   10.98   11   11.02   0   10   20   30   40   50   60   70   Eigenvalue  count   Number  of  quadrature  points   BCSST13  (n  =  2003)    
  33. 33. 数値実験  ex.2 •  サンプルベクトル数 s  の増加に応じた固有値 数の変化   •  積分点数はN  = 16 に固定   – ex.1でN  = 16の時の値を真値とする   •  テスト行列は  ex.1  と同じ 33
  34. 34. ex.2  数値実験結果  PLAT1919 34 39   39.5   40   40.5   41   41.5   42   0   50   100   150   200   250   300   Eigenvalue  count   Number  of  samples   PLAT1919  (n  =  1919)  
  35. 35. ex.2  数値実験結果  BCSST13 35 8   9   10   11   12   13   14   0   50   100   150   200   250   300   Eigenvalue  count   Number  of  samples   BCSST13  (n  =  2003)  
  36. 36. 数値実験  ex.3  (1/3) •  密度汎関数計算で現れる行列における実験 †     •  標準固有値問題   •  Si  510  原子系の計算で現れる行列で実験   – 行列の次元数  175,616   – 最小から1,020  の固有対が必要   – 行列は行列ベクトル積の関数としてのみ与えられ る 36 †J.  R.  Chelikowsky,  N.  Troullier,  K.  Wu,  Y.  Saad,  Phys.  Rev.  B  50  11355-­‐11364,  1994. †J.-­‐I.  Iwata,  D.  Takahashi,  A.  Oshiyama,  T.  Boku,  K.  Shiraishi,  S.  Okada,  and  K.  Yamada        J.  Comput.  Phys.  229,  2339-­‐2363,  2010.
  37. 37. 数値実験  ex.3  (2/3) •  パラメータ設定   – 積分点数  =  8   – サンプルベクトル数  =  20   – 物理的に意味のある固有値が存在する区間   [-­‐0.230,  0.243]  を100個の小区間に等分割し、そ れぞれで固有値数を推定   37
  38. 38. ex.3  数値実験結果  (1/2) 38 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 Index of the circle Eigenvaluecount Estimation Exact
  39. 39. ex.3  数値実験結果 (2/2) 10 20 30 40 50 60 70 80 90 100 0 200 400 600 800 1000 1200 Index of the circle Eigenvaluecount Estimation Exact accumulated 39
  40. 40. モンテカルロ計算による固有値分布 推定に関するReference •  非対称一般化固有値問題を扱った論文   •  非線形固有値問題を扱った論文 40 Y.  Futamura,  H.  Tadano,  and  T.  Sakurai,  “Parallel  stochasac   esamaaon  method  of  eigenvalue  distribuaon”,  JSIAM   Le`ers,  Vol.  2,  pp.  127-­‐130,  2010   Y.  Maeda,  Y.  Futamura,  and  T.  Sakurai,  “Stochasac  esamaaon   of  eigenvalue  density  for  nonlinear  eigenvalue  problem  on   the  complex  plane”,  JSIAM  Le`ers,  pp.  61–64,  2011    
  41. 41. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   41
  42. 42. 周回数値積分による方法の難点 •  固有値数を求めるために線形方程式をs✕N 個解かないといけない   •  線形方程式をLU分解による直接解法で解くぐ らいならシルベスター慣性則を使うべき   •  Krylov部分空間法などの反復法を使う   s i=1 N j=1 wjvT i (zjI A) 1 vi 42
  43. 43. Krylov部分空間法の利用 43 •  (zjI–A)が複素対称行列になるので複素対 称行列向きを解法を使う   – COCG法   – COCR法   – QMR-­‐SYM法   s i=1 N j=1 wjvT i (zjI A) 1 vi
  44. 44. (前処理無し)COCG法のアルゴリズム Set initial guess x0 Set p0 = r0 = b x0 for k = 0, 1, . . . , until converge do qk = Cpk k = rk T rk pk Tqk xk+1 = xk + kpk rk+1 = rk kqk k = rk+1 T rk+1 rk Trk pk+1 = rk+1 + kpk end for 複素対称行列Cに関する 線形方程式 Cx = b を解くアルゴリズム 44
  45. 45. 計算の主要部 •  COCG法などKrylov部分空間反復法では前処 理を行わない場合は行列Aに関する疎行列 ベクトル積が計算の主要部になる   – リスタート周期の長いGMRES等、例外もあり   45
  46. 46. Krylov部分空間のシフト不変性 •  解きたい方程式:     •  Krylov部分空間のシフト不変性に着目     Kk(A; v) = Kk(A + I; v) Kk(A, v) span{v, Av, A2 v, . . . , Ak 1z v} Krylov部分空間: ( C) シフト不変性: (zjI A)xzj = v (j = 1, 2, . . . , N) 46
  47. 47. shi=ed  Krylov部分空間法 •  Krylov部分空間のシフト不変性を利用した解 法   – Shi=ed  CG*1   – Shi=ed  COCG*2   – Shi=ed  COCR*3   – etc..   47 *1  B.  Jegerlehner,  Hep-­‐lat/9612014,  1996 *2  S.  Yamamoto,  T.  Sogabe,  T.  Hoshi,  S.-­‐L.  Zhang,  and  T.  Fujiwara,    J.  Phys.  Soc.  Jpn.,  Vol.  77,  No.  11,  114713,  pp.  1-­‐8,  2008 *3  T.  Sogabe  and  S.-­‐L.  Zhang,  East  Asia  J.  on  Appl.  Math.,  1,  pp.  97-­‐107,  2011
  48. 48. Shi=ed  COCG法 •  COCG法をシフト線形方程式群:      にそれぞれ適用したのと数学的に等価     N本のシフト線形方程式を解くのに1回反復あ たりCに関する行列ベクトル積が1回のみ   (C + jI)x j = b (j = 1, 2, . . . , N) 48
  49. 49. Shi=ed  COCGのアルゴリズム Set initial guess x0 Set x j 0 = x0 = 0, 1 = j 1 = j 0 = 1 Set p j 0 = p0 = r0 = b for k = 0, 1, . . . , until converge do {COCG iteration} for j = 1, 2, . . . , N do j k+1 = j k j k 1 k 1 k k 1( j k 1 j k ) + j k 1 k 1(1 + j k) j k = ( j k+1/ j k ) k x j k+1 = x j k + j k p j k j k = ( j k+1/ j k )2 j k p j k+1 = j k+1rk+1 + j k p j k end for end for 49
  50. 50. 計算量の削減 50 COCG  法 shi=ed  COCG法 行列ベクトル積 内積   ベクトル・スカラー積   ベクトル和
  51. 51. Limitaaon •  Krylov部分空間法では多くの場合「前処理」を 行うことで収束性を改善する   •  一般に前処理を適用するとKrylov部分空間の シフト不変性が保たれないためshi=ed  COCG などのshi=不変性を用いた解法での前処理 の適用は困難 51
  52. 52. Block  Krylov部分空間法 •  サンプルベクトルは複数与えるので、線形方程式も複 数の右辺ベクトルに対して解くことになる   •  複数の右辺ベクトルをまとめて扱うことで反復回数を 減らすことが可能な(場合がある)Block  Krylov部分空 間法を使う   •  Block  Krylov部分空間にもシフト不変性があるので、シ フト線形方程式向け解法が提案されている   –  Shi=ed  block  CG等*1   52 s i=1 N j=1 wjvT i (zjI A) 1 vi *1  Y.  Futamura,  T.  Sakurai,  S.  Furuya,  J.-­‐I.  Iwata,  Post  conference  proceedings  of   VECPAR  2012  ,LNCS  Vol.  7851,  2013,  pp  226-­‐235
  53. 53. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   53
  54. 54. 並列計算 •  並列計算   – 共有メモリ型並列   – 分散メモリ型並列   •  行列やベクトルのデータを複数計算ノードに分散 •  他のノードにあるデータが必要になったとき通信を行っ てデータを得る   54
  55. 55. shi=ed  COCG法の計算カーネル •  疎行列ベクトル積   •  内積   •  ベクトル和   •  ベクトル・スカラー積   55
  56. 56. 並列計算 •  疎行列ベクトル積   – 近接通信(が望ましい)   •  内積   – プロセスごとの部分和を計算したあと、通信ライ ブラリで足し合わせる   – 全てのプロセスが関わるので、なるべく避けたい   •  ベクトル和、ベクトル・スカラー積   – 通信不要   56
  57. 57. 内積の直接計算 •  本当に計算したいのは解ベクトル   そのも のではなく、bとの内積 •  このスカラー量を直接計算することを考える   x j bT x j 57
  58. 58. Shi=ed  COCGのアルゴリズム(再掲) Set initial guess x0 Set x j 0 = x0 = 0, 1 = j 1 = j 0 = 1 Set p j 0 = p0 = r0 = b for k = 0, 1, . . . , until converge do {COCG iteration} for j = 1, 2, . . . , N do j k+1 = j k j k 1 k 1 k k 1( j k 1 j k ) + j k 1 k 1(1 + j k) j k = ( j k+1/ j k ) k x j k+1 = x j k + j k p j k j k = ( j k+1/ j k )2 j k p j k+1 = j k+1rk+1 + j k p j k end for end for 58
  59. 59. スカラーの漸化式 x j k+1 = x j k + j k p j k ベクトルの漸化式がスカラーの漸化式に 計算量、メモリ要求量の大幅な削減 p j k+1 = j k+1rk+1 + j k p j k bT x j k+1 = bT x j k + j k bT p j k bT p j k+1 = j k bT p j k ベクトルの漸化式: bとの内積をとると… bT rk = 0 (k = 1, 2, . . . ) を利用 59
  60. 60. 超大量のシフト方程式がある場合 •  超大量のシフト方程式をまとめて解く場合、 (特にBlock  Krylov部分空間法への一般化を すると)漸化式の係数の計算が大部分を占め るようになる   •  独立に計算できるのでこれらも並列に計算す る   – これはスカラーの漸化式だからこそできる 60
  61. 61. Outline •  固有値問題とその解法   •  固有値数の確率的推定法   •  小規模問題での数値実験   •  実用化について   •  並列化について   •  超大規模問題での数値実験   61
  62. 62. 非公開スライド 62
  63. 63. まとめと今後の展開 •  まとめ   – モンテカルロ法に基づく固有値分布計算手法とそ の実用化・並列化について述べた   – 電子状態計算で現れる超大規模問題で、今回紹 介したモンテカルロ固有値分布計算は固有値解 法を行う前のProfilingとして十分高速であることを 確認   •  今後の展開   – モンテカルロ計算による固有値数推定に関する 確率不等式についての研究   63

×