OpenMolcas v21.10 (HPE)

Webpage

https://gitlab.com/Molcas/OpenMolcas

Version

v21.10

Build Environment

  • GCC 8.5.0
  • GCC 9.2.1
  • Intel MKL 2022.2.1
  • HPC-X 2.11 (Open MPI 4.1.4)

Files Required

  • OpenMolcas.tar.gz (git cloned directory was tar-gzipped)
  • ga-5.8.2.tar.gz

Build Procedure

GlobalArrays

#!/bin/sh

GA_VERSION=5.8.2
GA_DIR=/home/users/${USER}/Software/GlobalArrays/${GA_VERSION}
GA_SOURCE=${GA_DIR}/ga-${GA_VERSION}.tar.gz

WORKDIR=/gwork/users/${USER}
INSTALLDIR=/apl/openmolcas/v21.10/ga-5.8.2

#---------------------------------------------------------------------
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

module purge
module load gcc-toolset/9
module load mkl/2022.2.1
module load openmpi/4.1.4-hpcx/gcc9

tar zxf ${GA_SOURCE}
cd ga-${GA_VERSION}

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"

sh autogen.sh

./configure --with-blas8=-mkl \
            --with-scalapack8=-mkl \
            --with-openib \
            --enable-i8 \
            --prefix=${INSTALLDIR}

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

OpenMolcas

#!/bin/sh

VERSION=v21.10
SOURCEDIR=/home/users/${USER}/Software/OpenMolcas/${VERSION}
TARBALL=${SOURCEDIR}/OpenMolcas.tar.gz

INSTALL_DIR=/apl/openmolcas/v21.10
GAROOT=${INSTALL_DIR}/ga-5.8.2
PARALLEL=8

WORKDIR=/gwork/users/${USER}
VERIFYTMP=/gwork/users/${USER}/openmolcas-tmp-v21.10

PATCH=${SOURCEDIR}/cmakelists.patch

export GAROOT
#--------------------------------------------------------
umask 0022
ulimit -s unlimited

export LANG=
export LC_ALL=C
export MOLCAS_TIMELIM=1800

module purge
module load mkl/2022.2.1
module load openmpi/4.1.4-hpcx/gcc8

cd $WORKDIR
if [ -d OpenMolcas ]; then
  mv OpenMolcas OpenMolcas_tmp
  rm -rf OpenMolcas_tmp
fi

tar zxf ${TARBALL}
cd OpenMolcas
git submodule update --init External/libmsym
git submodule update --init External/efp
git submodule update --init External/libwfa

sed -i -e "/environ/s/= 1/= '1'/" \
       -e "/environ/s/= opt\['parallel'\]/= str(opt['parallel'])/" \
       sbin/verify

mkdir build && cd build

export FC=mpif90
export CC=mpicc
export CXX=mpicxx

PYTHONEXE=/usr/bin/python3.6

cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
         -DMPI_Fortran_COMPILER=${FC} \
         -DMPI_C_COMPILER=${CC} \
         -DMPI_CXX_COMPILER=${CXX} \
         -DPYTHON_EXECUTABLE=${PYTHONEXE} \
         -DMPI=ON \
         -DGA=ON \
         -DOPENMP=ON \
         -DLINALG=MKL \
         -DHDF5=ON \
         -DTOOLS=ON \
         -DFDE=ON \
         -DEFPLIB=ON \
         -DMSYM=ON \
         -DNEVPT2=OFF \
         -DDMRG=OFF \
         -DWFA=ON

make -j${PARALLEL}
make install

mkdir -p ${VERIFYTMP}

export OMP_NUM_THREADS=2
./pymolcas verify --parallel 4 --tmp ${VERIFYTMP}

#make install

Notes

  • Results become incorrect when large number of MPI processes are employed. (Similar problem to NWChem built with OPENIB option?)
    • Switching build option of GA to --with-mpi-pr or  --with-mpi3 doesn't work. Binary does not work properly.