Molpro 2024.1.0
ウェブページ
バージョン
2024.1.0
ビルド環境
- GCC 12.1.1 (gcc-toolset-12)
- Intel MPI 2021.11 / Open MPI 4.1.6
- Eigen 3.4.0
- MKL 2024.0
ビルドに必要なファイル
- molpro-2024.1.0.tar.gz
- ga-5.8.2.tar.gz
- work.patch
- patch-argos-binput.F
- patch-cic-ItfFortranInt.h
- patch-common_modules-common_cconf1
- 大きな CI 計算のためのパラメータの変更と、一時ディレクトリのデフォルトの場所を変更しています。
- パッチファイルは /apl/molpro/2024.1.0/patches 以下に置いています。
- token
ビルド手順
#!/bin/sh
GA_VERSION=5.8.2
GA_ARCHIVE=/home/users/${USER}/Software/GlobalArrays/${GA_VERSION}/ga-${GA_VERSION}.tar.gz
MOLPRO_VERSION=2024.1.0
MOLPRO_DIRNAME=molpro-${MOLPRO_VERSION}
PARALLEL=12
BASEDIR=/home/users/${USER}/Software/Molpro/${MOLPRO_VERSION}
MOLPRO_TARBALL=${BASEDIR}/${MOLPRO_DIRNAME}.tar.gz
PATCH0=${BASEDIR}/work.patch
PATCH1=${BASEDIR}/patch-argos-binput.F
PATCH2=${BASEDIR}/patch-cic-ItfFortranInt.h
PATCH3=${BASEDIR}/patch-common_modules-common_cconf1
TOKEN=${BASEDIR}/token
WORKDIR=/gwork/users/${USER}
GA_INSTALLDIR=${WORKDIR}/ga-temporary
INSTALLDIR=/apl/molpro/${MOLPRO_VERSION}
#------------------------------------------
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
if [ -d ga-temporary ]; then
mv ga-temporary ga_tmp_tmp
rm -rf ga_tmp_tmp &
fi
if [ -d ${MOLPRO_DIRNAME} ]; then
mv ${MOLPRO_DIRNAME} molpro_tmp
rm -rf molpro_tmp &
fi
module -s purge
module -s load gcc-toolset/12
module -s load intelmpi/2021.11
#module -s load openmpi/4.1.6/gcc12
module -s load eigen/3.4.0
tar zxf ${GA_ARCHIVE}
cd ga-${GA_VERSION}
export CFLAGS="-mpc80"
export FFLAGS="-mpc80"
export FCFLAGS="-mpc80"
export CXXFLAGS="-mpc80"
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"
./autogen.sh
./configure --enable-i8 \
--with-mpi-pr \
--prefix=${GA_INSTALLDIR}
make -j ${PARALLEL}
make check
make install
# mkl for molpro
module -s load mkl/2024.0
cd ${WORKDIR}
tar zxf ${MOLPRO_TARBALL}
cd ${MOLPRO_DIRNAME}
patch -p0 < ${PATCH0}
patch -p0 < ${PATCH1}
patch -p0 < ${PATCH2}
patch -p0 < ${PATCH3}
export PATH="${GA_INSTALLDIR}/bin:$PATH" # where ga-config exists
CPPFLAGS="-I${GA_INSTALLDIR}/include" \
LDFLAGS="-L${GA_INSTALLDIR}/lib64" \
./configure --prefix=${INSTALLDIR} \
--enable-slater
make -j ${PARALLEL}
cp $TOKEN lib/.token
make tuning
MOLPRO_OPTIONS="" make quicktest
MOLPRO_OPTIONS="-n2" make test
make install
cp -a testjobs ${INSTALLDIR}/molpro*
cp -a bench ${INSTALLDIR}/molpro*
テスト結果
h2o_rvci_dip のテストで失敗。RVCI_DIP(4:6)の値が問題と思われる。
SETTING RVCI_TEST(1) = 140.24404946 CM-1
SETTING RVCI_TEST(2) = 2040.72148410 CM-1
SETTING RVCI_TEST(3) = 4309.43539874 CM-1
SETTING RVCI_DIP(1) = 6.6023777D-20
SETTING RVCI_DIP(2) = 6.9439373D-20
SETTING RVCI_DIP(3) = 5.6819299D-19
SETTING RVCI_DIP(4) = 9.6702224D-20
SETTING RVCI_DIP(5) = 1.2687290D-18
SETTING RVCI_DIP(6) = 4.3975422D-19
SETTING RVCI_DIP(7) = 4.5351150D-20
SETTING RVCI_DIP(8) = 3.5013711D-19
SETTING RVCI_DIP(9) = 1.3565481D-20
RVCI_TEST(1:3) = [ 140.24404946 2040.72148410 4309.43539874] CM-1
SETTING RVCIFREQ_REF(1)= 140.24000000
SETTING RVCIFREQ_REF(2)= 2040.72000000
SETTING RVCIFREQ_REF(3)= 4309.44000000
SETTING RVCIDIP_REF(1) = 6.6023777D-20
SETTING RVCIDIP_REF(2) = 6.9439373D-20
SETTING RVCIDIP_REF(3) = 5.6819299D-19
SETTING RVCIDIP_REF(4) = 3.2234075D-20
SETTING RVCIDIP_REF(5) = 4.2290966D-19
SETTING RVCIDIP_REF(6) = 1.3192627D-18
SETTING RVCIDIP_REF(7) = 4.5351150D-20
SETTING RVCIDIP_REF(8) = 3.5013711D-19
SETTING RVCIDIP_REF(9) = 1.3565481D-20
SETTING DRVCI = 0.00460126 CM-1
SETTING DRVCI_DIP = 2.00000008
Open MPI, Intel MPI のどちらでも同じエラーが発生。
非並列にした場合や MKL のかわりに OpenBLAS を使った場合でもエラーを回避できず。gcc11 に変えても同様。
メモ
- (上記手順で intelmpi のかわりに openmpi の行を有効にすればそのまま利用できます。)
- Intel MPI を使うとシングルノードのデフォルト設定である disk option で今のところ問題が発生していない
- Open MPI の場合には disk option を使った場合にフリーズする場合がある。
- (disk option を使った場合計算時間が短くなることがあるが、逆に遅くなる場合もある。)
- Open MPI を使った時の方が平均的に速度が出るように見える。一方で disk option 時にフリーズの危険がある。そのため、インテル MPI 版を標準のバージョンとしている。
- Eigen 3.3 ではビルドできなかったため、Eigen 3.4.0 を利用
- mkl+eigen 3.3 の場合は configure でエラー、openblas+eigen 3.3 の場合はビルド中にエラー