LAMMPS 7Aug19 with GPU support

ウェブページ

http://lammps.sandia.gov/

バージョン

7Aug19

ビルド環境

  • Intel Parallel Studio XE 2017 update 8
  • CUDA 9.1
  • cmake 3.8.2

ビルドに必要なファイル

  • lammps-stable_7Aug2019.tar.gz
  • lammps-testing-master.zip (2019/10/23 にダウンロード)
  • (一部ファイルは以下スクリプト中で取得)

ビルド手順

#!/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

パッケージリスト

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

注意点

  • ccfep でビルド、ccgpup と ccgpuv の両方でテスト(make test)を行っています。どちらでも問題無くパスしています。
    • (詳細なテストについては行っていません。ご注意下さい。)
  • 今回のバージョンは一応 sm_60 (P100 用)で最適化するように設定していますが、V100 でも問題無く動作します。