LAMMPS 16Mar18 (stable release) for LX with GPU support
Webpage
Version
16Mar18
Build Environment
- Intel Compiler 2015.1.133
- Intel MPI 5.0.2
- Intel MKL 11.2.1
- CUDA 8.0.61
- libjpeg-turbo 1.2.90
Files Required
- lammps-stable.tar.gz (16Mar18)
- (some packages are downloaded during the installation; see the following script)
Build Procedure
#!/bin/sh
VERSION=16Mar18
INSTALL_PREFIX=/local/apl/lx/lammps16Mar18-CUDA8
BASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/lammps-stable.tar.gz
WORKDIR=/work/users/${USER}
PARALLEL=12
#-- libs
VMD_PLUGIN_INC=`echo /local/apl/lx/vmd193/lib/plugins/include | sed -e 's/\//\\\\\//g'` # molfile
VORO_VER=0.4.6 # voronoi
VORO=http://math.lbl.gov/voro++/download/dir/voro++-${VORO_VER}.tar.gz
#------------------------------------------------------------------
umask 0022
. /local/apl/lx/intel2015update1/bin/compilervars.sh intel64
cd ${WORKDIR}
if [ -d lammps-${VERSION} ]; then
mv lammps-${VERSION} lammps_erase
rm -rf lammps_erase &
fi
tar zxf ${LAMMPS_TARBALL}
cd lammps-${VERSION}
# setup makefiles, libraries, and external resources
## main
sed -e "/intel_cpu_intelmpi/s/.*/# rccs = USER-INTEL package, Intel MPI, MKL FFT/" src/MAKE/OPTIONS/Makefile.intel_cpu > src/MAKE/MINE/Makefile.rccs
## atc
( cd lib/atc && \
sed -e s/icc/mpiicc/ -e s/lammps.installed/lammps.empty/ Makefile.icc > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## awpmd
( cd lib/awpmd && \
sed -e s/linalg/empty/ -e s/mpicxx/mpiicc/ Makefile.mpi > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## colvars
( cd lib/colvars && \
sed -e s/mpicxx/mpiicc/ -e s/-funroll-loops/-unroll/ Makefile.mpi > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## gpu
( cd lib/gpu && \
sed -e "/^CUDA_ARCH/s/arch=sm.*/arch=sm_60/" \
-e "/^CUDA_LIB/s/$/ -L\$(CUDA_HOME)\/lib64\/stubs/" \
-e "s/mpicxx/mpiicpc/" \
Makefile.linux > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
sed -i -e "/^gpu_SYSPATH/s/$/ -L\$(CUDA_HOME)\/lib64\/stubs/" \
Makefile.lammps &&
cd ../../ )
## h5md
( cd lib/h5md && \
make -f Makefile.mpi -j ${PARALLEL} && \
cd ../../ )
## meam
( cd lib/meam && \
sed -e s/mpifort/mpiifort/ -e s/mpicc/mpiicc/ -e s/mpicxx/mpiicpc/ Makefile.mpi > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
### molfile
( cd lib/molfile && \
sed -i -e "s/molfile_SYSINC.*/molfile_SYSINC =-I$VMD_PLUGIN_INC/" Makefile.lammps && \
cd ../../ )
## poems
( cd lib/poems && \
make -f Makefile.icc -j ${PARALLEL} && \
cd ../../ )
## reax
( cd lib/reax && \
make -f Makefile.ifort -j ${PARALLEL} && \
cd ../../ )
## voronoi
( cd lib/voronoi && \
wget ${VORO} && \
tar zxf voro++-${VORO_VER}.tar.gz && \
cd voro++-${VORO_VER} && \
sed -i -e "s/^CXX=.*/CXX=icpc/" -e "s/^CFLAGS=.*/CFLAGS=-Wall -O3 -fPIC/" config.mk && \
make -j ${PARALLEL} && \
cd ../ && \
ln -s voro++-${VORO_VER}/src includelink && \
ln -s voro++-${VORO_VER}/src liblink && \
cd ../../ )
#----
# now make lammps
cd src
make yes-all no-ext
make no-KOKKOS \
yes-GPU \
no-LATTE \
yes-VORONOI \
yes-USER-H5MD \
yes-USER-MOLFILE \
yes-USER-NETCDF
make -j ${PARALLEL} rccs
make -j ${PARALLEL} rccs mode=shlib
cd ../
# mkdir and install files
mkdir -p ${INSTALL_PREFIX}/src
cp src/lmp_rccs src/liblammps_rccs.so src/*.h ${INSTALL_PREFIX}/src
ln -s ${INSTALL_PREFIX}/src/liblammps_rccs.so ${INSTALL_PREFIX}/src/liblammps.so
cp -r LICENSE \
README \
bench/ \
doc/ \
examples/ \
potentials/ \
python/ \
tools/ \
${INSTALL_PREFIX}
List of Packages
ASPHERE, BODY, CLASS2, COLLOID, COMPRESS, CORESHELL, DIPOLE, GPU, GRANULAR
KSPACE, MANYBODY, MC, MEAM, MISC, MOLECULE, MPIIO, OPT, PERI, POEMS
PYTHON, QEQ, REAX, REPLICA, RIGID, SHOCK, SNAP, SRD, VORONOI
USER-ATC, USER-AWPMD, USER-CGDNA, USER-CGSDK, USER-COLVARS,
USER-DIFFRACTION, USER-DPD, USER-DRUDE, USER-EFF, USER-FEP,
USER-H5MD, USER-INTEL, USER-LB, USER-MANIFOLD, USER-MEAMC,
USER-MESO, USER-MGPT, USER-MISC, USER-MOLFILE, USER-NETCDF,
USER-OMP, USER-PHONON, USER-QTB, USER-REAXC, USER-SMTBQ,
USER-SPH, USER-TALLY, USER-UEF
Tests
- Serial tests via "run_tests.py" passed (excluding legacy tests).
- Parallel tests were performed with the same procedure as non-GPU version. (only compiler version is different)
- Failed tests in GPU version were the completely the same as those in the non-GPU version.
Notices
- Files installed in /local/apl/lx/lammps16Mar18-CUDA8/. (/local/apl/lx/lammps16Mar18-CUDA is a synbolic link to that dir)
- Executable (lmp_rccs) and library are installed under src/. (Can be accessed via symbolic link bin/)
- Sample job script is available in samples/ directory.
- Python module files are copied to python/ directory.
- LAMMPS header files in src/ directory are also copied in src/ directory.
- latte didn't work in this build environment.
- vmd molfile plugin files are available in /local/apl/lx/vmd193/lib/plugins/LINUXAMD64/molfile directory.