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.

CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2

2,303 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2

  1. 1. CMSI計算科学技術特論A 古典分子動力学計算法の高速化2 2013年7月11日 名古屋大学大学院工学研究科 附属計算科学連携教育研究センター 吉井範行
  2. 2. 講義内容 • 効率化のための方法 Multiple time step (時間発展演算子法、シンプレクティック数値計算法) • 高速化のために、キャッシュの有効利用、キャッシュミス MD計算の並列化 • 高速多重極展開法(FMM) • データ構造 メタデータ法 • 通信量の最小化 • データ局在化による計算効率の向上 • ベンチマーク • MODYLAS CMSI計算科学技術特論A
  3. 3. Multiple time step • 同じMD計算のなかで変化の速いものと遅いものがあ る場合には,速い変化のほうに対応した小さなΔtを選 択しなければならない. 例 United atomのブチルアルコールのフレキシブルモデル CH3-CH2-CH2-CH2-O-H t  2fs t  0.1fs • Hに対する運動方程式とほかの重い原子に対する運 動方程式を区別して,異なったΔtで解くことができれ ば非常に都合のよいことになる.この考え方に基づい た方法がMultiple time step法である. CMSI計算科学技術特論A
  4. 4. 時間発展演算子法 • 時間発展演算子法により、重い(遅い)運動と軽 い(速い)運動とを分離して数値積分する。 • 時間発展演算子法 リウビル演算子 L 時間発展演算子 異なる自由度など2つの部分に分離できると トロッター展開により 速度ベルレ法 eiLt = eiL p t /2 eiLr t eiL p t /2  O(t 3 ) 時間発展演算子法では、リウビル演算子、あるいはそのもととなる運動方程式や ハミルトニアンが与えられれば、機械的に数値計算法を作り出すことができる. CMSI計算科学技術特論A
  5. 5. 時間発展演算子法 • 時間発展演算子法により、重い(遅い)運動と 軽い(速い)運動とを分離して数値積分する。 リウビル演算子 L 時間発展演算子 eiLt  eiLheavy t /2 ei Lr Llight t eiLheavy t /2 e iLheavy t /2 e  iLlight t  t 2 i  Lr  t iLlight  t 2 n iLheavy t /2 e e e CMSI計算科学技術特論A
  6. 6. シンプレクティック数値計算法 • ハミルトニアンがある系について時間発展演算子法を用いると、MD計算 のハミルトニアンが長時間にわたって保存するという優れた性質が現れ る • 数値計算においてもハミルトニアン(影のハミルトニアン)が存在すること による • このようなハミルトン系に対する数値計算をシンプレクティック数値計算 法という ハミルトニアンのあるもの フレキシブルモデル分子の運動 剛体回転子の運動 能勢・ポアンカレの方法 アンダーソンの方法 パリネロ・ラーマンの方法 H  T V iLH    H ,  iLV   V ,  iLT   T ,  eiLH t = eiLT t eiLV t  O(t 2 ) eiLH t = eiLT t eiLV t H H t H H 2 q p  CMSI計算科学技術特論A
  7. 7. 高速化のために 遅い演算(除算と組み込み関数) • 除算は他の四則演算より遅い。 • 組み込み関数も時間のかかる演算である。 • ホットスポット内ではできるだけこれらの演算を減らすように工夫 する。 do i=1,n b(i)=a(i)/x enddo do i=1,n x(i)=a(i)/b(i)/c(i) 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) 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 通分の利用 CMSI計算科学技術特論A
  8. 8. 高速化のために 遅い演算(組み込み関数) 組み込み関数のfortranコード化 環境によって速くなる場合とそうでない 場合がある。両者の比較が必要。 • • • • 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 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
  9. 9. 高速化のために 分子シミュレーションへの適用 • Lennard-Jones相互作用 12 1 1 V      r r 6 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相互作用への適用 CMSI計算科学技術特論A
  10. 10. キャッシュの有効利用 ① ② ③ ④ ⑤ CPUの必要なデータに高速アクセス データはメモリに格納 必要に応じて隣接するデータと共にキャッシュ上に 演算で必要となるとレジスタにコピー 演算された結果は再びキャッシュに上書き キャッシュ上で用いられなくなるとメモリ上に上書きコピーされる. CMSI計算科学技術特論A
  11. 11. キャッシュミス • データ:レジスタ←キャッシュ←メモリ • レジスタ←キャッシュ:高速アクセス • キャッシュ←メモリ:←低速アクセス • 演算を行う時にデータがキャッシュ上にない ときはメモリまで取りに行く。キャッシュミス。 • データがキャッシュに乗っているように工夫す ることが重要。 CMSI計算科学技術特論A
  12. 12. キャッシュミスを防ぐ • 1次元配列の変数:引数の順にキャッシュに格納 • 1次元配列の変数へのアクセス→配列の引数に ついて連続的にアクセスするように心がける。 • 2次元以上の配列の変数:Fortranでは配列左側 の引数の順にキャッシュに格納。 (C言語は右側から) • 2次元以上の配列の変数へのアクセス→Fortran では配列の左側の引数について連続的にアクセ スするように心がける。 A(I,j) (C言語は右側) CMSI計算科学技術特論A
  13. 13. MD計算の並列化 • ループ分割:計算負荷の大きなdo ループを並列化 ⇒並列化が容易 ⇒全ノード間で通信(MPI) ⇒MPIの高並列になると効率が悪い • 領域分割:基本セルを複数の領域に分割 ⇒並列化が大変。 ⇒通信は隣接領域間のみ。 ⇒超並列でも効率がよい。 1 データ構造を大幅に変更 5 ほぼ最初から書き直し 9 2 3 4 6 7 8 10 11 12 13 14 15 16 CMSI計算科学技術特論A
  14. 14. 高速多重極展開法(FMM) • 多極子モーメントを用いた多重極展開 原点0の周りに電荷Qiが分布 QiとQとの相互作用を 多重極展開で表す。 余弦定理 1  ri 1 r 2  2r ri cos  i  ri2 テイラー展開  1 ri r r 1  2 cos  i   i   r  r   1 1 3 5  1  x  x 2  x3       2 8 16 1 x 2 x 1 1 1 ri ri2 ri3 2   2 cos  i  3  3cos  i  1   4  5cos3  i  3cos  i        ri r r 2r 2r CMSI計算科学技術特論A
  15. 15. 高速多重極展開法(FMM) • QiとQとの相互作用の多極子モーメントを用いた表式 V  1 4 0  i QQi ri  1 r  r 2 Q  Qi   2i cos  i  i3  3cos 2  i  1         4 0 i 2r r r    Qi  1 1 1 1 2  i  Q  3 r   Qi ri  5 r   Qi 3ri ri   ri  I  r       r  4 0 2 r r i i      1  Z r  μ r Q r  Q  3    5 r  4 0   r r 1  Z   Qi i μ  Qi ri i Legendre多項式を用いた表式 n 1 1  ri   P  cos  i    ri r  n  r  n n 1 Q  ri  V Q P  cos  i    4 0 r  i  n  r  i n Q i  Qi 2 3ri ri   ri  I 2  展開のしかた ・多極子モーメント ・Legendre多項式 ・球面調和関数 等々 CMSI計算科学技術特論A
  16. 16. 高速多重極展開法(FMM) • 空間分割 レベル 0 L 1 L/2 2 L/22 3 2次元:4分木構造 3次元:8分木構造 サブセル一辺の長さ L/23 最も細かく分割したレベルのサブセルについて領域分割 を適用 CMSI計算科学技術特論A
  17. 17. 高速多重極展開法(FMM) • ツリー法の相互作用計算の手順  l 1    kl  Qkl rkl  k L 2   n r 見込み角 小 → 計算精度 高 大 → 低 Z   Qi i μ V   Qi ri i Q i  Qi 2 3ri ri   ri  I 2  Z r  μ r Q r Q  3    5  4 0  r   r r 1 CMSI計算科学技術特論A
  18. 18. 高速多重極展開法(FMM) • 粒子と分割されたサブセルとの相互作用 周期境界条件あり 自セルAの粒子iのポテンシャル𝑉𝑖 Vi  Vi d  Vi m 距離に応じてレベルの異なる多極子モーメントを 利用する CMSI計算科学技術特論A
  19. 19. 高速多重極展開法(FMM) • サブセル分割の規則 手順① 基本セル、第一、第二隣接のイメージセルをレベル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とする。 CMSI計算科学技術特論A
  20. 20. 高速多重極展開法(FMM) • 多重極展開と局所展開 𝑉𝑖m 𝑉𝑖d 手順(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変換する。 CMSI計算科学技術特論A
  21. 21. 高速多重極展開法(FMM) 粒子と分割されたサブセルとの相互作用 周期境界条件あり 自セルAの粒子iのポテンシャル𝑉𝑖 Vi  Vi d  Vi m 距離に応じてレベルの異なる多極子モーメントを 利用する 𝑉𝑖d 直接計算部 (B) 𝑉𝑖m 多重極展開による部分 (C), (D), (E), (F)… CMSI計算科学技術特論A
  22. 22. 高速多重極展開法(FMM) 計算精度 • 静電+Lennard-Jones相互作用 原子数 10,125,000 個 体積 46.83 nm3 セル数 643 (=262,144) 個 (セルあたり39個) 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次 8次 4次 8次 6~7桁 8~9桁 4~5桁 6~7桁 • 計算精度を展開次数で制御 CMSI計算科学技術特論A
  23. 23. データ構造 メタデータ法 原子のデータ構造 • 原子座標、速度、力、セグメントデータ → メタデータ化 • プロセスに属するサブセルを割り当てて固定 (図では4×4のサブセルを1つのプロセスに割り当て) • サブセル内の原子のデータをプロセスに局在化させる。グローバルに持たない→省メモリ。 • データ領域に空きを用意 → サブセル内の原子数の増減に対応。各サブセル内の原子数に合わせて要 素数が変化。要素数情報もあわせて保持。 • メタデータ配列のまま演算も通信も行う。サブセルを表す3次元配列を持っているので、取り扱いが容易 • バッファリングやindirect accessがない。 • サブセル単位のメタデータがキャッシュに載るようにサブセル内の原子数を調整。 • 原子の運動に伴って原子の帰属するサブセルを更新 。 Cell index Y ・セグメントデータ 一塊の原子団のデータ CH3、H2Oなど。 原子間距離拘束の情報 Cell index Z CMSI計算科学技術特論A
  24. 24. データ構造 メタデータ法 Cell index Y 多重極子のデータ構造 • 多重極子モーメント、局所展開係数をメタデータ化 • 多重極子はサブセルに固定 → データ領域の空きは不要 • メタデータのまま演算も通信も行う。 • FMMの階層に応じて配列数が異なる。 • 下位階層(小さなサブセル)ではプロセスごとにサブセルが異なり多重極子が違う。 • 上位階層ではサブセルのサイズが大きくなり、複数のプロセスで同じ多重極子の 情報を持つ。プロセス間で多重極子データのコピー x x x x x x x x x x x x x x x x Cell index Z CMSI計算科学技術特論A
  25. 25. 通信量の最小化 Rank 2 Rank 3 Step-1 Step-1 Step-2 Step-2 Cell index Y 自セルと相互作用する原子情報 を集める。 • 通信回数と通信量の最小化 • 隣接セルと通信して1次元(z 軸)方向にデータを結合し棒 状のデータを作る。 • 棒状データをy軸方向に通信 し結合させて、平面状データ にする。 • x軸方向に平面状データを通 信し結合させて、立方体状の データにする。 • K-スパコンの多重同時通信 (各軸ごとに+、-方向) 原子情報 Step-2 Step-2 Cell index Z Rank 1 Rank 0 Step-1 Step-1 CMSI計算科学技術特論A
  26. 26. 通信量の最小化 多重極子情報 自セルと相互作用する多重極子モーメント情報を集める • 下位階層(小さなサブセル)の時には、原子情報の場合と同様の 方法で通信する • サブセルの情報が複数のプロセスで共有される上位階層(大きな サブセル)の時には、サブセル内の全てのプロセスが同じ情報を 持っている。 • 特定のプロセスで計算をさせて、その結果を他のプロセスに配る より、すべてのプロセスで同じ計算をさせた方が速い。 • 全てのプロセスが通信により隣接サブセルの情報を取得する。 • サブセル内の相対位置が同じプロセス間で同時通信を行う。 CMSI計算科学技術特論A
  27. 27. データ局在化による計算効率の向上 キャッシュの利用効率の向上 • L1キャッシュ-L2キャッシュ-メモリ • L2-メモリ間、L1-L2間のデータ通信の最小化 最重要ホットスポット • 2体間相互作用計算 • FMMのM2L計算 Cell index Y 2体間相互作用計算 • 3重ループ構造 do 5つのサブセルを指定するインデックス Cell index Z do 注目する1つのサブセル内の粒子 do 隣接する5つのサブセル内の原子 相互作用計算 enddo enddo enddo • これにより、5つのサブセルのデータが効率的に再利用される。 • ただし5つのサブセルの座標データをL1キャッシュに載せておくことが重要 CMSI計算科学技術特論A
  28. 28. PCクラスタを用いたベンチマーク DHFR in water 23,558 原子系 rc = 9.6 Å 9Å 9Å GROMACS Desmond NAMD FFT : 64× 64×64 Hess et al. (2008) : : Desmond (2008) t = 1 fs 8コア(1ノード)の使用と比較して512コア(64ノード)で、すでに30%程度の並列化効率 24,000 原子系 100~500並列 1~2 ms/step (50~200 atoms / processors) CMSI計算科学技術特論A
  29. 29. ANTONのパフォーマンス DHFR 23,558 原子系 (専用マシン) force error 1.5×10-4 512 ノード並列 14.5 s/day 400 MHz 1 ms / 70 days 24,000原子系 512並列 ~6 s/step Shaw et al. (2008) CMSI計算科学技術特論A
  30. 30. NAMDのパフォーマンス on Blue Gene/L IAPP 5,570 原子系 cutoff 12 Å t = 2 fs 2 ms/step 10 ms/step ApoA1 92,224 原子系 cutoff 12 Å t = 1 fs 対数プロット (coprocessor mode) STMV 1,066,628 原子系 cutoff 12 Å t = 1 fs 1,000,000原子系 ~20,000(40,000)並列 Schulten et al. (2008) ~15 ms/step (50 atoms / processors) CMSI計算科学技術特論A
  31. 31. MODYLAS MODYLAS: MOlecular DYnamics simulation software for LArge System 開発者 安藤嘉倫, 吉井範行, 藤本和士, 水谷圭祐,小嶋秀和, 山田 篤志, 岡崎 進(名古屋大学) 川口一朋, 長尾秀実 (金沢大学) 岩橋建輔, 水谷文保 (分子科学研究所) 南 一生 (理化学研究所) 中川敦史 (大阪大学) 市川真一, 小松秀美, 石附 茂, 武田康宏, 福島正雄 (富士通) 開発協力 [敬称略] 泰岡 顕治 (慶大), 成見 哲 (電通大) 篠田 渉 (産総研), 渡辺宙志(東大) 川井 敦(K&F Computing Research) CMSI計算科学技術特論A
  32. 32. MODYLAS 長距離力の厳密計算 並列化 ・完全領域分割 ・多階層隣接通信化 多極子展開 多極子展開 i i × × 実質的に FFT free ! 大きな通信はすべて隣接通信化 Qi   qs si i   qs rs si 多極子展開 +  i   qs rs rs + si ・ ・ ・ 周期境界条件下における 多極子に対するエワルド法 × × 局所展開 局所展開 × = 厳密計算 (精度は展開次数で制御) CMSI計算科学技術特論A
  33. 33. ウイルスカプシドの分子動力学計算 全原子計算 1000万原子系の基本セル 46 マイクロ秒程度の軌跡 nm ~1000万原子系 ・周期境界条件下 ・長距離相互作用 小中規模系の計算 27 nm 京スパコン ・2~3万原子系 ・Ewald法 領域分割 FFT 専用計算機 100ms/step ・大規模並列が不可欠 ・通信もms ・ANTON 512並列 数s/step ・MDGRAPE 従来のスパコン 隣接通信化が不可欠 (FFTは不可) 1マイクロ秒:10年(解析不可能) (実効性能 0.1ペタフロップス) CMSI計算科学技術特論A
  34. 34. ベンチマークテスト MODYLAS PYP 水溶液、1000万原子系 Ncore 1000 10000 100000 1000 100 100 10 10 1 T / ms 10000 1 1000 10000 100000 1000000 pairwise additive forces 1000 T / ms 1000 1000000 10000 acceleration 10000 Ncore FMM calculation intramolecular forces 100 10 1 communication time 0.1 100 1000 Nnode 10000 0.1 100000 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. 0.1 100 1000 10000 100000 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. CMSI計算科学技術特論A
  35. 35. 感染機構を解き明かす ウイルスとレセプターの特異な相互作用 「京」スパコンが不可欠 ウィルス全体1000万原子系の 分子動力学計算が必要 小児麻痺 ウイルス “Medical Virology”, edited by D. O. White and F. Fenner, Academic Press 10,000,000原子 小児マヒウイルス P=1 atm, T=310.15 K レセプター カプシドとレセプターの結合 ・レセプターの構造変化? CMSI計算科学技術特論A
  36. 36. 計算内容 系の構成 分子動力学計算 ・カプシドタンパク質 VP1, VP2, VP3, VP4 おのおの 60 個 PDB-ID: 1HXS [分解能 2.2 Å] ・力場 CHARMM22・36 with CMAP TIP3P ・ポケットファクター スフィンゴミエリン ・粒子間相互作用 Lennard-Jones: 12 Å カットオフ Coulomb: 高速多重極展開法 (FMM) ・カウンターイオン Na+, K+, Cl系の総電荷 0, かつ PBS 緩衝液濃度を再現 ・水 カプシド殻内外 (バルク), および結晶水 総原子数 6,480,326 水素原子を含む全原子計算 ・アンサンブル NPT (P: 1気圧, T: 310.15 K) ・計算機 京コンピュータ ・ソフトウェア MODYLAS ・2012年9月―2013年4月で 200 ns の計算を終了
  37. 37. まとめ MD計算とは • MD計算の流れ • 取り扱う原子数と周期境界条件 • 相互作用(力) • 分子モデルと運動方程式 • MD計算の例 • MD計算の歴史 • MD計算の現状 非並列のMD計算 • 短距離相互作用(bookkeeping, cell index法) • 長距離相互作用(クーロン相互作用) Ewald, PME法 • 効率化のための方法 拘束動力学 On the flyによる最適化 Multiple time step (時間発展演算子法、シンプレクティック数値計算法) • 高速化のために、キャッシュの有効利用、キャッシュミス MD計算の並列化 • 高速多重極展開法(FMM) • データ構造 メタデータ法 • 通信量の最小化 • データ局在化による計算効率の向上 • ベンチマーク • MODYLAS CMSI計算科学技術特論A
  38. 38. 参考文献 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

×