16Mar18
(2018/7/4 修正)
#!/bin/sh
VERSION=16Mar18
INSTALL_PREFIX=/local/apl/lx/lammps${VERSION}-gnuBASEDIR=/home/users/${USER}
LAMMPS_TARBALL=${BASEDIR}/lammps-stable.tar.gzWORKDIR=/work/users/${USER}
WORKDIR_LAMMPS=${WORKDIR}/lammps-${VERSION}
WORKDIR_LAMMPS_ESC=`echo ${WORKDIR_LAMMPS} | sed -e 's/\//\\\\\//g'`PARALLEL=12
module purge
module load mkl/2018.0.2
module load mpi/intelmpi/2018.2.199
module load scl/devtoolset-6#-- libs
MKLROOT_ESC=`echo /local/apl/lx/intel2018update2/compilers_and_libraries_2018.2.
199/linux/mkl | sed -e 's/\//\\\\\//g'`
LATTE_GIT= # latte
LATTEDIR=${WORKDIR_LAMMPS}/lib/latte/LATTE
LATTEDIR_ESC="${WORKDIR_LAMMPS_ESC}\/lib\/latte\/LATTE"
METIS_VER=5.1.0
METIS=http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-${METIS_VER}.tar.gz
BML=https://github.com/lanl/bml.git
PROGRESS=https://github.com/lanl/qmd-progress.git
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 0022cd ${WORKDIR}
if [ -d lammps-${VERSION} ]; then
mv lammps-${VERSION} lammps_erase
rm -rf lammps_erase &
fitar zxf ${LAMMPS_TARBALL}
cd lammps-${VERSION}# setup makefiles, libraries, and external resources
## main
sed -e "/g++_openmpi =/s/.*/# rccs = Intel MPI, MKL FFT + g++ /" \
-e "/OMPI_CXX/d" \
-e "s/^CCFLAGS.*/CCFLAGS = -g -O3 -fopenmp/" \
-e "s/^LINKFLAGS.*/LINKFLAGS = -g -O -fopenmp/" \
-e "s/DLAMMPS_GZIP/DLAMMPS_GZIP -DLAMMPS_JPEG/" \
-e "s/^FFT_INC.*/FFT_INC = -DFFT_FFTW3 -L${MKLROOT_ESC}\/..\/compiler\/lib\/intel64 -m64 -I${MKLROOT_RSC}\/include/" \
-e "s/^FFT_PATH.*/FFT_PATH = -L${MKLROOT_ESC}\/lib\/intel64 -Wl,--no-as-needed/" \
-e "s/^FFT_LIB.*/FFT_LIB = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl/" \
-e "s/^JPG_LIB.*/JPG_LIB = -ljpeg/" \
src/MAKE/OPTIONS/Makefile.g++_openmpi > src/MAKE/MINE/Makefile.rccs
## atc
( cd lib/atc && \
sed -e s/lammps.linalg/lammps.empty/ Makefile.mpic++ > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## awpmd
( cd lib/awpmd && \
sed -e s/linalg/empty/ Makefile.mpi > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## colvars
( cd lib/colvars && \
make -f Makefile.mpi -j ${PARALLEL} && \
cd ../../ )
## h5md
( cd lib/h5md && \
make -f Makefile.mpi -j ${PARALLEL} && \
cd ../../ )
## latte (make jobserver not available?)
## METIS, BML, and (qmd-)PROGRESS are also built
( cd lib/latte && \
git clone ${LATTE_GIT} && \
cd LATTE && \
wget ${METIS} && \
tar zxf metis-${METIS_VER}.tar.gz && \
cd metis-${METIS_VER} && \
make config prefix=../../install && \
make install && \
cd ../ && \
git clone ${BML} && \
cd bml && \
EXTRA_CFLAGS="-fPIC" EXTRA_FFLAGS="-fPIC" sh example_build.sh && \
cd build/ && \
make && \
make install && \
cd ../../ && \
git clone ${PROGRESS} && \
cd qmd-progress && \
EXTRA_FCFLAGS="-fPIC" EXTRA_LINK_FLAGS="-fPIC" CMAKE_PREFIX_PATH=${LATTEDIR}/metis-5.1.0/install PROGRESS_GRAPHLIB=yes PKG_CONFIG_PATH=${LATTEDIR}/bml/install/lib64/pkgconfig ./build.sh configure && \
cd build/ && \
make && \
cd src/ && \
gcc -DGLOBAL_DEBUG=PROGRESS_LOG_DEBUG \
-DMETIS_INDEX_KIND=4 \
-DMETIS_REAL_KIND=0d0 \
-O3 -DNDEBUG -fPIC \
-I${LATTEDIR}/bml/install/include \
-fopenmp \
-o CMakeFiles/progress.dir/prg_memory_consumption.c.o \
-c ${LATTEDIR}/qmd-progress/src/prg_memory_consumption.c && \
cd ../ && \
make install && \
cd ../../ && \
sed -i -e "s/fopenmp/fopenmp -fPIC/" \
-e "s/^LIB =.*/LIB = -L${MKLROOT_ESC}\/lib\/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl/" \
-e "s/^METIS =.*/METIS = ON/" \
-e "s/^PROGRESS =.*/PROGRESS = ON/" \
-e "s/.(HOME)/${LATTEDIR_ESC}/" \
-e "s/metis\///" \
-e "s/install\/lib/install\/lib64/" \
makefile.CHOICES && \
make && \
cd ../ && \
ln -s LATTE/src includelink && \
ln -s LATTE liblink && \
ln -s LATTE/src/latte_c_bind.o filelink.o && \
echo "latte_SYSINC = -I../../lib/latte/LATTE/src -I../../lib/latte/LATTE/bml/install/include -I../../lib/latte/LATTE/qmd-progress/install/include" > Makefile.lammps && \
echo "latte_SYSLIB = -fopenmp ../../lib/latte/filelink.o -llatte -L../../lib/latte/LATTE/qmd-progress/install/lib64 -lprogress -L../../lib/latte/LATTE/bml/install/lib64 -lbml_fortran -lbml -L../../lib/latte/LATTE/metis-5.1.0/install/lib -lmetis" >> Makefile.lammps && \
echo -n "latte_SYSPATH = -fopenmp" >> Makefile.lammps && \
cd ../../ )
## meam
( cd lib/meam && \
sed -e s/mpifort/mpif90/ Makefile.mpi > Makefile.rccs && \
make -f Makefile.rccs -j ${PARALLEL} && \
cd ../../ )
## molfile
#### plugin location: /local/apl/lx/vmd193/lib/plugins/LINUXAMD64/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.g++ -j ${PARALLEL} && \
cd ../../ )
## reax
( cd lib/reax && \
make -f Makefile.gfortran -j ${PARALLEL} && \
cd ../../ )
## voronoi
( cd lib/voronoi && \
wget ${VORO} && \
tar zxf voro++-${VORO_VER}.tar.gz && \
cd voro++-${VORO_VER} && \
sed -i -e "s/^CFLAGS=.*/CFLAGS=-Wall -ansi -pedantic -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 \
no-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}
cp lib/h5md/LICENSE ${INSTALL_PREFIX}/LICENSE-h5md
cp lib/voronoi/voro++-${VORO_VER}/LICENSE ${INSTALL_PREFIX}/LICENSE-voro++## latte extra
mkdir -p ${INSTALL_PREFIX}/lib/latte/LATTE
cp -r lib/latte/LATTE/{LICENSE_GPL-2.0,latte.in,MATRIX,Manual,Restarts,TBparam,animate,examples,tests,tools} ${INSTALL_PREFIX}/lib/latte/LATTEmkdir -p ${INSTALL_PREFIX}/lib/latte/LATTE/bml
cp -r lib/latte/LATTE/bml/{LICENSE.md,install,examples} ${INSTALL_PREFIX}/lib/latte/LATTE/bmlmkdir -p ${INSTALL_PREFIX}/lib/latte/LATTE/metis-${METIS_VER}
cp -r lib/latte/LATTE/metis-${METIS_VER}/{LICENSE.txt,install} ${INSTALL_PREFIX}/lib/latte/LATTE/metis-${METIS_VER}mkdir -p ${INSTALL_PREFIX}/lib/latte/LATTE/qmd-progress
cp -r lib/latte/LATTE/qmd-progress/{LICENSE.md,install,examples} ${INSTALL_PREFIX}/lib/latte/LATTE/qmd-progress
ASPHERE, BODY, CLASS2, COLLOID, COMPRESS, CORESHELL, DIPOLE, GRANULAR
KSPACE, LATTE, 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
並列テストに関するコメント(gcc版と同様のエラーが出るものについては太字で表記)
その他テスト関連(未実行テスト、エラーが発生するテスト、個別テストに関して)
その他