OpenMolcas v22.10 (HPE)
Webpage
https://gitlab.com/Molcas/OpenMolcas
Version
v22.10
Build Environment
- GCC 8.5.0
- Intel MKL 2022.2.1
- HPC-X 2.11 (Open MPI 4.1.4)
Files Required
- OpenMolcas-v22.10.tar.gz (git clone したディレクトリを tar.gz 化)
- (OpenMolcas v21.10 のビルドに使った GlobalArrays を再利用)
Build Procedure
#!/bin/sh
VERSION=v22.10
SOURCEDIR=/home/users/${USER}/Software/OpenMolcas/${VERSION}
TARBALL=${SOURCEDIR}/OpenMolcas-${VERSION}.tar.gz
INSTALL_DIR=/apl/openmolcas/${VERSION}
GAROOT=${INSTALL_DIR}/ga-5.8.2
PARALLEL=8
WORKDIR=/gwork/users/${USER}
VERIFYTMP=/gwork/users/${USER}/openmolcas-tmp-v22.10
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-${VERSION} ]; then
mv OpenMolcas-${VERSION} OpenMolcas_tmp
rm -rf OpenMolcas_tmp
fi
tar zxf ${TARBALL}
cd OpenMolcas-${VERSION}
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
PYTHONINC=/usr/include/python3.6
PYTHONLIB=/usr/lib64/python3.6
cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DMPI_Fortran_COMPILER=${FC} \
-DMPI_C_COMPILER=${CC} \
-DMPI_CXX_COMPILER=${CXX} \
-DPython_EXECUTABLE=${PYTHONEXE} \
-DPython_INCLUDE_DIR=${PYTHONINC} \
-DPython_LIBRARY=${PYTHONLIB} \
-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
メモ
- v21.10 と同様にMPI 並列数を上げると計算結果がおかしくなる場合がある(NWChem をビルドする時については GA を OPENIB でビルドした時と似ている?)