CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2
-
Upload
computational-materials-science-initiative -
Category
Technology
-
view
916 -
download
2
Transcript of CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2
古典分子動力学計算法の高速化2
名古屋大学大学院工学研究科
附属計算科学連携教育研究センター
吉井範行
CMSI計算科学技術特論A
2013年7月11日
講義内容
• 効率化のための方法
Multiple time step
(時間発展演算子法、シンプレクティック数値計算法)
• 高速化のために、キャッシュの有効利用、キャッシュミス
MD計算の並列化
• 高速多重極展開法(FMM)
• データ構造 メタデータ法
• 通信量の最小化
• データ局在化による計算効率の向上
• ベンチマーク
• MODYLAS
CMSI計算科学技術特論A
Multiple time step
• 同じMD計算のなかで変化の速いものと遅いものがある場合には,速い変化のほうに対応した小さなΔtを選択しなければならない.
• Hに対する運動方程式とほかの重い原子に対する運動方程式を区別して,異なったΔtで解くことができれば非常に都合のよいことになる.この考え方に基づいた方法がMultiple time step法である.
CMSI計算科学技術特論A
例 United atomのブチルアルコールのフレキシブルモデル
CH3-CH2-CH2-CH2-O-H 2fst 0.1fst
時間発展演算子法 • 時間発展演算子法により、重い(遅い)運動と軽い(速い)運動とを分離して数値積分する。
• 時間発展演算子法
CMSI計算科学技術特論A
リウビル演算子 L
時間発展演算子
異なる自由度など2つの部分に分離できると トロッター展開により
/2 /2 3e e e e O( )p pri t i ti t i t t
L LL L=
時間発展演算子法では、リウビル演算子、あるいはそのもととなる運動方程式やハミルトニアンが与えられれば、機械的に数値計算法を作り出すことができる.
速度ベルレ法
時間発展演算子法
• 時間発展演算子法により、重い(遅い)運動と軽い(速い)運動とを分離して数値積分する。
CMSI計算科学技術特論A
リウビル演算子 L
時間発展演算子
/2 /2
/2 2 2 /2
e e e e
e e e e e
heavy r light heavy
heavy light light heavyr
i t i t i ti t
ni t i t t i t i ti t
L L L LL
L L L LL
シンプレクティック数値計算法
• ハミルトニアンがある系について時間発展演算子法を用いると、MD計算のハミルトニアンが長時間にわたって保存するという優れた性質が現れる
• 数値計算においてもハミルトニアン(影のハミルトニアン)が存在することによる
• このようなハミルトン系に対する数値計算をシンプレクティック数値計算法という
CMSI計算科学技術特論A
ハミルトニアンのあるもの フレキシブルモデル分子の運動 剛体回転子の運動 能勢・ポアンカレの方法 アンダーソンの方法 パリネロ・ラーマンの方法
,Hi H L
2e e e O( )H T Vi t i t i t t L L L=
,Ti T L ,Vi V L
H T V
e e eT VHi t i t i t L L L=
2
t H HH H
q p
高速化のために
遅い演算(除算と組み込み関数) • 除算は他の四則演算より遅い。 • 組み込み関数も時間のかかる演算である。
• ホットスポット内ではできるだけこれらの演算を減らすように工夫する。
CMSI計算科学技術特論A
do i=1,n b(i)=a(i)/x enddo
y=1.d0/x do i=1,n b(i)=a(i)*y enddo
除算をループの外へ移動
do i=1,n x(i)=a(i)/b(i)/c(i) enddo
do i=1,n x(i)=a(i)/(b(i)*c(i)) enddo
除算を乗算に変更
do i=1,n x(i)=a(i)/b(i) y(i)=c(i)/d(i) enddo
do i=1,n tmp=1.d0/(b(i)*d(i)) x(i)=a(i)*d(i)*tmp y(i)=c(i)*b(i)*tmp enddo
通分の利用
• ex×ey ex+y
• logax + logay logaxy
• sinθ ×cosθ 0.5sin2θ
• If(sqrt(x*x+y*y) < R) If(x*x+y*y < R2)
y=sign(x,a)
If(a > 0.d0) then y=abs(x) else y=-abs(x) endif
遅い演算(組み込み関数) 組み込み関数のfortranコード化 環境によって速くなる場合とそうでない場合がある。両者の比較が必要。
imax=0 do i=1,n imax = max(imax,m(i)) enddo
imax=0 do i=1,n if(m(i) > imax) imax=m(i) enddo
m=nint(a)
If(a > 0.d0) then m=a+0.5d0 else m=a-0.5d0 endif
高速化のために
高速化のために
分子シミュレーションへの適用
• Lennard-Jones相互作用
CMSI計算科学技術特論A
r 6=r 2 *r 2 *r 2 r 12 =r 6*r 6 V=1.d0/r 12 -1.d0/ r6
r 6=r 2 *r 2 *r 2 r 12 =r 6*r 6 V=(1.d0 -1.d0*r6)/r 12
LJ相互作用への適用
12 61 1
Vr r
キャッシュの有効利用
CMSI計算科学技術特論A
CPUの必要なデータに高速アクセス ① データはメモリに格納 ② 必要に応じて隣接するデータと共にキャッシュ上に ③ 演算で必要となるとレジスタにコピー ④ 演算された結果は再びキャッシュに上書き ⑤ キャッシュ上で用いられなくなるとメモリ上に上書きコピーされる.
キャッシュミス
CMSI計算科学技術特論A
• データ:レジスタ←キャッシュ←メモリ
• レジスタ←キャッシュ:高速アクセス
• キャッシュ←メモリ:←低速アクセス
• 演算を行う時にデータがキャッシュ上にないときはメモリまで取りに行く。キャッシュミス。
• データがキャッシュに乗っているように工夫することが重要。
キャッシュミスを防ぐ
CMSI計算科学技術特論A
• 1次元配列の変数:引数の順にキャッシュに格納 • 1次元配列の変数へのアクセス→配列の引数について連続的にアクセスするように心がける。
• 2次元以上の配列の変数:Fortranでは配列左側の引数の順にキャッシュに格納。
(C言語は右側から) • 2次元以上の配列の変数へのアクセス→Fortranでは配列の左側の引数について連続的にアクセスするように心がける。 A(I,j)
(C言語は右側)
MD計算の並列化
• ループ分割:計算負荷の大きなdo ループを並列化 ⇒並列化が容易 ⇒全ノード間で通信(MPI) ⇒MPIの高並列になると効率が悪い • 領域分割:基本セルを複数の領域に分割 ⇒並列化が大変。 ⇒通信は隣接領域間のみ。 ⇒超並列でも効率がよい。 データ構造を大幅に変更 ほぼ最初から書き直し
CMSI計算科学技術特論A
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
高速多重極展開法(FMM)
• 多極子モーメントを用いた多重極展開
CMSI計算科学技術特論A
2 2 2
1 1 1
2 cos1 2 cos
i i i i i ii
r r r r r r rr
r r
1x
2 3
2 3
2 3 4
1 1cos 3cos 1 5cos 3cos
2 2
i i ii i i i
i
r r r
r r r r r
2 31 1 3 51
2 8 161x x x
x
原点0の周りに電荷Qiが分布 QiとQとの相互作用を 多重極展開で表す。
余弦定理
テイラー展開
高速多重極展開法(FMM)
• QiとQとの相互作用の多極子モーメントを用いた表式
CMSI計算科学技術特論A
0
22
2 30
2
3 50
3 50
1
4
1 1cos 3cos 1
4 2
1 1 1 13
4 2
1
4
i
ii
i ii i i
i
ii
i i i i i ii i
QQV
r
r rQ Q
r r r
Q
Q Q Q rr r r
ZQ
r r r
r r r r r I r
r μ r Q r
23
2
ii
i ii
ii i i
i
Z Q
Q
Qr
μ r
Q r r I
1 1
cosn
in i
i n
rP
r r r
0
1cos
4
ni
i n ii n
Q rV Q P
r r
Legendre多項式を用いた表式
展開のしかた ・多極子モーメント ・Legendre多項式 ・球面調和関数 等々
高速多重極展開法(FMM)
• 空間分割
CMSI計算科学技術特論A
2次元:4分木構造 3次元:8分木構造
レベル サブセル一辺の長さ
0 L
1 L/2
2 L/22
3 L/23
最も細かく分割したレベルのサブセルについて領域分割を適用
高速多重極展開法(FMM)
• ツリー法の相互作用計算の手順
CMSI計算科学技術特論A
2nL
r
1l l l l
k k k
k
Q r
見込み角 小 → 計算精度 高 大 → 低
23
2
ii
i ii
ii i i
i
Z Q
Q
Qr
μ r
Q r r I
3 50
1
4
ZV Q
r r r
r μ r Q r
高速多重極展開法(FMM)
• 粒子と分割されたサブセルとの相互作用 周期境界条件あり
CMSI計算科学技術特論A
d m
i i iV V V
自セルAの粒子iのポテンシャル𝑉𝑖
距離に応じてレベルの異なる多極子モーメントを利用する
高速多重極展開法(FMM)
• サブセル分割の規則
CMSI計算科学技術特論A
手順①
基本セル、第一、第二隣接のイメージセルをレベル1に分割。粒子iを含むレベル1のサブセルの第3隣接以遠のレベル1のサブセルが F 手順② F以外をレベル2に分割。粒子iを含むレベル2のサブセルの第3隣接以遠のレベル2のサブセルが E 手順③ E以外をレベル3に分割。粒子iを含むレベル3のサブセルの第3隣接以遠のレベル3のサブセルが D 手順④ D以外をレベル4に分割。このレベル4のサブセルがA,B,Cの領域。Aに隣接するレベル4のサブセルで第2隣接以内をB、それ以遠をCとする。
高速多重極展開法(FMM)
• 多重極展開と局所展開
CMSI計算科学技術特論A
𝑉𝑖d
𝑉𝑖m
手順(d) より遠いサブセル群E,FについてもDと同様。M(2), M(1)を求め、M2L、L2LによってL(4)を求める。 手順(e) 第3隣接以遠無限遠に至るイメージセルにM(0)があるものとして、基本セル上に作るL(0)を求める。L2LによりL(4)を求める。 手順(f) L(4)を用いてポテンシャルを評価する。
これを効率的に行うために手順(c), (d), (e)で得られたLそれぞれのレベルで足し合わせてからより小さなサブセルにL2L変換する。
高速多重極展開法(FMM)
CMSI計算科学技術特論A
粒子と分割されたサブセルとの相互作用 周期境界条件あり
d m
i i iV V V
𝑉𝑖d 直接計算部 (B)
𝑉𝑖m 多重極展開による部分
(C), (D), (E), (F)…
自セルAの粒子iのポテンシャル𝑉𝑖
距離に応じてレベルの異なる多極子モーメントを利用する
高速多重極展開法(FMM)
計算精度 • 静電+Lennard-Jones相互作用
• 計算精度を展開次数で制御
CMSI計算科学技術特論A
原子数 10,125,000 個 体積 46.83 nm3
セル数 643 (=262,144) 個 (セルあたり39個) 展開 エネルギー 4次 6~7桁 8次 8~9桁 力 4次 4~5桁 8次 6~7桁
V / 10-13 J Fx / 10-10 N Fy / 10-10 N Fz / 10-10 N
correct -218735559 -4.357177 6.380146 -1.477348
4次 -218735742 -4.356659 6.380802 -1.475152
8次 -218735559 -4.357201 6.380145 -1.477340
データ構造 メタデータ法 原子のデータ構造 • 原子座標、速度、力、セグメントデータ → メタデータ化 • プロセスに属するサブセルを割り当てて固定 (図では4×4のサブセルを1つのプロセスに割り当て) • サブセル内の原子のデータをプロセスに局在化させる。グローバルに持たない→省メモリ。 • データ領域に空きを用意 → サブセル内の原子数の増減に対応。各サブセル内の原子数に合わせて要
素数が変化。要素数情報もあわせて保持。 • メタデータ配列のまま演算も通信も行う。サブセルを表す3次元配列を持っているので、取り扱いが容易 • バッファリングやindirect accessがない。 • サブセル単位のメタデータがキャッシュに載るようにサブセル内の原子数を調整。 • 原子の運動に伴って原子の帰属するサブセルを更新 。
CMSI計算科学技術特論A
Cell index Z
Cel
l ind
ex Y
・セグメントデータ 一塊の原子団のデータ CH3、H2Oなど。 原子間距離拘束の情報
データ構造 メタデータ法
多重極子のデータ構造 • 多重極子モーメント、局所展開係数をメタデータ化 • 多重極子はサブセルに固定 → データ領域の空きは不要 • メタデータのまま演算も通信も行う。 • FMMの階層に応じて配列数が異なる。 • 下位階層(小さなサブセル)ではプロセスごとにサブセルが異なり多重極子が違う。
• 上位階層ではサブセルのサイズが大きくなり、複数のプロセスで同じ多重極子の情報を持つ。プロセス間で多重極子データのコピー
CMSI計算科学技術特論A
Cell index Z
Cel
l ind
ex Y
x x x
x x
x x
x
x x x x
x x
x
x
通信量の最小化 原子情報
自セルと相互作用する原子情報を集める。 • 通信回数と通信量の最小化 • 隣接セルと通信して1次元(z軸)方向にデータを結合し棒状のデータを作る。
• 棒状データをy軸方向に通信し結合させて、平面状データにする。
• x軸方向に平面状データを通信し結合させて、立方体状のデータにする。
• K-スパコンの多重同時通信(各軸ごとに+、-方向)
CMSI計算科学技術特論A
Step-1
Step-1
Step-1
Step-1
Step-2Step-2 Step-2Step-2
Cell index Z
Cel
l in
dex
Y
Rank 2
Rank 0 Rank 1
Rank 3
通信量の最小化 多重極子情報
自セルと相互作用する多重極子モーメント情報を集める
• 下位階層(小さなサブセル)の時には、原子情報の場合と同様の方法で通信する
• サブセルの情報が複数のプロセスで共有される上位階層(大きなサブセル)の時には、サブセル内の全てのプロセスが同じ情報を持っている。
• 特定のプロセスで計算をさせて、その結果を他のプロセスに配るより、すべてのプロセスで同じ計算をさせた方が速い。
• 全てのプロセスが通信により隣接サブセルの情報を取得する。 • サブセル内の相対位置が同じプロセス間で同時通信を行う。
CMSI計算科学技術特論A
データ局在化による計算効率の向上
キャッシュの利用効率の向上 • L1キャッシュ-L2キャッシュ-メモリ • L2-メモリ間、L1-L2間のデータ通信の最小化 最重要ホットスポット • 2体間相互作用計算 • FMMのM2L計算 2体間相互作用計算 • 3重ループ構造 do 5つのサブセルを指定するインデックス do 注目する1つのサブセル内の粒子 do 隣接する5つのサブセル内の原子 相互作用計算 enddo enddo enddo • これにより、5つのサブセルのデータが効率的に再利用される。 • ただし5つのサブセルの座標データをL1キャッシュに載せておくことが重要
CMSI計算科学技術特論A
Cell index Z
Cel
l in
dex
Y
Hess et al. (2008)
DHFR in water
23,558 原子系
rc = 9.6 Å GROMACS
9 Å Desmond
9 Å NAMD
FFT : 64× 64×64
t = 1 fs
PCクラスタを用いたベンチマーク
: : Desmond (2008)
24,000 原子系 100~500並列 1~2 ms/step (50~200 atoms / processors)
8コア(1ノード)の使用と比較して512コア(64ノード)で、すでに30%程度の並列化効率
CMSI計算科学技術特論A
ANTONのパフォーマンス (専用マシン)
DHFR 23,558 原子系 force error 1.5×10-4
Shaw et al. (2008)
512 ノード並列 14.5 s/day
1 ms / 70 days
24,000原子系
512並列
~6 s/step
400 MHz
CMSI計算科学技術特論A
Schulten et al. (2008)
NAMDのパフォーマンス on Blue Gene/L
IAPP 5,570 原子系
cutoff 12 Å t = 2 fs
ApoA1 92,224 原子系
cutoff 12 Å t = 1 fs
STMV 1,066,628 原子系
cutoff 12 Å t = 1 fs
1,000,000原子系
~20,000(40,000)並列
~15 ms/step
10 ms/step
(coprocessor mode)
(50 atoms / processors)
2 ms/step
対数プロット
CMSI計算科学技術特論A
開発者 安藤嘉倫, 吉井範行, 藤本和士, 水谷圭祐,小嶋秀和, 山田篤志, 岡崎 進(名古屋大学)
川口一朋, 長尾秀実 (金沢大学)
岩橋建輔, 水谷文保 (分子科学研究所)
南 一生 (理化学研究所)
中川敦史 (大阪大学)
市川真一, 小松秀美, 石附 茂, 武田康宏,
福島正雄 (富士通) 開発協力 [敬称略] 泰岡 顕治 (慶大), 成見 哲 (電通大) 篠田 渉 (産総研), 渡辺宙志(東大) 川井 敦(K&F Computing Research)
MODYLAS: MOlecular DYnamics simulation software for LArge System
MODYLAS
CMSI計算科学技術特論A
i s
s i
i s
s i
s
s i
Q q
q
q
s
i s s
r
r r局所展開
×
××
+
多極子展開
局所展開
・
・
・
MODYLAS
実質的に FFT free ! 並列化 ・完全領域分割 ・多階層隣接通信化
+ 周期境界条件下における 多極子に対するエワルド法
大きな通信はすべて隣接通信化
= 厳密計算 (精度は展開次数で制御)
長距離力の厳密計算
多極子展開
××
ii
××
ii
×
多極子展開
CMSI計算科学技術特論A
ウイルスカプシドの分子動力学計算
小中規模系の計算
・2~3万原子系
・Ewald法
領域分割
FFT
専用計算機
・ANTON
512並列
数s/step
・MDGRAPE
全原子計算
~1000万原子系
・周期境界条件下
・長距離相互作用
京スパコン
100ms/step
・大規模並列が不可欠
・通信もms
隣接通信化が不可欠
(FFTは不可) 1マイクロ秒:10年(解析不可能)
(実効性能 0.1ペタフロップス)
従来のスパコン
マイクロ秒程度の軌跡
27 nm
46 nm
1000万原子系の基本セル
CMSI計算科学技術特論A
ベンチマークテスト MODYLAS
100 1000 10000 1000000.1
1
10
100
1000
100001000 10000 100000 1000000
0.1
1
10
100
1000
10000
T /
ms
Ncore
Nnode
accele
ration
100 1000 10000 1000000.1
1
10
100
1000
100001000 10000 100000 1000000
T / m
s
Ncore
Nnode
The measured direct calculation time of the pairwise additive forces(circle), the FMM calculation(triangle), the intramolecular forces(diamond), and the communication time(brown) per one MD step(Dt) for the 10-million atomistic system, the PYP solution, as a function of degree of parallelism, Nnode.
The measured overall calculation time per one MD step(Dt) for the 10-million atomistic system, the PYP solution, and the acceleration ratio with respect to the 64-nodes calculation as a function of degree of parallelism, Nnode.
pairwise additive forces
FMM calculation intramolecular forces
communication time
PYP 水溶液、1000万原子系
CMSI計算科学技術特論A
レセプター
感染機構を解き明かす ウイルスとレセプターの特異な相互作用
10,000,000原子 カプシドとレセプターの結合 ・レセプターの構造変化?
「京」スパコンが不可欠
ウィルス全体1000万原子系の 分子動力学計算が必要
小児マヒウイルス
P=1 atm, T=310.15 K
小児麻痺 ウイルス
“Medical Virology”, edited by D. O. White and F. Fenner, Academic Press
CMSI計算科学技術特論A
計算内容
系の構成
・カプシドタンパク質 VP1, VP2, VP3, VP4 おのおの 60 個 PDB-ID: 1HXS [分解能 2.2 Å] ・ポケットファクター スフィンゴミエリン ・カウンターイオン Na+, K+, Cl- 系の総電荷 0, かつ PBS 緩衝液濃度を再現 ・水 カプシド殻内外 (バルク), および結晶水 総原子数 6,480,326 水素原子を含む全原子計算
分子動力学計算
・力場 CHARMM22・36 with CMAP TIP3P ・粒子間相互作用 Lennard-Jones: 12 Å カットオフ Coulomb: 高速多重極展開法 (FMM) ・アンサンブル NPT (P: 1気圧, T: 310.15 K) ・計算機 京コンピュータ
・ソフトウェア MODYLAS
・2012年9月―2013年4月で 200 ns の計算を終了
まとめ MD計算とは • MD計算の流れ • 取り扱う原子数と周期境界条件 • 相互作用(力) • 分子モデルと運動方程式 • MD計算の例 • MD計算の歴史 • MD計算の現状 非並列のMD計算 • 短距離相互作用(bookkeeping, cell index法) • 長距離相互作用(クーロン相互作用) Ewald, PME法 • 効率化のための方法 拘束動力学 On the flyによる最適化 Multiple time step (時間発展演算子法、シンプレクティック数値計算法) • 高速化のために、キャッシュの有効利用、キャッシュミス MD計算の並列化 • 高速多重極展開法(FMM) • データ構造 メタデータ法 • 通信量の最小化 • データ局在化による計算効率の向上 • ベンチマーク • MODYLAS
CMSI計算科学技術特論A
参考文献 MD全般 • D. Frenkel, B. Smit,“Understanding Molecular Simulation," Academic Press, San Diego(1996). • 上田 顕,「コンピュータシミュレーション」,朝倉書店(1990). • M. P. Allen, D. J. Tildesley,“ Computer Simulation of Liquids," Oxford Science, Oxford(1987). • J. P. Hansen, I. R. McDonald, “Theory of Simple Liquids," Academic Press, London(1986). • 岡崎 進, 吉井 範行, コンピュータ・シミュレーションの基礎(第2版), 化学同人(2011). 力学 • H. Goldstein,「ゴールドスタイン新版古典力学(上),(下)」(瀬川富士,矢野 忠,江沢康生 訳),
吉岡書店(1983). 数値積分 • G. J. Martyna, M. E. Tuckerman, D. J. Tobias, M. L. Klein, Mol. Phys., 87,1117(1996). Particle mesh Ewald法 • T. Darden, D. York, L. Pedersen, J. Chem. Phys., 98,10089(1993). FMM • L. Greengard, V. Rokhlin, J. Comput. Phys., 73,325(1987). SHAKE • G. Ciccotti, J. P. Ryckaert, Comp. Phys. Rep., 4,345(1986). • P. Gonnet, J. Comput. Phys. 220, 740(2007). MODYLAS • Y. Andoh, et al., J. Chem. Theory Comput. 9, 3201( 2013)
CMSI計算科学技術特論A