LAMMPS入門2
高度情報科学技術研究機構(
RIST)
Outline
• Introduction
− 古典MDの代表的なアプリ(オープンソース)
− LAMMPS, OCTA, MODYLAS, その他
•
LAMMPSについて
− LAMMPSを使い始めるには
− LAMMPSのGUIアプリ
− LAMMPSの実行
•
LAMMPSのexamples
•
opt パッケージの利用
− LAMMPSの可視化
• MateriApps Live!のご紹介
2Introduction
•
LAMMPS
http://lammps.sandia.gov/
•
OCTA
http://www.octa.jp/index_jp.html
•
MODYLAS
http://www.modylas.org/
• その他
–
Gromacs、NAMD、DL-POLY : 海外のアプリ
–
GENESIS : 国産のアプリ
4古典
MDの代表的なアプリ(オープンソース)
材料系分子シミュレーションの現象スケール
量子化学
分子軌道法、密度汎関数法
NTChem, ABINIT-MP, PHASE, xTAPP, etc.
分子動力学
LAMMPS
MODYLAS
粗視化分子動力学
OCTA
nm
μm
mm
ps
ns
fs
μs
時間スケール
(sec)
空間スケール
(m)
(注)厳密なものではない
あくまで目安
LAMMPS
• 様々な計算スケールの手法が入っている
(粒子系で高速多重極展開
FMM法以外は大抵入っている)
• 金属系の経験ポテンシャル類にも強い
ms
5LAMMPSについて
LAMMPSを使い始めるには
• 個人の
PCで試す(Windows, Mac, Linux)
– 個人で設定、インストールの必要がある
–
GUI支援ツール(Windows)を用いる
–
MateriApps Live!
http://cmsi.github.io/MateriAppsLive/
のようなツールを用いるとインストールなしで試せる(後述)
• 「京」および
HPCIでの利用
大規模計算
– 課題申請、成果報告の必要がある
– インストールの必要がある
– 機関によってはプリインストールされている
名古屋大学 情報基盤センター、大阪大学 サイバーメディアセンター
どのプラットフォームでも
LAMMPSのコンパイルには比較的時間がかからない
インストール方法などの詳細は、
HPCIポータルサイトの
http://www.hpci-office.jp/materials/LAMMPS_introduction_160219_yoshizawa.pdf
7LAMMPSのGUIアプリ(1)
•
J-OCTA
https://cae.jsol.co.jp/product/material/jocta/
– 2005年 JSOL(日本総研)が開発 OCTAの商用版
※ Student Edition(機能制限付きの無償版)がある
– LAMMPSをマルチスケールシミュレーション統合環境に拡張でき、
多機能なプリポストが利用可能
COGNACのデータに基づいて、LAMMPSデータと相互に変換
LAMMPSの入力ファイルが自動生成され、手動修正も可能
結果ファイルは自動的にCOGNACデータに変換される
8LAMMPSのGUIアプリ(2)
•
Winmostar
https://winmostar.com/
– 株式会社クロスアビリティが開発・販売
– 企業ユースで
15万円より(トライアル版あり)
– サポート
&講習会(東京、関西で毎週開催)
– 平均
20ダウンロード/日
– 国内外にシングルライセンス
460ユーザ、機関ライセンス36契約
(2016年9月13日時点)
LAMMPSのGUIアプリ(3)
• その他のツール
Pre/Post Processing Tools for use with LAMMPS(紹介サイト)
http://lammps.sandia.gov/prepost.html
• 可視化ツール(後述)
–
VMD
http://www.ks.uiuc.edu/Research/vmd
–
OVITO
http://www.ovito.org
10OVITO
LAMMPSの実行
•
LAMMPSパッケージにある
lammps-30Jul16/examples/melt の実行
入力ファイル
in.melt:
4,000原子、NVEアンサンブル、250ステップ
• 計算規模を変えて実行
– 原子数:
4,000、 256,000、 204,8000
LAMMPSのexamples
12
http://lammps.sandia.gov/doc/Section_example.html
7. Example problems
accelerate run with various acceleration options (OpenMP, GPU, Phi)
balance
dynamic load balancing, 2d system
body
body particles, 2d system
colloid
big colloid particles in a small particle solvent, 2d system
comb
models using the COMB potential
coreshell core/shell model using CORESHELL package
crack
crack propagation in a 2d solid
deposit
deposit atoms and molecules on a surface
dipole
point dipolar particles, 2d system
dreiding
methanol via Dreiding FF
eim
NaCl using the EIM potential
ellipse
ellipsoidal particles in spherical solvent, 2d system
・
・
LAMMPS の examples/melt(1)
13melt: FCC格子状に並んだLJ粒子が溶けて拡散
# 3d Lennard-Jones melt units lj atom_style atomic lattice fcc 0.8442region box block 0 10 0 10 0 10 create_box 1 box
create_atoms 1 box mass 1 1.0
velocity all create 3.0 87287 pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5 neighbor 0.3 bin
neigh_modify every 20 delay 0 check no fix 1 all nve
入力ファイル:
in.melt
力場パラメータの設定 速度の設定 Lennard-Jones(LJ) 古典粒子 格子定数: FCC 0.8442 シミュレーションボックスの指定 NVEアンサンブル14
#dump id all atom 50 dump.melt
#dump 2 all image 25 image.*.jpg type type & # axes yes 0.8 0.02 view 60 -30
#dump_modify 2 pad 3
#dump 3 all movie 25 movie.mpg type type & # axes yes 0.8 0.02 view 60 -30
#dump_modify 3 pad 3 thermo 50 run 250
入力ファイル:
in.melt (続き)
# は、コメントアウト dump:出力形式の指定 計算実行(step)数LAMMPS の examples/melt(2)
LAMMPS の examples/melt(3)
入力ファイル(
in.melt)における原子数の設定
• 原子数
:
4,000
region box block 0 10 0 10 0 10
• 原子数
:
256,000
region box block 0 40 0 40 0 40
• 原子数
:
204,8000
LAMMPS の examples/melt:実行結果(1)
16
Step Temp E_pair E_mol TotEng Press
0 3 -6.7733681 0 -2.2744931 -3.7033504 50 1.6758903 -4.7955425 0 -2.2823355 5.670064 100 1.6458363 -4.7492704 0 -2.2811332 5.8691042 150 1.6324555 -4.7286791 0 -2.280608 5.9589514 200 1.6630725 -4.7750988 0 -2.2811136 5.7364886 250 1.6275257 -4.7224992 0 -2.281821 5.9567365
LAMMPSの入力ファイルにおいて
thermo_style custom step temp epair emol etotal press
出力する値の設定
LAMMPS の examples/melt:実行結果(2)
17
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total --- Pair | 0.51688 | 0.51688 | 0.51688 | 0.0 | 84.69 Neigh | 0.067366 | 0.067366 | 0.067366 | 0.0 | 11.04 Comm | 0.011268 | 0.011268 | 0.011268 | 0.0 | 1.85 Output | 8.7261e-05 | 8.7261e-05 | 8.7261e-05 | 0.0 | 0.01 Modify | 0.011968 | 0.011968 | 0.011968 | 0.0 | 1.96 Other | | 0.002732 | | | 0.45 Nlocal: 4000 ave 4000 max 4000 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 5499 ave 5499 max 5499 min Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 151513 ave 151513 max 151513 min Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 151513 Ave neighs/atom = 37.8783 Neighbor list builds = 12 Dangerous builds not checked Total wall time: 0:00:00
LAMMPS内のタイマーによって実行時間がわかる
LAMMPS の examples/melt:実行結果(3)
18 実行時間(時:分:秒) FX10 プロセス数 1 4 16 256 576 4,000原子1,000ステップ 0:00:02 0:00:01 0:00:01 0:00:05 4,000原子10,000ステップ 0:00:29 0:00:11 0:00:12 0:00:03 256,000原子1,000ステップ 0:03:06 0:01:13 0:01:11 0:00:04 0:00:02 256,000原子10,000ステップ 0:31:15 0:12:48 0:11:47 0:00:44 0:00:21 2,048,000原子1,000ステップ 0:27:04 0:10:06 0:08:56 0:00:36 0:00:15 2,048,000原子10,000ステップ 1:46:38 1:28:35 0:05:55 0:02:30• 計算規模が大きくなる
HPCの利用へ
•
プロセス数当たりの粒子数減少に伴う実行時間の減少
計算規模(原子数など)に合わせた、計算機の選択が必要
※すべてフラットMPIによる実行 iMac:2.8 GHz Intel Core i7プロセス数の見積もり
FX10
examples/melt
フラット
MPI(原子数:4,000、256,000、2,048,000)
4,000原子:〜16プロセス
256,000原子:〜600プロセス
2,048,000原子:600プロセス以上
性能測定は
RISTの高度化支援へ
LAMMPSの「京」での性能
図:未架橋フェノールの並列化効率計算結果LAMMPSによる架橋フェノール樹脂の計算
フラット
MPI(原子数:26,000、208,000、1,664,000、13,312,000)
温度
300K、1 atm の条件でNPTアンサンブルを用いた 10,000 stepの計算
(1ステップあたりの時間刻みは 1 fs)
※
原子数 13,312,000 は、1,000ノード(8,000 コア)を使用
20LAMMPSの高速化関連パッケージ
5.3. Packages with optimized styles
http://lammps.sandia.gov/doc/Section_example.html
GPU Package
NVIDIA GPU(OpenCLサポートと同様)
USER-INTEL Package
Intel CPU と Intel Xeon Phi
KOKKOS Package
Nvidia GPU, Intel Xeon Phi, OpenMPスレッド並列
USER-OMP Package
OpenMPスレッド並列 と 一般的なCPU最適化
OPT Package
一般的なCPU最適化
(-sf opt)
FX10
256,000 atoms with -sf opt
2,048,000 atoms with -sf opt
OPT Packageを使うことによ
り、実行時間が短縮される。
22
入力ファイル(
in.melt)において
# 3d Lennard-Jones melt units lj atom_style atomic lattice fcc 0.8442region box block 0 10 0 10 0 10 create_box 1 box
create_atoms 1 box mass 1 1.0
velocity all create 3.0 87287 pair_style lj/cut 2.5
pair_coeff 1 1 1.0 1.0 2.5 neighbor 0.3 bin
neigh_modify every 20 delay 0 check no fix 1 all nve
dump id all atom 50 dump.melt #dump 2 all image 25 image.*.jpg type type &
# axes yes 0.8 0.02 view 60 -30 #dump_modify 2 pad 3
#dump 3 all movie 25 movie.mpg type type &
# axes yes 0.8 0.02 view 60 -30 #dump_modify 3 pad 3 thermo 50 run 250
LAMMPSの可視化:VMDで可視化する
# を取る
この入力ファイルを実行すると、
dump.melt というファイルを出力する。
VMDで可視化する(2)
•
VMDの起動
•
dump.melt を開く
①
VMDで可視化する(3)
• ファイルタイプの選択
「LAMMPS Trajectory」
24
①
②
VMDで可視化する(4)
VMDで可視化する(5)
• 表示形式の調整
26①
②
④
③
0.2くらいに調整
VMDで可視化する(6)
VMDで可視化する(7)
•
MDスタート
28