LAMMPS 7Aug19

ウェブページ

http://lammps.sandia.gov/

バージョン

7Aug19

ビルド環境

  • Intel Parallel Studio XE 2018 update 4
  • 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

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}
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/2018update4
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 \
  -DPKG_OPT=on \
  -DPKG_USER-OMP=on \
  -DPKG_USER-INTEL=on \
  -DPKG_GPU=off \
  -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_BUILD_TYPE=Release

make -j ${PARALLEL}
make test && make install

# detailed tests
cd ${TESTS_WORKDIR}

LAMMPS_WORKDIR_ESC=$(echo $LAMMPS_WORKDIR | sed -e 's/\//\\\\\//g')
sed -i -e "s/^read_data.*/read_data       ${LAMMPS_WORKDIR_ESC}\/bench\/data.rhodo/" tests/examples/accelerate/in.rhodo
sed -i -e "s/^  pair_coeff.*/  pair_coeff        * * ${LAMMPS_WORKDIR_ESC}\/potentials\/Cu_mishin1.eam.alloy Cu/" tests/examples/USER/misc/ti/in.ti_spring
cp ${LAMMPS_WORKDIR_ESC}/potentials/{CC.KC,CH.airebo} tests/examples/USER/misc/kolmogorov-crespi

# test classes
NOAVAIL="mscg kim USER/quip USER/misc/i-pi"
PROC1="gcmc"
PROCS3="tad neb USER/dpd/dpdrx-shardlow"
STALL="USER/eff/ECP/Si2H6 USER/eff/CH4"
STALL_INTEL="balance"
UNKNOWN="USER/misc/pimd USER/misc/grem USER/atc COUPLE ASPHERE/tri ASPHERE/line"
TOOLONG="USER/misc/imd USER/lb"
EXCLUDES="${NOAVAIL} ${PROC1} ${PROCS3} ${STALL} ${STALL_INTEL} ${UNKNOWN} ${TOOLONG}"

LAMMPSBIN=${INSTALL_PREFIX}/bin/lmp_rccs

# basic
NPROCS=4
JOBNAME=basic4
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -exclude ${EXCLUDES}
# gcmc test
NPROCS=1
JOBNAME=gcmc
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only ${PROC1}
# tad
NPROCS=3
JOBNAME=tad
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN} -partition 3x1" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only tad
# neb(sivac)
NPROCS=3
JOBNAME=sivac
TESTDIR=tests/examples/neb
## evacuate
mv ${TESTDIR}/in.neb.hop1 ${TESTDIR}/In.neb.hop1
mv ${TESTDIR}/in.neb.hop2 ${TESTDIR}/In.neb.hop2
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN} -partition 3x1" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only neb
mv ${TESTDIR}/In.neb.hop1 ${TESTDIR}/in.neb.hop1
mv ${TESTDIR}/In.neb.hop2 ${TESTDIR}/in.neb.hop2
# neb(hop1,hop2)
NPROCS=4
JOBNAME=hop
TESTDIR=tests/examples/neb
mv ${TESTDIR}/in.neb.sivac ${TESTDIR}/In.neb.sivac
## evacuate
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN} -partition 4x1" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only neb
mv ${TESTDIR}/In.neb.sivac ${TESTDIR}/in.neb.sivac
# dpdrx-shardlow
NPROCS=3
JOBNAME=shardlow
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN} -partition 3x1" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only USER/dpd/dpdrx-shardlow
# ECP(Si2H6)
NPROCS=4
JOBNAME=Si2H6
TESTDIR=tests/examples/USER/eff/ECP/Si2H6
mv ${TESTDIR}/in.Si2H6.ang ${TESTDIR}/In.Si2H6.ang
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only USER/eff/ECP/Si2H6
mv ${TESTDIR}/In.Si2H6.ang ${TESTDIR}/in.Si2H6.ang
# ECP(CH4)
NPROCS=4
JOBNAME=CH4
TESTDIR=tests/examples/USER/eff/CH4
mv ${TESTDIR}/in.ch4_ionized.dynamics ${TESTDIR}/In.ch4_ionized.dynamics
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only USER/eff/ECP/CH4
mv ${TESTDIR}/In.ch4_ionized.dynamics ${TESTDIR}/in.ch4_ionized.dynamics
# USER/lb
NPROCS=4
JOBNAME=lb
TESTDIR1=tests/examples/USER/lb/polymer
mv ${TESTDIR1}/in.polymer_setgamma ${TESTDIR1}/In.polymer_setgamma
mv ${TESTDIR1}/in.polymer_default_gamma ${TESTDIR1}/In.polymer_default_gamma
TESTDIR2=tests/examples/USER/lb/fourspheres
mv ${TESTDIR2}/in.fourspheres_set_gamma ${TESTDIR2}/In.fourspheres_set_gamma
mv ${TESTDIR2}/in.fourspheres_default_gamma ${TESTDIR2}/In.fourspheres_default_gamma
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only USER/lb
mv ${TESTDIR1}/In.polymer_setgamma ${TESTDIR1}/in.polymer_setgamma
mv ${TESTDIR1}/In.polymer_default_gamma ${TESTDIR1}/in.polymer_default_gamma
mv ${TESTDIR2}/In.fourspheres_set_gamma ${TESTDIR2}/in.fourspheres_set_gamma
mv ${TESTDIR2}/In.fourspheres_default_gamma ${TESTDIR2}/in.fourspheres_default_gamma
# balance
NPROCS=4
JOBNAME=balance
TESTDIR=tests/examples/balance
mv ${TESTDIR}/in.balance.bond.fast ${TESTDIR}/In.balance.bond.fast
mv ${TESTDIR}/in.balance.bond.slow ${TESTDIR}/In.balance.bond.slow
mv ${TESTDIR}/in.balance.neigh.rcb ${TESTDIR}/In.balance.neigh.rcb
mv ${TESTDIR}/in.balance ${TESTDIR}/In.balance
python \
  lammps_testing/regression.py \
  ${JOBNAME} \
  "mpirun -np ${NPROCS} ${LAMMPSBIN}" \
  ${TESTS_WORKDIR}/tests/examples/ \
  -only balance
mv ${TESTDIR}/In.balance.bond.fast ${TESTDIR}/in.balance.bond.fast
mv ${TESTDIR}/In.balance.bond.slow ${TESTDIR}/in.balance.bond.slow
mv ${TESTDIR}/In.balance.neigh.rcb ${TESTDIR}/in.balance.neigh.rcb
mv ${TESTDIR}/In.balance ${TESTDIR}/in.balance

パッケージリスト

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

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

テスト結果

基本的なテスト(make test)についてはエラー無し。
詳細なテストについては一部にエラー。(テスト側に問題があるケースも存在すると思われる)
  • balance/balance.var.dynamic: 軽微な数値エラー
  • balance/balance.kspace: 数値エラー
  • balance/balance.clock.dynamic: 軽微な数値エラー
  • lb/confined_colloid/confined_colloids: Cannot open file confinedcolloids.dat
  • dpd/dpdrx-shardlow/dpdrx-shardlow: Invalid logfile found (実行自体には成功)
  • neb/neb.hop1: Invalid logfile found (実行自体は成功)
  • neb/neb.hop2: Invalid logfile found (実行自体は成功)
  • neb.sivac: Invalid logfile found (実行自体は成功)
  • tad: Invalid logfile found (実行自体は成功)
  • python/python: RROR on proc 0: Python function evaluation failed
  • python/fix_python: ERROR: Could not process Python string
  • accelerate/rhodo: ERROR on proc 0: Cannot open file ../../bench/data.rhodo
  • VISCOSITY/nemd.2d: 数値エラー
  • USER/misc/ti/ti_spring: ERROR on proc 0: Cannot open EAM potential file
  • USER/misc/kolmogorov-crespi/bilayer-graphene: ERROR on proc 0: Cannot open REBO2 potential file CH.rebo
  • USER/misc/kolmogorov-crespi/atom-diffusion: ERROR on proc 0: Cannot open KC potential file CC.KC
  • USER/eff/Li-dendritic/Li-dendritic.min: ERROR on proc 0: Cannot open restart file Li-dendritic.min.restart2
  • USER/eff/Be-solid/Be-solid.spe: ERROR on proc 0: Expected integer parameter instead of '-1.000000' in input script or data file
スキップしたテスト
  • mscg kim USER/quip USER/misc/i-pi USER/eff/ECP/Si2H6 USER/eff/CH4 balance(一部) USER/misc/pimd USER/misc/grem USER/atc COUPLE ASPHERE/tri ASPHERE/line USER/misc/imd USER/lb

注意

  • ccfep にてビルド及びテスト実行を行っています。
  • 今回のバージョンからは cmake を利用しています。
  • KIM は download とビルドは成功するものの、インストール時にライブラリがきちんと処理されていないように見えたのでスキップしています。