Molpro 2021.1.0

Webpage

https://www.molpro.net/

Version

2021.1.0 (latest commit: 2021/5/12 17:52:32 +0100)

Build Environment

  • GCC 9.3.1 (devtoolset-9)
  • Intel Parallel Studio 2018 update4 (mkl and mpi)
  • Global Arrays Toolkit 5.8

Files Required

  • Molpro_release.tar.gz (downloaded Molpro_release was archived with tar.gz.)
  • ga-5.8.tar.gz
  • work.patch (/local/apl/lx/molpro2021.1.0/patches/work.patch; change default working directory)
  • binput.patch (/local/apl/lx/molpro2021.1.0/patches/binput.patch; modify paramter to enable huge CI calculation)
  • token

Build Procedure

#!/bin/sh

GA_VERSION=5.8
GA_ARCHIVE=/home/users/${USER}/Software/GlobalArrays/${GA_VERSION}/ga-${GA_VERSION}.zip

MOLPRO_VERSION=2021.1.0
MOLPRO_DIRNAME=Molpro_release
PARALLEL=12
BASEDIR=/home/users/${USER}/Software/Molpro/${MOLPRO_VERSION}
MOLPRO_TARBALL=${BASEDIR}/${MOLPRO_DIRNAME}.tar.gz
PATCH0=${BASEDIR}/work.patch
PATCH1=${BASEDIR}/binput.patch
TOKEN=${BASEDIR}/token

WORKDIR=/work/users/${USER}
GA_INSTALLDIR=${WORKDIR}/ga-temporary
INSTALLDIR=/local/apl/lx/molpro${MOLPRO_VERSION}

#------------------------------------------
umask 0022
ulimit -s unlimited

export LANG=
export LC_ALL=C
export OMP_NUM_THREADS=1

cd $WORKDIR
if [ -d ga-${GA_VERSION} ]; then
  mv ga-${GA_VERSION} ga_tmp
  rm -rf ga_tmp &
fi
if [ -d ga-temporary ]; then
  mv ga-temporary ga_tmp_tmp
  rm -rf ga_tmp_tmp &
fi
if [ -d ${MOLPRO_DIRNAME} ]; then
  mv ${MOLPRO_DIRNAME} molpro_tmp
  rm -rf molpro_tmp &
fi

module purge
module load scl/devtoolset-9
module load mkl/2018.0.4
module load mpi/intelmpi/2018.4.274

unzip -q ${GA_ARCHIVE}
#tar zxf ${GA_ARCHIVE}
cd ga-${GA_VERSION}

export CFLAGS="-mpc80"
export FFLAGS="-mpc80"
export FCFLAGS="-mpc80"
export CXXFLAGS="-mpc80"

export F77=mpif90
export F90=mpif90
export FC=mpif90
export CC=mpicc
export CXX=mpicxx
export MPIF77=mpif90
export MPICC=mpicc
export MPICXX=mpicxx
export GA_FOPT="-O3"
export GA_COPT="-O3"
export GA_CXXOPT="-O3"

./autogen.sh
./configure --enable-i8 \
            --with-mpi3 \
            --prefix=${GA_INSTALLDIR}

make -j ${PARALLEL}
make check
make install
cp config.log ${GA_INSTALLDIR}

cd ../
tar zxf ${MOLPRO_TARBALL}
cd ${MOLPRO_DIRNAME}

patch -p0 < ${PATCH0}
patch -p0 < ${PATCH1}

export PATH="${GA_INSTALLDIR}/bin:$PATH" # where ga-config exists

CPPFLAGS="-I${GA_INSTALLDIR}/include" \
LDFLAGS="-L${GA_INSTALLDIR}/lib" \
    ./configure --prefix=${INSTALLDIR} \
                --enable-slater

sed -i -e "s/^VERBOSE.*$/VERBOSE=/" CONFIG

make -j ${PARALLEL}
cp $TOKEN lib/.token

make tuning

## manually modify tuning parameters!
#sed -i -e "s/tuning-mindgm.*/tuning-mindgm 0001/" \
#       -e "s/tuning-mindgc.*/tuning-mindgc 0001/" \
#       -e "s/tuning-mindgr.*/tuning-mindgr 0001/" \
#       -e "s/tuning-mindgl.*/tuning-mindgl 0001/" \
#       -e "s/tuning-mindgv.*/tuning-mindgv 0001/" lib/tuning.rc

MOLPRO_OPTIONS="" make quicktest
MOLPRO_OPTIONS=-n2 make test

# failed tests: gly2_pnolccsd.test

#make install # do it manually
#install -m 644 lib/.token ${INSTALLDIR}/molpro*/lib # do it manually
#cp -a testjobs ${INSTALLDIR}/molpro*/
#cp -a bench ${INSTALLDIR}/molpro*/

Tests

ga

  • global/testing/testmult.x didn't finish within 10 minutes and was killed manually. (FAIL)
    • 3 out of 4 processes were waiting something and the remaining one seemed to be sending something. (deadlocked?)
    • changing optimization flags GA_FOPT etc. didn't help.

molpro

  • Serial quicktest passed without any problems.
  • For parallel test, gly2_pnolccsd.test failed with error (saying "failure from BLAS/LAPACK").

Notes

  • gcc-9 was employed.
  • Employing mkl on GA compilation caused various problems. We thus simply avoid mkl on GA installation.
  • If default data transfer scheme was employed for GA (i.e. without --with-mpi3), various molpro tests (such as acrolein_excincr.test) failed. (not a numerical error; didn't finish)
    • --with-mpi-pr not tested.
    • --with-ofi failed compilation.
  • This version of molpro can't use 8 byte integer interface of blas/lapack (not very sure, though).
  • BLAS/LAPACK of GA and Molpro must be compatible; 4 byte integer interface one was employed both for GA and Molpro.
  • If MKL 2020.0.2 was employed, gly2_pnolccsd.test still failed and some of other tests (such as h2o_pnolccsdf12.test and h2o_pnotriples.test) failed additionally. We thus chose MKL 2018.0.4.