LAMMPS公式が公開しているベンチマークのファイルを動かしてみましょう。
データの入手と概要
ベンチマークのファイルはこちらからダウンロードできます。
この中からCPU benchmarksのLennard Jonesを動かしてみます。
Input script の文字列を右クリックしてダウンロードします。
適当なフォルダに置きました。
このファイルはテキストファイルなので、メモ帳などのテキストエディタで開くことができます。
この計算は32,000個の粒子の運動を100step計算するという内容です。
この32,000個という数値は、latticeに含まれる4個の粒子が積み重ね数 20×20×20倍(variableの部分)、という形で入力ファイル内で指定されています。
粒子の数を変えたければvariableの部分を書き換えればいいです。
計算を実行
それでは計算してみましょう。
LAMMPSとMSMPIのインストールが済んでいる前提で進みます。
まだの方はこちらの記事を見て進めてください。
LAMMPSはコマンドプロンプト上で実行します。
in.lj.txtが置いてあるフォルダのアドレスバーにcmdを入力してEnterします。
そうすると、このフォルダをカレントディレクトリとしてコマンドプロンプトが起動します。
この方法はおすすめです。cdコマンドで移動しなくていいので楽です。
では実行してみましょう。以下のコマンドを実行します。
lmp -in in.lj.txt
1秒くらいで終わってしまいましたね。
3万2千個の粒子の運動を100ステップ分計算してこの速度です。速いですね。
ちなみに並列計算を行う場合はmpiexecを使用します。
mpiexec -n 4 lmp -in in.lj.txt
こうするともっと速くなると思います。
結果の確認
結果は同じフォルダにlog.lammpsというファイルで作成されていますが、中身は標準出力(上記のコマンドプロンプトの画像の通り)です。
計算速度に関する部分を解説すると、
Loop time of 1.19772 on 1 procs for 100 steps with 32000 atoms
32000原子の100ステップの計算を、1プロセスで1.19772秒で実行しました。
Performance: 36068.590 tau/day, 83.492 timesteps/s, 2.672 Matom-step/s
今回の計算速度は、
36068.590 tau/day
現実時間の1日の間にシミュレーション内の時間で36068.590 tau進む速度
83.492 timesteps/s
現実時間の1秒間に83.492timestep進む速度
2.672 Matom-step/s
現実時間の1秒間で267万原子ステップ(32,000原子×83.492 timestep)の計算量が実行できる
というような意味です。
単位系がlj単位系なので時間単位は tau です。ナノ秒とかフェムト秒ではありません。
単位系がreal単位系などであれば ns/day といった単位になります。
このサンプルを100ns計算したいんだけど何日かかるんだろうといったときは、100stepくらい計算して計算速度の ns/day を読み取れば何日かかるか概算できます。
ちなみに4並列で実行したところ、329.869 timesteps/s になり、3.95倍速くなりました。
また、こちらの記事では今回の計算とGPUでの計算結果と比較しています。
まとめ
WindowsのLAMMPSでLAMMPSのベンチマークを動かす方法と、計算速度の意味を解説しました。
コメント