Molpro 2019.2.3 for LX

Webpage

https://www.molpro.net/

Version

2019.2.3

Build Environment

  • Intel Parallel Studio 2017 update8
    • ifort 17.0.8
    • icc 17.0.8
    • mkl 2017.0.4
    • impi 2017.0.4
  • GCC 4.9.2 (Software Collections devtoolset-3)
  • Global Arrays Toolkit 5.7

Files Required

  • Molpro_release.tar.gz (downloaded "Molpro_release" was archived with tar and gzip.)
  • ga-5.7.tar.gz
  • work.patch

--- utilities/molpro.template.orig      2018-12-10 16:29:50.000000000 +0900
+++ utilities/molpro.template   2018-12-10 16:39:13.000000000 +0900
@@ -446,6 +446,12 @@
  shift
 done
 
+MOLPRO_OPTIONS="\
+-d/work/users/$USER/ \
+-I/work/users/$USER/ \
+-W/work/users/$USER/wfu \
+$MOLPRO_OPTIONS"
+
 if test "x${option_d}" = x ; then
 # Now we have to replicate everything inside molpro.exe to try and get the same value of -d that it would
  option_d="/tmp"

  • token

Build Procedure

#!/bin/sh

GA_VERSION=5.7
MOLPRO_VERSION=2019.2.3
MOLPRO_DIRNAME=Molpro_release
PARALLEL=12
BASEDIR=/home/users/${USER}/Software/Molpro/2019.2.3
MOLPRO_TARBALL=${BASEDIR}/${MOLPRO_DIRNAME}.tar.gz
PATCH=${BASEDIR}/work.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-3
module load intel_parallelstudio/2017update8

tar zxf /home/users/${USER}/Software/GlobalArrays/${GA_VERSION}/ga-${GA_VERSION}.tar.gz
cd ga-${GA_VERSION}

export F77=mpiifort
export F90=mpiifort
export FC=mpiifort
export CC=mpiicc
export CXX=mpiicpc
export MPIF77=mpiifort
export MPICC=mpiicc
export MPICXX=mpiicpc
export GA_FOPT="-O3 -ip -w -xHost"
export GA_COPT="-O3 -ip -w -xHost"
export GA_CXXOPT="-O3 -ip -w -xHost"

./configure --with-blas8 \
            --enable-i8 \
            --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 < ${PATCH}

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

CPPFLAGS="-I${GA_INSTALLDIR}/include" \
LDFLAGS="-L${GA_INSTALLDIR}/lib" \
    ./configure --prefix=${INSTALLDIR} \
                --enable-integer8 \
                --enable-slater
            
LD_LIBRARY_PATH_ESC=`echo $LD_LIBRARY_PATH | sed -e 's/\//\\\\\//g'`
sed -i -e "s/^VERBOSE.*$/VERBOSE=/" \
       -e "s/^LD_ENV=.*$/LD_ENV=$LD_LIBRARY_PATH_ESC/" CONFIG
unset LD_LIBRARY_PATH_ESC

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

make tuning

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

# failed tests: loc_eom3.test

#make install # do it manually

The final "make install" was done manually.

Tests

  • loc_eom3: numerical error, same as pervious versions.
  • all the tests using PNO_RCCSD/PNO_UCCSD (methods not mentioned in manual)
    • form_pnoccsd, gly2_pnorccsd, gly2_pnorccsd_multinode, h2odim_pno_singdom, h2odim_pnorccsd

Notes

  • Default scratch/wfu output directory is set to /work/users/$USER by the work.patch.
    • Notice: this patch was NOT applied for the previous version (2019.1.2) due to the mistake. Sorry.
  • Distance unit "ANGS" becomes available again.
  • We also tried to build with intel2019. However, no clear performance improvements were found in this build. Moreover, some of tests were failed additionally (all of them were PNO- related tests).
    • (Intel MPI 2019 was not used in this trial, since some strange errors were observed in GA and molpro tests. We employed intel2019 (compiler) + mkl2019 + impi 2018) instead.
  • We also tried with intel2018u4, but failed to build molpro.