7.1.0
--- install_cp2k_toolchain.sh.org 2020-01-31 17:07:19.000000000 +0900
+++ install_cp2k_toolchain.sh 2020-01-31 17:07:30.000000000 +0900
@@ -942,8 +942,8 @@
./scripts/install_superlu.sh
./scripts/install_pexsi.sh
./scripts/install_quip.sh
- ./scripts/install_plumed.sh
./scripts/install_gsl.sh
+ ./scripts/install_plumed.sh
./scripts/install_spglib.sh
./scripts/install_hdf5.sh
./scripts/install_libvdwxc.sh
--- install_sirius.sh.org 2020-02-25 14:50:50.000000000 +0900
+++ install_sirius.sh 2020-02-25 14:48:01.000000000 +0900
@@ -131,8 +131,8 @@
-DSpFFT_DIR="${SPFFT_ROOT}/lib/cmake/SpFFT" \
-DCMAKE_CXXFLAGS_RELEASE="${SIRIUS_OPT}" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="${SIRIUS_DBG}" \
- -DCMAKE_CXX_COMPILER=mpic++ \
- -DCMAKE_C_COMPILER=mpicc \
+ -DCMAKE_CXX_COMPILER=${MPICXX} \
+ -DCMAKE_C_COMPILER=${MPICC} \
${COMPILATION_OPTIONS} .. > compile.log 2>&1
make -j $NPROCS -C src >> compile.log 2>&1
@@ -155,8 +155,8 @@
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="${SIRIUS_DBG}" \
-DUSE_CUDA=ON \
-DGPU_MODEL=P100 \
- -DCMAKE_CXX_COMPILER=mpic++ \
- -DCMAKE_C_COMPILER=mpicc ${COMPILATION_OPTIONS} .. >> compile.log 2>&1
+ -DCMAKE_CXX_COMPILER=${MPICXX} \
+ -DCMAKE_C_COMPILER=${MPICC} ${COMPILATION_OPTIONS} .. >> compile.log 2>&1
make -j $NPROCS -C src >> compile.log 2>&1
install -d ${pkg_install_dir}/lib/cuda
install -d ${pkg_install_dir}/include/cuda
--- install_plumed.sh.org 2020-02-19 13:43:07.000000000 +0900
+++ install_plumed.sh 2020-02-19 13:42:49.000000000 +0900
@@ -40,7 +40,7 @@
echo "Installing from scratch into ${pkg_install_dir}"
cd plumed-${plumed_ver}
- ./configure CXX="${MPICXX}" --prefix=${pkg_install_dir} --libdir="${pkg_install_dir}/lib" > configure.log 2>&1
+ ./configure CXX="${MPICXX}" --prefix=${pkg_install_dir} --libdir="${pkg_install_dir}/lib" CXXFLAGS="-I${GSLROOT}/include" LIBS="-L${GSLROOT}/lib" --enable-external-lapack=no --enable-external-blas=no > configure.log 2>&1
make -j $NPROCS > make.log 2>&1
make install > install.log 2>&1
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/$(basename ${SCRIPT_NAME})"
@@ -63,7 +63,7 @@
esac
if [ "$with_plumed" != "__DONTUSE__" ] ; then
- PLUMED_LIBS='-lplumed -ldl -lstdc++ -lz -ldl'
+ PLUMED_LIBS='-lplumedKernel -lplumed -ldl -lstdc++ -lz -ldl'
if [ "$with_plumed" != "__SYSTEM__" ] ; then
cat <<EOF > "${BUILDDIR}/setup_plumed"
prepend_path LD_LIBRARY_PATH "$pkg_install_dir/lib"
#!/bin/sh
INSTDIR=/local/apl/lx/cp2k710-gnu
VERSION=7.1.0
DBCSR_VERSION=2.0.1SOURCE_ROOT=/home/users/${USER}/Software/CP2K/${VERSION}
TARBALL=${SOURCE_ROOT}/cp2k-${VERSION}.tar.gz
TARBALL_DBCSR=${SOURCE_ROOT}/dbcsr-${DBCSR_VERSION}.tar.gzTC_PATCH0=${SOURCE_ROOT}/tc_install_cp2k_toolchain.sh.diff
TC_PATCH5=${SOURCE_ROOT}/tc_install_sirius.sh.diff
TC_PATCH9=${SOURCE_ROOT}/tc_install_plumed_noext.sh.diffPARALLEL=12
#---------------------------------------------------------------------------
umask 0022
export LANG=C
export LC_ALL=Cmodule purge
module load scl/devtoolset-7
module load mpi/openmpi/4.0.2/gnu7.3
module load cmake/3.16.3cd $INSTDIR
if [ -d cp2k-${VERSION} ]; then
mv cp2k-${VERSION} cp2k-erase
rm -rf cp2k-erase &
fi
tar zxf ${TARBALL}
sleep 5
mv cp2k-${VERSION}/* .
sleep 5
rm -f cp2k-${VERSION}/.dockerignore
rmdir cp2k-${VERSION}cd ${INSTDIR}/tools/toolchain
patch < ${TC_PATCH0}cd scripts
patch < ${TC_PATCH5}
patch < ${TC_PATCH9}
cd ../export MPICC=mpicc
export MPICXX=mpicxx
export MPIFC=mpif90./install_cp2k_toolchain.sh --math-mode=openblas \
--mpi-mode=openmpi \
--with-cmake=system \
--with-mpich=no \
--with-libxc=install \
--with-libint=install \
--with-fftw=install \
--with-openblas=install \
--with-scalapack=install \
--with-reflapack=no \
--with-mkl=no \
--with-libxsmm=install \
--with-elpa=install \
--with-ptscotch=install \
--with-pexsi=install \
--with-parmetis=install \
--with-superlu=install \
--with-quip=install \
--with-plumed=install \
--with-gsl=install \
--with-libvdwxc=install \
--with-spglib=install \
--with-hdf5=install \
--with-spfft=install \
-j ${PARALLEL}cp install/arch/local.psmp ../../arch/rccs.psmp
cd ${INSTDIR}/exts
rmdir dbcsr
tar zxf ${TARBALL_DBCSR}
mv dbcsr-${DBCSR_VERSION} dbcsr
cd ../
make -j ${PARALLEL} ARCH=rccs VERSION=psmp
以下のスクリプトを ccfep 上で実行しています。
#!/bin/sh
export LC_ALL=C
export LANG=""# gcc8
module purge
module load scl/devtoolset-7
module load mpi/openmpi/4.0.2/gnu7.3
module load cmake/3.16.3
#CP2K=/home/users/qf7/Software/CP2K/7.1.0/cp2k-7.1.0-gcc7-openmpi4-openblas
CP2K=/local/apl/lx/cp2k710-gnuCP2K_ARCH=rccs
CP2K_VER=psmp
TIMEOUT=120
PARALLEL=16ulimit -s unlimited
cd ${CP2K}/regtesting/${CP2K_ARCH}/${CP2K_VER}
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# serial test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 1 \
-ompthreads 1 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi1_omp1.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# omp test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 1 \
-ompthreads 2 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi1_omp2.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# mpi test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 2 \
-ompthreads 1 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi2_omp1.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# mpi/openmp test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 2 \
-ompthreads 2 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi2_omp2.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# yet another mpi test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 8 \
-ompthreads 1 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi8_omp1.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}# yet another mpi/openmp test
../../../tools/regtesting/do_regtest \
-nobuild \
-nosvn \
-arch ${CP2K_ARCH} \
-version ${CP2K_VER} \
-mpiranks 8 \
-ompthreads 2 \
-jobmaxtime ${TIMEOUT} \
-cp2kdir ../../../ \
-maxtasks ${PARALLEL} >& regtest_mpi8_omp2.log
rm -rf LAST-${CP2K_ARCH}-${CP2K_VER}
--------------------------------- Summary --------------------------------
Number of FAILED tests 1
Number of WRONG tests 0
Number of CORRECT tests 3217
Number of NEW tests 3
Total number of tests 3221
--------------------------------- Summary --------------------------------
Number of FAILED tests 1
Number of WRONG tests 1
Number of CORRECT tests 3216
Number of NEW tests 3
Total number of tests 3221
--------------------------------- Summary --------------------------------
Number of FAILED tests 0
Number of WRONG tests 0
Number of CORRECT tests 3278
Number of NEW tests 8
Total number of tests 3286
--------------------------------- Summary --------------------------------
Number of FAILED tests 0
Number of WRONG tests 0
Number of CORRECT tests 3278
Number of NEW tests 8
Total number of tests 3286
--------------------------------- Summary --------------------------------
Number of FAILED tests 0
Number of WRONG tests 9
Number of CORRECT tests 3228
Number of NEW tests 6
Total number of tests 3243
--------------------------------- Summary --------------------------------
Number of FAILED tests 0
Number of WRONG tests 9
Number of CORRECT tests 3228
Number of NEW tests 6
Total number of tests 3243
6.1.0 と同じように H2O-64.inp を利用。(時間は grep "CP2K " *.log で表示される値から)
21 回実行し、最初の 1 回を除いた平均値。(初回は速度が安定しないため)
jobtype | 総コア数 (ノード数) |
MPI | OMP | GPU | elapse(sec) |
core | 18 (1) | 18 | 1 | - | 72.685 |
small | 40 (1) | 40 | 1 | - | 51.424 |
small | 80 (2) | 80 | 1 | - | 36.697 |
small | 160 (4) | 32 | 5 | - | 27.455 |