PSI4 1.7
ウェブページ
バージョン
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 関連でエラーが出たため回避。