LAMMPS

機能概要

LAMMPS は古典的な分子動力学コードであり、Large-scale Atomic/Molecular Massively Parallel Simulator の頭文字からなる名称です。
LAMMPS は金属や半導体といった固体材料、生体分子やポリマーなどのソフトな物質、あるいは粗視化またはメゾスコピックなシステムを 対象とした計算を行うことができます。

利用方法

利用範囲

特になし

利用キュー

すべて

実行方法

LAMMPS では、CPU版およびGPU版が利用できます。 どちらのバージョンでも、MPI での並列化が利用できます。
モジュール名は以下の通りです。

バージョンリリース日CPU版GPU版
29 Oct 202020/10/29lammps/2010
3 Mar 202020/3/3lammps/2003lammps/2003gpu
7 Aug 192019/8/7lammps/1908lammps/1908gpu

コマンド名は次の通りです。

CPU版(APCキュー)GPU版(APGキュー)
lmp_intel_cpulmp_intel_gpu

なお、バージョン 29 Oct 20 については、GPU版として lmp_intel_gpu_single, lmp_intel_gpu_double も用意されています。 GPUでの計算を単精度で行う場合にはlmp_intel_gpu_single, 倍精度で行う場合には lmp_intel_gpu_double をご利用ください。

バッチスクリプトでの実行例

CPU版

以下にバッチスクリプトのサンプルを示します。 また、実行CPU数の指定は赤字部分になります。すべて同じ数字としてください。

#!/bin/csh
#PBS -q APC
#PBS -N title
#PBS -l select=1:ncpus=10:mpiprocs=10

source /etc/profile.d/modules.csh
module load lammps/2010
setenv OMP_NUM_THREADS 1

cd $PBS_O_WORKDIR

mpirun -np 10 lmp_intel_cpu < input_file

この例では、実行プロセス数は 10 と指定しています。

GPU版(1枚のGPUを使って計算を行う場合)

以下にバッチスクリプトのサンプルを示します。 1ノードには1枚のGPUボードが搭載されています。また、ngpus は 1 としてください。

#!/bin/csh
#PBS -q APG
#PBS -N title
#PBS -l select=1:ncpus=2:mpiprocs=2:ngpus=1

source /etc/profile.d/modules.csh
module load lammps/2010
setenv OMP_NUM_THREADS 1

cd $PBS_O_WORKDIR

mpirun -np 2 lmp_intel_gpu -sf gpu -pk gpu 1 < input_file

1ノードには1枚のGPUボードが搭載されていますので、-pk gpu 1 となります。
この例では、実行プロセス数は 2 と指定しています。

GPU版(2枚のGPUを使って計算を行う場合)

先ほどの例は、GPUを1枚使う場合でしたが、2ノードを使うことで、2枚のGPUボードを使って計算を行うことが可能です。 以下にバッチスクリプトのサンプルを示します。なお、この場合も ngpus は 1 としてください。

#!/bin/csh
#PBS -q APG
#PBS -N title
#PBS -l select=2:ncpus=2:mpiprocs=2:ngpus=1

source /etc/profile.d/modules.csh
module load lammps/2010
setenv OMP_NUM_THREADS 1

cd $PBS_O_WORKDIR

mpirun -np 4 lmp_intel_gpu -sf gpu -pk gpu 1 < input_file

この場合でも -pk gpu 1 となります。
この例では、各ノードでの実行プロセス数は 2 となります。また、2ノードを使用することで、トータルのプロセス数は 2 * 2 = 4 となります。 したがって、mpirun -np 4 という指定となっています。

マニュアル

関連サイト

LAMMPS(公式ホームページ)