OpenMolcas for LX (2019/6/4)
Webpage
https://gitlab.com/Molcas/OpenMolcasBuild 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.)
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
- DGA: (corresponding to GA in OpenMolcas)