OpenMolcas v20.10
Webpagehttps://gitlab.com/Molcas/OpenMolcas

Versionv20.10

Build EnvironmentIntel Compiler 19.1.2 (intel parallel studio 2020 update 2)Intel MKL 2020.0.2 (intel parallel studio 2020 update 2)
OpenMPI 3.1.0
cmake 3.16.3

Files Required
openmolcas-v20.10.tar.gz (git clone and then git checkout)ga-5.8.zip (Global Arrays)

Build Procedure
Global Arrays-5.8#!/bin/sh
GA_VERSION=5.8
GA_DIR=/home/users/${USER}/Software/GlobalArrays/${GA_VERSION}
GA_SOURCE=${GA_DIR}/ga-${GA_VERSION}.zip
WORKDIR=/work/users/${USER}INSTALLDIR=/local/apl/lx/openmolcas20.10/ga-5.8#--------------------------------------------------------------------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/19.1.2
module load mkl/2020.0.2
module load mpi/openmpi/3.1.0/intel20#tar zxf ${GA_SOURCE}
unzip ${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 -ip -w -xHost"
export GA_COPT="-O3 -ip -w -xHost"
export GA_CXXOPT="-O3 -ip -w -xHost"sh autogen.sh./configure --with-blas8=-mkl \--with-scalapack8=-mkl \--enable-i8 \--prefix=${INSTALLDIR}
make -j ${PARALLEL}
make checkmake install
cp config.log ${INSTALLDIR}OpenMolcas-20.10#!/bin/sh
VERSION=v20.10
SOURCEDIR=/home/users/${USER}/Software/OpenMolcas/${VERSION}TARBALL=${SOURCEDIR}/OpenMolcas-${VERSION}.tar.gz
INSTALL_DIR=/local/apl/lx/openmolcas20.10
GAROOT=${INSTALL_DIR}/ga-5.8
PARALLEL=8
WORKDIR=/work/users/${USER}
export GAROOT#-------------------------------------------------------umask 0022
ulimit -s unlimited
export LANG=
export LC_ALL=C
module purge
module load intel/19.1.2
module load mkl/2020.0.2
module load mpi/openmpi/3.1.0/intel20
module load cmake/3.16.3
cd $WORKDIR
if [ -d OpenMolcas-${VERSION} ]; then
mv OpenMolcas-${VERSION} OpenMolcas_tmp
rm -rf OpenMolcas_tmp
fitar zxf ${TARBALL}
cd OpenMolcas-${VERSION}#git submodule update --init External/NECI
git submodule update --init External/libmsym
git submodule update --init External/efp# simply ridiculous.
uniq src/integral_util/drvefp.f src/integral_util/drvefp.f.tmp
mv -f src/integral_util/drvefp.f.tmp src/integral_util/drvefp.f
mkdir build && cd build
export FC=mpif90
export CC=mpicc

export CXX=mpicxx
cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \-DMPI_Fortran_COMPILER=${FC} \-DMPI_C_COMPILER=${CC} \-DMPI_CXX_COMPILER=${CXX} \-DMPI=ON \-DGA=ON \-DOPENMP=ON \-DLINALG=MKL \-DHDF5=ON \-DTOOLS=ON \-DFDE=ON \-DEFPLIB=ON \-DNECI=OFF \-DMSYM=ON \-DNEVPT2=OFF \-DDMRG=OFF
make -j${PARALLEL}
export MOLCAS_NPROCS=1
export OMP_NUM_THREADS=1
pymolcas verify
export MOLCAS_NPROCS=2
export OMP_NUM_THREADS=2
pymolcas verify
make install

Test Result
Tests of Global Arrays are passed without problems. OpenMolcas test results are available under/local/apl/lx/openmolcas20.10/test_results directory.

Serial version
Only additional:409 failed.
# of iteration differs from the reference; may not be a serious problem.

Parallel version
standard:076 (scf) = numerical error (minor?)additional
139 (scf) = input error
221 (alaska) = numerical error (minor?)
259 (scf) = memory error
308 (cht3) = memory error
309 (cht3) = memory error
310 (alaska) = parallel not supported
330 (alaska) = parallel not supported
339 (alaska) = parallel not supported
358 (alaska) = numerical error (minor?)
405 (rasscf) = input error
409 (alaska) = numerical error (NOT minor one)801 (cht3) = memory error
804 (scf) = input error
806 (mbpt2) = numerical error (minor?)
809 (alaska) = parallel not supported
810 (alaska) = parallel not supported
811 (mbpt2) = numerical error (minor?)812 (mbpt2) = numerical error (minor?)
814 (alaska) = numerical error (minor?)
820 (scf) = large numerical error only on "E_CNO". Others were OK.
821 (scf) = internal error
822 (alaska) = parallel not supported
852 (rasscf) = input error
863 (alaska) = numerical error (minor?)

864 (alaska) = numerical error (minor?)
898 (rasscf) = internal error

Notes
If EFPLIB enabled, duplicated variables declaration in "drvefp.f" shall be dealt with.
Do not add chemps2 support this time; it does not seem to be maintained.
https://gitlab.com/Molcas/OpenMolcas/-/issues/213
QCMaquis didn't work with Intel compiler. Exactly the same reason as the following issue.
https://gitlab.com/Molcas/OpenMolcas/-/issues/125
gcc-8, gcc-9 failed to build QCMaquis.
We thus avoided QCMaquis in this build.
(NOTE: the license of QCMaquis may not be problem; the non-GPL binary executable was called as anexternal program.)
Intelmpi 19-20 failed on GA.
Intel 17-20 + intel mpi 2017/2018 failed on test000 (caspt2). (001, 002 were passed)
gcc6 + intelmpi 2018 build can pass test000.
(patch to chovec_io and other files are required in intelmpi cases. (integer*4 => integer*8))
Openmpi + intel18 or former needs special setting of "PSM2_MQ_RECVREQS_MAX" environment variable (maybe
Omni-Path related; we employ 2097152 this time). Otherwise, perf_strided test of GA failed.
(Intel20 can pass the test without additional setting; libpsm2 version problem?)
The performance of this build might be slightly worse than the previous build (2019/6/4 ver)?
(We only did some short (< 10 minutes) benchmark tests, though.)
No significant slowdown is observed for core computations (such as scf, rasscf).