Molpro 2024.1.0
ウェブページ
https://www.molpro.net/

バージョン
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.hpatch-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} ]; thenmv ${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 checkmake 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) =SETTING DRVCISETTING DRVCI_DIP=1.3565481D-20
0.00460126 CM-1

=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 の場合はビルド中にエラー