格子QCDのための線形計算 (連立一次方程式、固有値問題) について
DESCRIPTION
格子QCDのための線形計算 (連立一次方程式、固有値問題) について. 石川健一 ( 広島大理 ). アルゴリズムによる計算科学の融合と発展 @CCS, 筑波大学 , 2009年4月22日・23日. 1. 目次. 2.格子QCDについて 3.ハイブリッドモンテカルロ法 4.格子化クォークのタイプ 5.クォーク伝播関数ソルバー 6.固有値問題 7.まとめ. 2 . 格子QCDについて. QCD を解くためには. 時空を格子化 した有限自由度の 格子 QCD という方法を用いる。. K.G.Wilson (1974). - PowerPoint PPT PresentationTRANSCRIPT
1
格子QCDのための線形計算(連立一次方程式、固有値問題)につい
て
石川健一 ( 広島大理 )
アルゴリズムによる計算科学の融合と発展@CCS, 筑波大学 , 2009年4月22日・23
日
2
1. 目次 2.格子QCDについて 3.ハイブリッドモンテカルロ法 4.格子化クォークのタイプ 5.クォーク伝播関数ソルバー 6.固有値問題 7.まとめ
3
2 . 格子QCDについて
QCD を解くためには
格子化した時空連続時空
K.G.Wilson (1974)
連続時空上の場の変数 → 格子上の場の変数
時空を格子化した有限自由度の格子 QCD という方法を用いる。
4
2 . 格子QCDについて 分配関数(ユークリッド
化された経路積分)
物理量の期待値
)(n
)(nU)(n
)(
),(
UH
US
edU
edUdZ
)()(1 UHeUOdUZ
O
有効作用を重みとする多重積分 => モンテカルロ積分
統計力学で用いられてきた方法
作用
有効作用
5
特徴、 自由度がとても大きい 16^4 ~ 32^4 格子
グルーオン:8x4x( 16^4 ~ 32^4 ) =200 万~ 3000 万自由度 ( 実数勘定 )
クォーク: 3x4x ( 16^4 ~ 32^4 ) =160 万~ 1500 万自由度 ( 実数勘定 )
系統誤差 格子化に伴う誤差 : 格子間隔 a = 0.1 fm ~ 0.06 fm → 0 fm 有限体積による誤差 : 核子が大体収まる大きさ L= 3fm ~ 4f
m →∞ クォークの質量が現実世界と異なるための誤差 m_q=40MeV ~ 100MeV → m_ud = 2MeV ~ 1
0MeV典型的な計算時間1~2年(論文、予算、、、、)
どのようにしてモンテカルロ積分のための配位を生成するか?
2 . 格子QCDについて
6
3. ハイブリッドモンテカルロ (HMC)法 格子 QCD 分配関数( Nf=2: クォークが2種類)
)(nU)(n
差分で出来ている。 格子点に関する列。に依存する大規模疎行
のみの関数、局所的補助場、、
: ][
: ][
:
UUD
UUS
P
G
ユークリッド化されているので、統計力学の分配関数と同等の計算になる。
11
,
2
],,,[
][][][])([2
1],,,[
,
UDUDUSnPTrUPH
eddPdUdZ
Gn
UPH
†††
† †
7
3. ハイブリッドモンテカルロ (HMC) 法
クォーク部分の計算が大変
モンテカルロ重み=行列式=補助場による分布
D[U] の逆を含む:非局所的
演算子差分化された
数クォーク部分の分配関
††
†
:][
],[exp
:][exp][21
DiracUD
Sdd
UDddUZ
Q
Q
2]][det[][ UDUZQ
真空からクォーク-反クオーク対が対生成、対消滅している効果を表している。真空偏極。
φ で積分すると
8
3. ハイブリッドモンテカルロ (HMC) 法
Hybrid Monte Carlo ( HMC )法
Exp(-H) の分布に従う U,P,φ を HMC 法で生成 U のサンプル { U(1),U(2),U(3),…..,U(N)} 物理量の期待値 ( 物理量は U のみの関数 O[U])
],,[])([2
1],,,[
,
,
2
],,,[
††
† †
USnPTrUPH
eddPdUdZ
effn
UPH
サンプル平均
††
: ][1
][ 1
1
)(
],,,[
N
k
k
UPH
UON
eUOddPdUdZ
O
9
3. ハイブリッドモンテカルロ (HMC) 法
HMC 法
に対して、マルコフチェーンモンテカルロ法の一種HMC法を適用 分子動力学 (Molecular Dynamics) (MD)
メトロポリス法 (Metropolis) 分子動力学ではエネルギーは差分化のため保存しない 分布がほしい分布 からずれる
で補正する
の微分を差分化)時間発展させる。(学法を用いてを離散化して分子動力の力学は
††
],,[2/][],,,[ 2 USPTrUPH eff
),1min()]','(),[( 'HHeUPUPP
],,[ UPHe
],,[])([2
1],,,[
,
,
2
],,,[
††
† †
USnPTrUPH
eddPdUdZ
effn
UPH
分子動力学法についての発展は今回は省略
10
3. ハイブリッドモンテカルロ (HMC) 法 Hybrid Monte Carlo ( HMC )法
計算が困難な点 分子動力学法の部分で
の大規模連立1次方程式を何回も解く必要がある。幸いD[U]の要素はほとんどゼロ(大規模疎行列)であ
るので、反復法を用いて連立方程式を解く。 しかし特にクォークの質量が小さいと、 D[U] がゼロに近
い固有値を持つため連立方程式を解くのが難しくなる。 クォークの質量が小さいと分子動力学の力が大きくなる。
分子動力学の時間刻みを小さくする必要がある。
bUDxbxUD 1])[(,][
32,1 ~(全体のコスト)
Zm
Z
q
11
3. ハイブリッドモンテカルロ (HMC) 法 問題をまとめると、
クォークのタイプによって D[U] がいろいろある モンテカルロ法による経路積分の評価で困難が生じるの
はクォークの寄与を取り入れる部分。
U の生成には、 D[U] x = b の連立一次方程式を大量に解く必要がある
これまでさまざまな前処理方法が開発されてきた 最近の発展について述べたい。
bUDxbxUD 1])[(,][
][])[( 1
]][det[][USUD
Q
effeed
UDUZ
†
クォークソルバー
行列式の評価、HMC 法の改良、分子動力学法についての発展は今回は省略
12
4 . 格子化クォークのタイプ 離散化には任意性がある 良い性質を持つものほど計算コストがかかる クォークの持つ対称性
ゲージ対称性 : 格子上でも死守すべき対称性 ポアンカレ対称性 : 一部破れるけどなるべく保持したい対称性、
ユークリッド化後:離散並進、離散回転、反転対称性 カイラル対称性: 格子上で厳密に実現することは不可能 ( ニールセン - 二宮
の定理 )
カイラル対称性の保持の仕方による分類 Kogut-Susskind 型:4つの同じ質量をもつクォーク(4フレー
バー)を同時に扱う。 U(1)xU(1) カイラル対称性を保持 Wilson-Dirac 型:1つのクォークから扱える。カイラル対称性は無
い Overlap 型、 Domain-Wall 型:1つのクォークから扱える。カイラ
ル対称性は変形された対称性を保持。計算コストがとても高い (Wilson 型に比べて 10-100 倍 )
055 DD
13
4 . 格子化クォークのタイプ Kogut-Susskind(KS) 型:4つの同じ質量をもつクォーク(4フ
レーバー)を同時に扱う。 U(1)xU(1) カイラル対称性を保持
最も簡単な D[U] の構造を持つ。現実世界のクォークは6種類で質量もばらばら。軽いのはアップとダウンの2種類のクォーク = 4つ同時では扱えない。スキップします。
14
4 . 格子化クォークのタイプ Wilson-Dirac 型:1つのクォークから扱える。カイラル対称性は無
い。 D [U] は一階の差分演算子
クォーク質量 m 1/κ∝ カラー (3), スピン (4) の自由度が各格子点にある ブロックサイズ12のブロックの帯が並んだ疎行列
),( 11),]([
)(1)(1),(
,
4
1,ˆ,ˆ
mnMmnUD
mUnUmnM
mnW
mnmn
†
M の固有値分布 U=1,4^4Witzel,Takeda,Wolff, hep-lat[arXiv:0709.4648]
はエルミート行列 † , )( 555 WWWW DHDD
15
4 . 格子化クォークのタイプ Overlap 型、 Domain-Wall 型:1つのクォークから扱える。カイラ
ル対称性は変形された対称性を保持。計算コストがとても高い (Wilson 型に比べて 10-100 倍 )
質量 m Wilson-Dirac クォークの行列 DW のサイン関数を含む Dov は密な行列
対称性: 質量 m=0 で Ginparg-Wilson 関係を満たす
はユニタリー行列
)()(
)( 1
050
05
MDMH
MHsignmD
WW
WOV
55
55
)1(
0
OV
OVOV
D
DD
)( 05 MHsign W
)()(
)(
)(
)()(
00
0
20
0505
MDMD
MD
MH
MHMHsign
WW
W
W
WW
†
Taken fromTalk slid by R.Edwards
16
4 . 格子化クォークのタイプ まとめ、
Dx = b は反復法で解く 係数行列 D の型
Wilson-Dirac 型 1階差分型:さまざまな前処理が適用されてきた
Red-brack(2色 ), ILU,SSOR, 2色ブロック … etc. Dx = b を直接解く : Non-Hermitian sovler, BiCG
Stab, GMRES などが使われてきた (D†D)x=D†b を解く : positive Hermitian solver,
CG が使われる。条件数悪し。 γ5Dx=γ5D を解く : indefinite Hermitian solver,
MINRES など、、 前処理つき BiCGStab, GMRES 系統が良く使われる
17
4 . 格子化クォークのタイプ Overlap 型
D をベクトルにかけるときに sign 関数の計算が必要 Dx=b 自体は Hermite 化後 CG などで解く Sign 関数の計算
Arnoldi / Lanczos 分解による方法
Pade / Rational :部分分数展開近似による方法
部分分数 /連分数展開+補助場の導入による方法 => 5次元化 ソルバーの入れ子を解消
HW や DW の固有値範囲の情報を用い sign 関数の近似の精度をコントロールする必要がある。
....
,11
bVTsignVbHsign
evTVVH
kkkW
TkkkkkkW
†
bH
HbHsignj jw
jwW
02
x
x
x
x
Schur
xx
xxsign
nn
nn
22
212
11
10
32
21
10
.....
Overlap 型についてはこれ以上次官の都合上言及しない日本では JLQCD collaboration でくわしく研究されているKEK 松古、金児、橋本… ..
18
5 . クォーク伝播関数ソルバー Dx=bを速く解きたい 格子サイズ : 32^3x64 ( 現状 O(10)TFlops)
=> 256 倍: 128^3x256 (O(2)PFlops)
次元 : 12x [ 格子サイズ ]= 2500 万 => 64億
(1)前処理: Wilson 型に関しては構造が簡単( Red-Black, ILD, Domain-Decomposition etc. ) , Overlap 型については難しい⇒ 5D 化で構造が簡単に [省略 ]
(2) 固有値固有ベクトルの情報: Deflation/Multigrid
(3) 単精度加速:(4) アクセラレータ:
19
5. クォーク伝播関数ソルバー
(2) Deflation technique LQCD では何回も Dx=b を解く
右辺ベクトルを取り替えながら、係数行列は一定。または、係数行列が少しづつ変化しながら連鎖的に解く必要がある
Quark propagator Solver in HMC trajectory
ブロック化ソルバー:係数行列固定、右辺ベクトル多数 Deflation technique: 係数行列の固有ベクトルの情報により前処理
Deflation remove/suppress small eigenspace of D.
,,3,2,1,
3,2,1,)1()()()()(
)()(
iiiii
ii
DDibxD
ibDx
20
5. クォーク伝播関数ソルバー
(2) Deflation technique ( Solve Ax=b ・・・ (1) ) 行列 A : 小さい固有値に属す
る p-次元部分空間を持つとする
c,u : この部分空間に属する以下の条件を満たすベクトルとする
c から射影演算子を定義
P を使って問題を前処理
ppp
pp
pp
pp
ICC
CAU
cccC
uuuU
†
),,,(
),,,(
21
21
ACUIQ
CCIP
ppp
ppp
†
†
AQPA
式 (1) の解 x は式 (2) の解 y を用いて以下のように書かれる
“Cp” はどうやって作る? 反復には P の掛け算が伴う
(overhead))2( )( PbyPA
bCUQyx pp†
bbCCPb
bCCPAy
bCAUAQyAx
pp
pp
pp
†
†
†
21
5. クォーク伝播関数ソルバー(2) Deflation technique (cont’d) Many works by
正確な不変部分空間の計算はとてもコストが高い 低モード密度 ∝ O(V), モード計算コスト O(V)
=> 全体で O(V^2) の問題
(a) Dx=b を解きながら、同時に不変部分空間を求め使いまわす GCRO-DR: Parks & Sturler, used by PACS-CS collab. GMRES-DR,GMRES-E..: Wilcox, Morgan & Abdel-Rehim
(b)低モード固有ベクトルは滑らかに局在。ブロック分割可能? Luscher’s Domain decomposed subspace blocking with local coh
erency. (Used also in HMC algorithm)
[Luescher, JHEP07(2007),hep-lat/0710.5417;A.Stathopoulos, K.Orginos, hep-lat/0707.0131;
W.Wilcox, PoS(LATTICE2007),hep-lat/0710.1813; A.Abdel-Rehim,R.B.Morgan,W.Wilcox,PoS(LATTICE2007);
R.B.Morgan,W.Wilcox,math-ph/0707.0505,math-ph/0405053;M.L.Parks, E.De Sturler et al, SIAM J. on Sci.Comp. 28(2006)1651
LATTICE2008: Poster by Abdel-Rehim, Talk by Wilcox]More details see Wilcox @Lat2007.
22
5. クォーク伝播関数ソルバー(a) 固有空間の計算と連立一次方程式を同時に解く .Very effective for few Near zero modes / negative eigen modes case.
Near zero modes case First equation or few equations are solved with GMRES-DR. Once
the subspace converged, change solver with GMRES-proj, or Deflated solver.
Normal GMRES stagnates [dot-dot-dashed line] Solver with Deflation/Projection converges. [other lines]
[Wilcox, LAT2007]
23
5. クォーク伝播関数ソルバー
(b) ブロック化された基底ベクトルで元の行列の逆を取り近似固有空間を構成する .
基底ベクトルの構成方法が重要 Low mode ベクトルはブロックベクトルで近似できる
blocks N
jjj xcx
1),( )()( : vectormede low a
[Luscher, JHEP07(2007)081]
24
(b) ブロック化された基底ベクトルで元の行列の逆を取り近似固有空間を構成する .
B : ブロック化された部分空間での D[U] の表現(=サブグリッド上に射影された)
5. クォーク伝播関数ソルバー
基底ベクトル( C )の構成 ランダムベクトルに 1/D を数
回かけて低モードを増幅 そのベクトルをサブブロックに
分割 分割されたベクトルを正規直交
化
Deflation の射影演算子 (B^-1)を含む .
4
1,ˆ,ˆ, ),,,(),,,(),,(
)()(),;,(
jiBjiBjiB
DjiB ji†
[Luscher, JHEP07(2007)081]
,,,
, ,1 ,122
11
QQPPDQPD
DCCBDCCBQCDCBP
†††
ijjij
j
x
xx
NjxC
†)( ,)(0
)(0)(
blocksdomain all,,,1:)(
25
5. クォーク伝播関数ソルバー
(2) MultiGrid Solver MultiGrid solver also removes critica
l slowing down. Choice of subspace basis is importa
nt. (Prolongator)
射影のための基底ベクトルの選び方が重要( Luscher の基底と同じ)
r.Prolongatofor used is
)( ,)(0
)(0)(
blocksdomain all:)(
C
x
xx
xC
†
as blocked is
then enhanced, mode low
:)()1(
vectorrandom a :)(1
w
vDDvDDw
xvv ††
QCD, 16^3x32[Brannick,Brower,Clark,Osborn,Rebbi,
PRL100(2008)]
26
(3) 単精度加速 単精度の利点 : 有効バンド幅、キャッシュサイズ、(レ
ジスターの数)などが倍になる=効率(実性能 / 理論性能)が高い
Intel 64/AMD 64; Single prec. > Double prec. Cell PS3/GPGPU; Single >> Double. For Wilson kernel : 3Byte/Flop => 1.5 Byte/Flop
連立一次方程式の解法を加速するのに使えないか? 反復改良法 /Richardson 反復のテクニックで可能
一般の反復法にも組み入れることが出来る(可変前処理)• 前処理として単精度ソルバーを使う• 残差は倍精度で正しくなるように組む• FGMRES, GCR, CG, BiCGStab….. (with flexible prec.)
5. クォーク伝播関数ソルバー
[Buttari,Dongarra,Kurzak,Luszczek,Tomov, AMC Trans.Math.Soft]
27
(3) 単精度加速Nested-BiCGStab (櫻井 -多田野 )Outer solver : BiCGStab (D.P.)
Inner solver: BiCGStab (S.P.)= Outer solver に対する可変前処理
Intel 64, SSE3 使用 + リンク再構築で全て倍精度の時より速度が倍に(演算量は増えているが)
5. クォーク伝播関数ソルバー
[PACS-CS collab.]
28
( 4 ) アクセラレーター 単精度加速と組み合わせるとさらに有効なもの
GPGPU, CellB.E. は単精度計算が圧倒的に速い GRAPE => QCD?
NVIDIA GT200 (Tesla 10series) 240 SP (SP cores), 30 DP cores ~ 1,000(or 600)Glops(SP), ~ 90GFlops(DP) We expect > 60 GFlops(SP) for QCD kernel.
(assuming 10% efficiency)
5. クォーク伝播関数ソルバー
29
( 4 ) アクセラレーター NVIDIA CUDA を使った例(石川 -尾崎) CPU: Core2Duo@3GHz GPU: GeForce GTX 280 O(a)-improved Wilson-Dirac Red/black site prec’d Nested-BiCGStab Time
CPU only: 184sec, CPU: 1.9GFlops
CPU+GPU: 8.6 sec, CPU: 1.7GFlops GPU: 58GFlops GPU D mult.: 102GFlops
5. クォーク伝播関数ソルバー
この場合 184/8.6 = 21倍の高速化 ! 10倍以上速くなるのは大きい
30
( 4 ) アクセラレーター NVIDIA CUDA を使った例( Clark et al. Work shop@CCS, 10-1
2 March, 2009 ) Nvidia GPU でさらに加速する方法 単精度=>半精度( 16bit )化してさらにバンド幅を稼ぐ 符号付 16bit整数をノーコストで [-1.0,1.0] 単精度へ自動変換でき
る機能を利用( Texture Fetching ) 有効バンド幅と、有効 Texture Cache サイズが倍、レジスタは
32bit 浮動小数点のものしかないので演算は単精度 メモリとのやり取りは Texture Fetching ( ロード ) と整数への丸め
( ストア )
5. クォーク伝播関数ソルバー
31
( 4 ) アクセラレーター NVIDIA CUDA を使った例 [M.Clark et al. Work shop@CCS, 10-12 March, 2009]
5. クォーク伝播関数ソルバー
半精度 (16bit int) でさらに2割性能上昇
そのほかの工夫でさらに加速
• ゲージ固定• SU(3)行列を実8パ
ラメータで保存
GPGPU: 演算が圧倒的に速いので、バンド幅、キャッシュの有効利用のほうが重要
32
( 4 ) アクセラレーター Cell B.E. での計算
大規模 Cell B.E. クラスタ: QPACE (QCD Parallel computing on Cell B.E.) project (EU) 2048 PowerXCell8i, + カスタムネットワーク 3D トーラス (FPGA) 2009春完成?
GPUクラスター : National Taiwa Univ. 16nodes+16TeslaS1070: 64TFlops KEK, 4 nodes + 4 Tesla S1070: 16TFlops ….?
多体系の計算に対する応用が GPGPU でも先行 ( GRAPE ) AMD/ATI での計算 [V.Demchik and A. Strelchenko arXiv:0903.0353] 並列化はどうする? 領域分割前処理 +Deflation/Multigrid ?
5. クォーク伝播関数ソルバー[Spary,Hill,Trew hep-lat/0804.3654;
S.Motoki & A. Nakamura Lat2007;
F.Belletti et al. LAT2007]
[H.Baier at al. ,Lat2008, arXive:0801.1559
33
5. クォーク伝播関数ソルバー
問題の微分方程式離散化 問題空間をいくつかに分割(重複も
可) 流れ(基本的に反復改良法)
1.初期解と、初期残差 2.残差に対して問題の式を分割された空間で解く
3.解いた結果を使って近似解を構成 4.残差を計算=>2.にもどる
解の更新の順番とか、境界の扱い方とか、部分空間に制限する方法とか、重複部分をどう扱うかとか、、、、
さまざまなバリエーション この方法だけでは収束しないのでこの
反復を Krylov 部分空間法の前処理として採用する。
Ω1
Ω2
Γ2 Γ 1
, :Compute
),f( :Update
in , :Solve
, ,00
Axbr
xxx
rxA
Axbrx
i
iiii
領域分割前処理 (Domain–decomposition)再び
34
5. クォーク伝播関数ソルバー Luescher の導入した領域分割前処理 :
Schwartz alternating method (SAP): Two no-overlapping domain = block Schur complement (Luscher) = Multiplicative Schwarz Method
小領域ソルバーをアクセラレータで加速 並列度、ノードに2色入れる必要がある。 Overlap 無しのた
めノードの担当する格子点数は少ない
rDDDDDxx
Dvrrvxx
rDv
Dvrrvxx
rDv
EEOEOOOOEE
jii
jii
1111
blocks odd1
blockseven 1
:
,
,
C.f. SAP=Multiplicative Schwarz
Solve in Even domain
Solve in Odd domain
35
5. クォーク伝播関数ソルバー Multiplicative Schwarz (MS) vs Additve Schwarz (AS)
MS : generalized Block Gauss-Seidel AS: generalized Block Jacobi (MS > AS, factor 2)
Restricted (Overlapping) Additive Schwarz (RAS) method
Overlapped regionDepth 2
Projection on a fermion field
Residual vector field r
Solve in i-th domain D_i x_i =r_i
[Cai & Sarkis, SIAM J.S.C.21(1999)]
36
5. クォーク伝播関数ソルバー
RAS: 領域を重ね、領域間の依存性を無視、重なり領域は戻さない: 並列度が上がる。(1ノード1領域) 小領域を大きくしてアクセラレータの効率を上げる。 領域の重なりにより前処理性能を上げる。
Overlapped regionDepth 2
Return only original region
Solution vector field xx = x + \sum_i x_i
37
Iterate
Overlapping improves performance. But task increased.
Prolongation is not overlapping (Restricted). This also improves the performance.
RAS のみでは収束が遅い、 MG や Deflation が必要
operator projection latticeblock 2d)(depth goverlappin :
solver.Block : ,
,
2
21
220
blocks all
di
tdi
di
tdiii
ji
R
RDRRRM
Dvrrvxx
rMv Each blocks are independent.solved in each block in parallel.GPGPU!
Restricted (Overlapping) Additive Schwarz (RAS) method
rDDDDDxx
Dvrrvxx
rDv
Dvrrvxx
rDv
EEOEOOOOEE
jii
jii
1111
blocks odd1
blockseven 1
:
,
,
C.f. SAP=Multiplicative Schwarz
Solve in Even domain
Solve in Odd domain
5. クォーク伝播関数ソルバー
38
5. クォーク伝播関数ソルバー Test on small lattice (16^3x32), timing comparison.
PC Cluster: 16 nodes.Block size: SAP: 8^4 RAS: (8+2d)^3x(16+2d)Deflate10 small eigenvalues.Best case comparison.計算時間の 9割は単精度計算
SAP with Deflation is the best.RAS(d=1) approaches SAP w/o deflation. RAS(d=2,3) reduce iteration count by 1/2-1/3. But the task in each node is rapidly increasing by overlapping reagion. AS は MS にはやはり勝てない?GPU で比較する予定
SAP+Defl
RAS(d=1)+Defl
Fast Slow
39
6. 固有値問題 D[U]の固有値固有ベクトルが分かるといろいろ便利なことが
ある。 Low-mode averaging
物理量にはクォーク D[U] の小さい固有値固有ベクトルが重要。 並進対称性を利用した統計の向上
Determinant splitting 行列式の評価で、小さい固有値は正確に計算し残りはモンテカルロで評価
する Epsilon regime
D[U] のゼロ付近の固有値分布とカイラル対称性の破れの関係 Deflation for quark solver
大量の Dx=b を解く時に D の固有空間が分かるとそれを使って前処理して、高速化
Matrix function Overlap 型クォークの sign 関数、奇数フレーバーのための sqrt(D),
行列式を TrLog[D] で評価、前処理のための (D†D)(1/n) などなど、、、
40
6. 固有値問題
固有値固有ベクトルを求めるのは Dx=b を一回だけ解くのに比べてはるかに困難
Lattice QCD で使われている手法 H =γ5D : Hermite 行列 => Lanczos アルゴリズムとその系
統 D : non-Hermitian 行列 => Arnoldi アルゴリズムとその系統
Lanczos 系 Thick-restareted Lanczos [Wu&Simon] PACC-CS collab. で使用中、他のグループでも使われているかも
D に対してはほぼ ARPACK (Implicitly Restarted Arnoldi Method) が使われている。
大体の LQCD 論文で ARPACK が言及されている
そのほかのアルゴリズムは? Jacobi-Davidoson 法は?
[Lehoucq, Sorensen, Yang, Maschhoff]
41
6. 固有値問題 Arnoldi/Lanczos 系での困難 原点に近い固有値固有ベクトルを求めたいとき、逆反復にする (+s
hift もするかも ) Arnoldi(Lanczos) 反復で問題を小さな問題に変換
1. 適当な初期ベクトルから直交基底ベクトルを構成していく( m 反復後)
2. Hm の固有値固有ベクトルから 1/D の大きいほうの固有値固有ベクトルを抽出= D の小さい固有値固有ベクトルを抽出
3. ほしいベクトルを何本か残して式の形が変化しないようにユニタリー変換して縮小してリスタート (Implicit restart)
4. ほしいベクトルが収束するまでリスタートを繰り返す
1/D の計算は反復法で行う 計算コスト : 大体 (m x [ リスタート回数 ]) 回、反復法で Dx=b を解
く 得られる固有ベクトルの精度は 1/D の計算精度で決まってしまう。 Dx=b に対する反復法も良い精度で解く必要がある。
小行列正規直交基底
:
)( : ),....,,(
,
21
1,11
mmH
mNvvvV
evhHVVD
m
mm
Tmmmmmmm
42
6. 固有値問題 Arnoldi/Lanczos 系での困難 固有ベクトルの情報を何かの計算の加速に使おうと思うと、 連立一次方程式 Dx=b を精度よく何回も解かないといけないので本末転倒しているような気がする。
私がいろいろ調べた結果 Jacobi-Davidson 法はその困難がない?
Deflation付のソルバーを使わないといけない様である。 固有値固有ベクトルペア (Ritz pair) を1個づつ求めていく様である。 ターゲットの Ritz pair の選び方とか、うまくリスタートする実装の仕方が
まだ良く理解できていないのでテストしていません。
RESidual Arnoldi Method (RESAM)
部分空間反復法と Arnoldi 法の合成みたいな方法 Jacobi-Davidson 法にも似ているが Deflation 付ソルバがいらない D 論なのでくわしく書いてある 売りは、 Dx=b は低精度で解くので十分なので IRAM よりも速い
[C.R.Lee & G.W.Stewart, Tech. Report TR-2007-45; C.R.Lee, Ph.D. Thesis]
IRAM(KSRAM) と RESAM を QCD で比較してみました。
43
6. 固有値問題 RESRAM
1. 初期部分空間を Arnoldi 法で作っておく 2. その部分空間から Ritz pair を用いてターゲットとなる近似固有値
固有ベクトルを求める 3. その近似固有値固有ベクトルの残差を計算する。収束していたら D
eflation に加える、次のターゲットを探すべく 2. へ戻る 4. 残差に対して 1/D の近似をかける (Ritz 値へ shift しても良い ) 5. それを以前の部分空間に対して正規直交化して部分空間に付け加え
て部分空間を拡張する 6. 部分空間の次元がある最大値に達したら Schur 型を経由して次元を縮める。その際収束している部分空間が変化しないようにうまくする。
Step. 4 は精度を求めないので単精度でも OK 最終結果に倍精度を求めるなら、それ以外の計算、特に固有方程式
の残差の計算は倍精度で行う必要がある。
44
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market
より ] IRAM
ARPACK をそのままコンパイル KSRAM
IRAM を自分で実装できなかったので IRAM とほぼ同等な Krylov-Schur Restarted Arnoldi Method [TRLAN の non-Hermitan版 ] を実装 ,
RESAM
以下を変化させて速度測定 変化させるパラメータ:
線形ソルバー (Dx=b) の精度、 求める固有値固有ベクトルの精度、
線形ソルバーは共通の GCRO-DR 法 最大部分空間次元は 40 リスタート時に残す部分空間次元は
min(( すでに求まった部分空間次元+ 20),40) 環境: PC 一台 : CPU Core2Duo [email protected]
原点付近の固有値を20個求める
45
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market より ]
原点付近の固有値を20個求める
欲しい固有値固有ベクトルの精度よりも線形ソルバーの精度を落としたときの固有値固有ベクトルの残差はどうなるか?
IRAM: 線形ソルバーの精度より良くなることはない
RESAM: 常に必要な精度が得られる
46
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market より ]
原点付近の固有値を20個求める
倍精度で解を求める場合の計算時間の比較
IRAM,KSRAM: 線形ソルバーは倍精度で説き続ける
RESAM: 線形ソルバーは 1/10の精度で求めればよい。
全体の計算時間のほとんどは線形ソルバーの時間に費やされる。
固有値ソルバーの反復回数は IRAM/KSRAM << RESAM
積算された時間は RESRAM << IRAM/KSRAM
47
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market より ]
原点付近の固有値を20個求める
RESAM で倍精度で解を求める場合の固有ペア残差のヒストリ
1本ずつ原点に近いものから求めていっている。
線形ソルバーの停止条件は残差が 1/10 を切ったとき。
線形ソルバーの停止条件をきつくすると、 REAAM の反復回数は減っていくが、線形ソルバーの時間の増加を補うほどではないので帰って全体が遅くなる。
Best Time は tol_solver = 1/10の時
48
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market より ]
原点付近の固有値を20個求める
加速率の比較 (Best 同士の比較 )
IRAM,KSRAM: (求める固有ペアの精度 )
= ( 線形ソルバーの停止精度 )/2 RESAM:
線形ソルバーの停止精度 =1/10
高精度 (誤差 10^-4以下 ) の固有ペアを求めるとき RESRAM は IRAM/KSRAM より速い。
倍精度ぎりぎりのときは特に倍速い
本格的に大きな格子ではどうか?(並列化必要)
49
6. 固有値問題 比較テスト 小問題 [4^4 格子 beta=5.0 クエンチ Matrix market より ]
原点付近の固有値を20個求める
加速率の比較 (Best 同士の比較 )
IRAM,KSRAM: (求める固有ペアの精度 )
= ( 線形ソルバーの停止精度 )/2 RESAM:
線形ソルバーの停止精度 =1/10
高精度 (誤差 10^-4以下 ) の固有ペアを求めるとき RESRAM は IRAM/KSRAM より速い。
倍精度ぎりぎりのときは特に倍速い
本格的に大きな格子ではどうか?(並列化必要)
50
6. 固有値問題 比較テスト 中問題 [16^3x32 格子 ]
原点付近の固有値を20個求める
線形ソルバー KSRAM:
Nested BiCGStab( 単精度部分 : BiCGStab/GCRO-DR)
RESRAM: 単精度 BiCGStab/GCRO-DR
計算時間の比較 (Best 同士の比較 )
KSRAM: (求める固有ペアの精度 )
= (線形ソルバーの停止精度 )/2 RESAM:
線形ソルバーの停止精度 =0.5
すべての必要精度で、 RESRAM が速いようだ。
51
6. 固有値問題 比較テスト 中問題 [16^3x32 格子 ]
原点付近の固有値を20個求める
加速率の比較 (Best 同士の比較 )
KSRAM: (求める固有ペアの精度 )
= (線形ソルバーの停止精度 )/2 RESAM:
線形ソルバーの停止精度 =0.5
すべての必要精度で、 RESRAMが速いようだ。大体倍ぐらい速い。
QCD(Wilson-Dirac 型 ) では確かに RESRAM は速そうだ。
Hermit 版はどうか? Jacobi-Davidson 法も同様に速い
のかも?
線形ソルバーを低精度に出来る=>アクセラレータでさらに加速?
52
7 .まとめ 格子 QCD: クォーク行列の逆、行列式などの評価の高速化が重要
Wilson-Dirac 型クォーク: 係数行列の形は簡単=プログラム上の最適化では限界がすぐ来
る=>アルゴリズムの改良は重要 さまざまな改良:
前処理:領域分割、 Deflation 、 MultiGrid 、 精度を落として加速? 並列度を上げる? アクセラレータ? 固有ペアの計算 これらの改良の組み合わせ
紹介し切れなかったこと 行列関数 (Overlap 型クォークなど ) の評価法 分子動力学の改良 マルコフチェーンモンテカルロ法の改良?