OpenMolcas for LX (2019/6/4)

Webpage

https://gitlab.com/Molcas/OpenMolcas

Build Environment

  • Intel Parallel Studio 2018update4
  • cmake 3.8.2

Files Required

  • openmolcas (latest version on 2019/6/4)
  • chemps2 (latest version on 2019/6/5)
  • hdf5-1.10.5.tar.bz2
  • ga-5.7.tar.gz (Global Arrays)

Build Procedure

hdf5 (only for this openmolcas version)

#!/bin/sh
tar jxf hdf5-1.10.5.tar.bz2
cd hdf5-1.10.5
# --enable-fortran2003 might be simply ignored
./configure --prefix=/local/apl/lx/openmolcas20190604/hdf5-1.10.5 --enable-fortran --enable-cxx --enable-fortran2003
make -j8
make check
make install

global arrays (only for this openmolcas version)

#!/bin/sh

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

WORKDIR=/work/users/${USER}
INSTALLDIR=/local/apl/lx/openmolcas20190604/ga-5.7

#---------------------------------------------------------------------
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 intel_parallelstudio/2018update4

tar zxf ${GA_SOURCE}
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=-mkl \
            --with-scalapack8=-mkl \
            --enable-i8 \
            --prefix=${INSTALLDIR}
            ###--with-ofi \

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

chemps2

#!/bin/sh

VERSION=20190605 # date instaed of version

SOURCEDIR=/home/users/qf7/Software/CheMPS2
TARBALL=${SOURCEDIR}/chemps2.${VERSION}.tar.gz

WORKDIR=/work/users/${USER}
INSTALL_DIR=/local/apl/lx/openmolcas20190604/chemps2
#-----------------------------------------------------------
umask 0022

module purge
module load intel_parallelstudio/2018update4
module load cmake/3.8.2

cd $WORKDIR
if [ -d chemps2.${VERSION} ]; then
  mv chemps2.${VERSION} chemps2_tmp
  rm -rf chemps2_tmp &
fi

tar zxf ${TARBALL}
cd chemps2.${VERSION}
mkdir build && cd build
CXX=mpiicpc cmake .. -DMKL=ON \
                     -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
                     -DWITH_MPI=OFF
make -j8
make test
make install

openmolcas

#!/bin/sh

VERSION=20190604 # date
SOURCEDIR=/home/users/qf7/Software/OpenMolcas
TARBALL=${SOURCEDIR}/OpenMolcas.${VERSION}.tar.gz

INSTALL_DIR=/local/apl/lx/openmolcas20190604
GAROOT=${INSTALL_DIR}/ga-5.7
CHEMPS2_DIR=${INSTALL_DIR}/chemps2/bin
PARALLEL=8

WORKDIR=/work/users/${USER}

export GAROOT
export MOLCAS_NPROCS=2
export OMP_NUM_THREADS=2
#--------------------------------------------------------
umask 0022
ulimit -s unlimited

export LANG=
export LC_ALL=C

module purge
module load intel_parallelstudio/2018update4
module load cmake/3.8.2

export HDF5_ROOT="/local/apl/lx/openmolcas20190604/hdf5"

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

tar zxf ${TARBALL}
cd OpenMolcas.${VERSION}
#git submodule update --init External/NECI
git submodule update --init External/grid_it
git submodule update --init External/libmsym

sed -i -e 's/HDF5 COMPONENTS C/HDF5 COMPONENTS C Fortran/' \
       -e 's/find_library(HDF5_Fortran/#find_library(HDF5_Fortran/' \
    CMakeLists.txt

mkdir build && cd build

export FC=mpiifort
export CC=mpiicc
export CXX=mpiicpc

cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
         -DMPI_Fortran_COMPILER=mpiifort \
         -DMPI_C_COMPILER=mpiicc \
         -DMPI_CXX_COMPILER=mpiicpc \
         -DMPI=ON \
         -DGA=ON \
         -DOPENMP=ON \
         -DLINALG=MKL \
         -DHDF5=ON \
         -DTOOLS=ON \
         -DFDE=ON \
         -DGRID_IT=ON \
         -DNECI=OFF \
         -DMSYM=ON \
         -DCHEMPS2=ON \
         -DCHEMPS2_DIR=${CHEMPS2_DIR}
make -j${PARALLEL}
pymolcas verify
make install

Tests

(All the tests other than OpenMolcas are passed.)
OpenMolcas test results can be found at /local/apl/lx/openmolcas20190604/test_results .
  • i18_impi_par: tests with 2-MPI procs & 2 OMP threads
  • i18_impi_ser: serial test
  • 850_sample, 851_sample: CheMPS2 tests. (CheMPS2 PATH setting was incorrect during the serial test above.)
Serial versions didn't experience errors in "standard" and "additional" tests.
Parallel version met some numerical errors in "additional" tests and some of "additional" tests couldn't work with parallel (but test script claimed they are failed). Test 852 (in "additional" section) failed to run without clear reason.

Notes

  • Module (environment modules) name is openmolcas/20190604 .
  • Samples can be found under /local/apl/lx/openmolcas20190604/samples directory.
  • To deal with python environment of computation nodes, two python packages are placed in the installation directory and the following sentence was added to "pymolcas" script.
    • sys.path.append("/local/apl/lx/openmolcas20190604/python")
  • CheMPS2 is installed under /local/apl/lx/openmolcas20190604/chemps2 directory. If you want to invoke chemps2 from OpenMolcas, PATH must contain /local/apl/lx/openmolcas20190604/chemps2/bin.
    • (See samples. Module will also add chemps2 path when loaded.)
  • Following functions are available for Molcas but not for OpenMolcas.
    • DGA: (corresponding to GA in OpenMolcas)
      • MOLCAS_FIM: environment variable, depends on DGA.
    • CMOCORR, DIMERPERT, EMBQ, FALCON, GEO, MKNEMO, MULA, NEMO