PSI4 1.7

ウェブページ

https://psicode.org/

バージョン

1.7

ビルド環境

  • Intel oneAPI Compiler Classic 2022.2.1
  • Intel MKL 2022.2.1
  • boost 1.81.0
  • (Python 3.10.8 (miniforge3))

ビルドに必要なファイル

  • psi4.tar.gz
    • git checkout refs/tags/v1.7 後に tarball 化したもの
  • libint-2.7.2.tar.gz
  • (以下の手順中でもいくつか取得)
  • (CheMPS2 については git で取得)

ビルド手順

conda 環境(miniforge)

詳細手順を紛失。1.5 のビルド時より rdkit を除外して scipy を追加しているとのメモ。

CheMPS2

詳細手順を紛失。1.5 のビルド時と同じバージョンを同じ手順でビルドしたとのメモ。
oneAPI 環境で、インテルコンパイラと MKL を使用。

libint-2.7.2 (概略)

$ . ~/intel/oneapi/compiler/2022.2.1/env/vars.sh
$ module load boost/1.81.0
$ tar zxf libint-2.7.2.tar.gz
$ ./autogen.sh
$ CXX=icpc CC=icc ./configure \
    --with-cartgauss-ordering=standard \
    --with-shgauss-ordering=gaussian \
    --with-shell-set=standard \
    --enable-1body=2 \
    --with-max-am=7,7,5 \
    --enable-eri=2 \
    --enable-eri2=2 \
    --enable-eri3=2 \
    --with-eri-max-am=7,7,4 \
    --with-eri2-max-am=7,7,5 \
    --with-eri3-max-am=7,7,5 \
    --disable-eri2-pure-sh \
    --disable-eri3-pure-sh
$ make -j36 export

(作成された libint-2.7.2.tgz を別の場所に移してさらに処理)

$ tar zxf libint-2.7.2.tgz
$ . /apl/psi4/1.7/conda_init.sh
$ cd libint-2.7.2/
$ CXX=icpc CC=icc cmake \
    -DPYTHON_EXECUTABLE=$(which python3) \
    -DCMAKE_INSTALL_PREFIX=/apl/psi4/1.7/libint-2.7.2 \
    -DLIBINT2_PYTHON=ON \
    -DBoost_INCLUDE_DIR=/apl/boost/1.81.0/include \
    -DLIBINT2_SHGAUSS_ORDERING=gaussian \
    .
$ make -j36
$ make install

psi4

#!/bin/sh

# assume miniforge for psi4 was already installed

VERSION=1.7
INSTALL_PREFIX=/apl/psi4/1.7
CHEMPS2DIR=/apl/psi4/1.7

BASEDIR=/home/users/${USER}/Software/PSI4/1.7
TARBALL=${BASEDIR}/psi4.tar.gz

WORKDIR=/gwork/users/${USER}
PARALLEL=12

#---------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited

module -s purge
. ~/intel/oneapi/compiler/2022.2.1/env/vars.sh
module -s load mkl/2022.2.1
module -s boost/1.81.0

cd ${WORKDIR}
if [ -d psi4 ]; then
  mv psi4 psi4-erase
  rm -rf psi4-erase &
fi

# load miniforge3 env
. ${INSTALL_PREFIX}/conda_init.sh

tar zxf ${TARBALL}
cd psi4

sed -i -e "s/xHost/march=core-avx2/" cmake/xhost.cmake

mkdir build
cd build
cmake .. \
    -DENABLE_CheMPS2=ON \
    -DCheMPS2_DIR=${CHEMPS2DIR} \
    -DMAX_AM_ERI=7 \
    -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
    -DCMAKE_PREFIX_PATH="/apl/psi4/1.7/libint-2.7.2" \
    -DLibint2_DIR="/apl/psi4/1.7/libint-2.7.2" \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_CXX_COMPILER=icpc \
    -DCMAKE_C_COMPILER=icc \
    -DCMAKE_Fortran_COMPILER=ifort
make -j ${PARALLEL}

make install

ctest -j${PARALLEL}

メモ

  • psi4 のテストは全て通過。
  • libint は psi4 による自動ビルドがどうしても通らず。(Eigen 等のエラー)
    • PSI4 の external/upstream/libint2/CMakeLists.txt 中の指示に従って libint をビルド。
    • ビルド手順が正しいかどうかが全くわからないが、PSI4 のテストが全て通過したため、正しくビルドできていると判断。
    • 不適切なオプションで libint をビルドした場合は PSI4 の多くのテストでエラーとなる。
  • GCC でビルドすると OpenMP 関連でエラーが出たため回避。