LAMMPS is a Molecular Dynamics simulator built and maintained at Sandia National Labs. It has many versions and recently underwent a rewrite in C++. We only support the later versions of this code.
LAMMPS (as it is installed at CSE) requires the following libraries and software:
We try to support a recent version. Here are the versions that we currently have installed and tested:
To load LAMMPS you must first load all the prerequisite modules, then load the LAMMPS module. To do this in one command type:
module load compilers/pathscale-3.2 mpi/openmpi-1.2.6-pathscale-3.2 math/fftw-2.1.5 md/lammps-current
You should put this command in your submit script. Here is an example:
#!/bin/bash # #$ -cwd #$ -j y #$ -S /bin/bash module load compilers/pathscale-3.2 mpi/openmpi-1.2.6-pathscale-3.2 math/fftw-2.1.5 md/lammps-current INPUT=~/src/lammps/input OUTPUT=~/src/lammps/output # need other data files cd $INPUT mpirun lmp_cse -log $OUTPUT/lj-2.log -in in.lj
Then change to your data directory and run the following command where N is the number of CPUs you want to use.
$ qsub -pe mpi N submit.sh
LAMMPS is designed to work with FFTW 2.1.5 (not version 3). It has been built against the double-precision fftw 2.1.5 library (with pthreads and mpi enabled - but that doesn't seem to make a difference). The following packages have been enabled:
$ make package-status Installed YES: package ASPHERE Installed YES: package CLASS2 Installed YES: package COLLOID Installed YES: package DIPOLE Installed YES: package DPD Installed YES: package GRANULAR Installed YES: package KSPACE Installed YES: package MANYBODY Installed NO: package MEAM Installed YES: package MOLECULE Installed YES: package OPT Installed YES: package PERI Installed NO: package POEMS Installed YES: package XTC Installed NO: package USER-ACKLAND Installed NO: package USER-CG-CMM Installed NO: package USER-EWALDN Installed NO: package USER-SMD
There is a makefile with the following configuration called src/MAKE/Makefile.cse
:
$ export F77=pathf90 $ export CC=pathcc $ head MAKE/Makefile.cse CC = mpic++ CCFLAGS = -O3 -OPT:Ofast -DFFT_FFTW -DLAMMPS_GZIP \ -fstrict-aliasing -Wall -W -Wno-uninitialized \ -I/share/apps/fftw-2.1.5/include NOALIAS = -fno-strict-aliasing DEPFLAGS = -M LINK = mpic++ LINKFLAGS = -L/share/apps/fftw-2.1.5/lib USRLIB = -ldfftw -ldfftw_threads -ldfftw_mpi SYSLIB = ARCHIVE = ar ARFLAGS = -rc SIZE = size
We ran a few benchmarks that are included with LAMMPS. You can compare these numbers to other hardware benchmarks for LAMMPS.
We used this input file.
Atomic fluid:
<format gnuplot> set title “LAMMPS LJ Fixed Benchmark” set style line set log x set xtic (1,2,4,8,16) set yrange [0:110] set ytic (0,10,20,30,40,50,60,70,80,90,100,110) set xlabel “CPUs” set ylabel “Parallel Efficiency (%)” set grid plot '-' using 1:2 lw 2 with lp title “tribe (% of 5.895s)”, \
'-' using 1:2 lw 2 with lp title "urdarbrunnr (% of 5.964s)"
1 100 2 91.13 4 90.80 8 67.11 16 47.83 e 1 100 2 97.16 4 92.94 8 91.97 16 86.73 32 83.11 e </format>
We used this input file.
Bead-spring polymer melt with 100-mer chains and FENE bonds:
<format gnuplot> set title “LAMMPS Chain Fixed Benchmark” set style line set log x set yrange [0:120] set xtic (1,2,4,8,16) set ytic (0,10,20,30,40,50,60,70,80,90,100,110,120) set xlabel “CPUs” set ylabel “Parallel Efficiency (%)” set grid plot '-' using 1:2 lw 2 with lp title “tribe (% of 3.367s)”, \
'-' using 1:2 lw 2 with lp title "urdarbrunnr (% of 2.758s)"
1 100 2 89.30 4 112.30 8 71.89 16 45.56 e 1 100 2 99.65 4 98.23 8 104.37 16 92.92 32 90.91 e </format>
The LAMMPS user manual is available on Sandia's website.