LAMMPS 7Aug19 with GPU support
Webpage
Version
7Aug19
Build Environment
- Intel Parallel Studio XE 2017 update 8
- CUDA 9.1
- cmake 3.8.2
Files Required
- lammps-stable_7Aug2019.tar.gz
- lammps-testing-master.zip (downloaded on Oct. 23, 2019)
- (Some of packages are installed during the following procedure.)
Build Procedure
#!/bin/sh
NAME=lammps-stable_7Aug2019
VERSION=7Aug19
INSTALL_PREFIX=/local/apl/lx/lammps7Aug19-CUDA
BASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/${NAME}.tar.gz
TESTS_ARCHIVE=${BASEDIR}/lammps-testing-master.20191023.zip
WORKDIR=/work/users/${USER}
#WORKDIR=/home/users/${USER}/ramdisk
LAMMPS_WORKDIR=${WORKDIR}/${NAME}
TESTS_WORKDIR=${WORKDIR}/lammps-testing-master
VMD_MOLFILE_INC=/local/apl/lx/vmd193/lib/plugins/include
PARALLEL=12
#------------------------------------------------------------------
umask 0022
export LANG=C
module purge
module load intel_parallelstudio/2017update8
module load cuda/9.1
module load cmake/3.8.2
export CC=mpiicc
export CXX=mpiicpc
export FC=mpiifort
export MPICC=mpiicc
export MPICXX=mpiicpc
export MPIFC=mpiifort
cd ${WORKDIR}
if [ -d ${NAME} ]; then
mv ${NAME} lammps_erase
rm -rf lammps_erase &
fi
if [ -d lammps-testing-master ]; then
mv lammps-testing-master lammps-testing-master_erase
rm -rf lammps-testing-master_erase &
fi
tar zxf ${LAMMPS_TARBALL}
unzip ${TESTS_ARCHIVE}
cd ${NAME}
mkdir build && cd build
# Disabled PKGs:
# ADIOS, QUIP, QMMM, VTK: noavail
# MSCG: gsl too old
# KOKKOS: not sure what this is
# KIM: incompatible with "make install"? Build itself works fine.
cmake ../cmake \
-DLAMMPS_MACHINE=rccs \
-DLAMMPS_LIB_SUFFIX=rccs \
-DENABLE_TESTING=on \
-DLAMMPS_TESTING_SOURCE_DIR=${TESTS_WORKDIR} \
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
-DCMAKE_C_COMPILER=mpiicc \
-DCMAKE_CXX_COMPILER=mpiicpc \
-DCMAKE_Fortran_COMPILER=mpiifort \
-DCMAKE_MPI_C_COMPILER=mpiicc \
-DCMAKE_MPI_CXX_COMPILER=mpiicpc \
-DCMAKE_MPI_Fortran_COMPILER=mpiifort \
-DBUILD_LIB=on \
-DBUILD_TOOLS=on \
-DBUILD_MPI=on \
-DBUILD_OMP=on \
-DFFT=MKL \
-DFFT_SINGLE=off \
-DDOWNLOAD_LATTE=on \
-DDOWNLOAD_SCAFACOS=on \
-DDOWNLOAD_VORO=on \
-DDOWNLOAD_PLUMED=on \
-DDOWNLOAD_EIGEN3=on \
-DMOLFILE_INCLUDE_DIRS=${VMD_MOLFILE_INC} \
-DWITH_JPEG=yes \
-DWITH_PNG=yes \
-DWITH_GZIP=yes \
-DGPU_API=cuda \
-DGPU_ARCH=sm_60 \
-DPKG_OPT=on \
-DPKG_USER-OMP=on \
-DPKG_USER-INTEL=on \
-DPKG_GPU=on \
-DPKG_KOKKOS=off \
-DPKG_ASPHERE=on \
-DPKG_BODY=on \
-DPKG_CLASS2=on \
-DPKG_COLLOID=on \
-DPKG_COMPRESS=on \
-DPKG_CORESHELL=on \
-DPKG_DIPOLE=on \
-DPKG_GRANULAR=on \
-DPKG_KSPACE=on \
-DPKG_LATTE=on \
-DPKG_MANYBODY=on \
-DPKG_MC=on \
-DPKG_MESSAGE=on \
-DPKG_MISC=on \
-DPKG_MOLECULE=on \
-DPKG_MPIIO=on \
-DPKG_PERI=on \
-DPKG_POEMS=on \
-DPKG_PYTHON=on \
-DPKG_QEQ=on \
-DPKG_REPLICA=on \
-DPKG_RIGID=on \
-DPKG_SHOCK=on \
-DPKG_SNAP=on \
-DPKG_SPIN=on \
-DPKG_SRD=on \
-DPKG_USER-ATC=on \
-DPKG_USER-AWPMD=on \
-DPKG_USER-BOCS=on \
-DPKG_USER-CGDNA=on \
-DPKG_USER-CGSDK=on \
-DPKG_USER-COLVARS=on \
-DPKG_USER-DIFFRACTION=on \
-DPKG_USER-DPD=on \
-DPKG_USER-DRUDE=on \
-DPKG_USER-EFF=on \
-DPKG_USER-FEP=on \
-DPKG_USER-H5MD=on \
-DPKG_USER-LB=on \
-DPKG_USER-MANIFOLD=on \
-DPKG_USER-MEAMC=on \
-DPKG_USER-MESO=on \
-DPKG_USER-MGPT=on \
-DPKG_USER-MISC=on \
-DPKG_USER-MOFFF=on \
-DPKG_USER-MOLFILE=on \
-DPKG_USER-NETCDF=on \
-DPKG_USER-PHONON=on \
-DPKG_USER-PLUMED=on \
-DPKG_USER-PTM=on \
-DPKG_USER-QTB=on \
-DPKG_USER-REAXC=on \
-DPKG_USER-SCAFACOS=on \
-DPKG_USER-SDPD=on \
-DPKG_USER-SMD=on \
-DPKG_USER-SMTBQ=on \
-DPKG_USER-SPH=on \
-DPKG_USER-TALLY=on \
-DPKG_USER-UEF=on \
-DPKG_USER-YAFF=on \
-DPKG_VORONOI=on \
-DCMAKE_LIBRARY_PATH=/local/apl/lx/cuda-9.1/lib64/stubs \
-DCMAKE_BUILD_TYPE=Release
make -j ${PARALLEL}
#make test && make install
make install
List of Packages
ASPHERE, BODY, CLASS2, COLLOID, COMPRESS, CORESHELL, DIPOLE, GRANULAR, KSPACE, LATTE, MANYBODY, MC, MESSAGE, MISC, MOLECULE, PERI, POEMS, QEQ, REPLICA, RIGID, SHOCK, SPIN, SNAP, SRD, PYTHON, MPIIO, VORONOI, OPT, GPU
USER-ATC, USER-AWPMD, USER-BOCS, USER-CGDNA, USER-MESO, USER-CGSDK, USER-COLVARS, USER-DIFFRACTION, USER-DPD, USER-DRUDE, USER-EFF, USER-FEP, USER-H5MD, USER-LB, USER-MANIFOLD, USER-MEAMC, USER-MGPT, USER-MISC, USER-MOFFF, USER-MOLFILE, USER-NETCDF, USER-PHONON, USER-PLUMED, USER-PTM, USER-QTB, USER-REAXC, USER-SCAFACOS, USER-SDPD, USER-SMD, USER-SMTBQ, USER-SPH, USER-TALLY, USER-UEF, USER-YAFF, USER-OMP, USER-INTEL
Notes
- Built on ccfep, and tested on ccgpup and ccgpuv (only basic tests; make test). All the basic tests were passed successfully.
- (Detailed tests were skipped for this version.)
- Although this version is targeting (or optimizing for) P100 (-DGPU_ARCH=sm_60), the compiled binary works not only on P100 nodes but also on V100 nodes.