PSI4 1.5(2022/4/13 CheMPS2 有効化バージョンについての記述を追加)

ウェブページ
https://psicode.org/

バージョン
1.5

ビルド環境
Intel Parallel Studio 2020 update2 (compilers and MKL)
GCC 8.3.1 (devtoolset-8)
cmake 3.16.3(Python 3.9.10 (miniforge3))

ビルドに必要なファイル
psi4.tar.gz
git checkout e9f4d6d (version 1.5)後に tar.gz 化したもの(以下の手順中でもいくつか取得)

ビルド手順
miniforge3 (概略)
RDKit 等、直接は関係ないパッケージもいくつか導入しています。
$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh$ sh ./Miniforge3-Linux-x86_64.sh...
[/home/users/***/miniforge3] >>> /local/apl/lx/psi4-15/miniforge3...
$ /local/apl/lx/psi4-15/miniforge3/bin/conda shell.bash hook > /local/apl/lx/psi4-15/conda_init.sh$ /local/apl/lx/psi4-15/miniforge3/bin/conda shell.csh hook > /local/apl/lx/psi4-15/conda_init.csh$ . /local/apl/lx/psi4-15/conda_init.sh(base) $ conda update conda(base) $ conda update --all(base) $ conda install pint pybind11 msgpack-python numpy networkx pydantic pytest pytest-xdist(base) $ conda install matplotlib psutil py-cpuinfo rdkit

psi4
上記 miniforge を先に導入した上で実行します。
#!/bin/sh# assume miniforge for psi4 was already installed
VERSION=1.5
INSTALL_PREFIX=/local/apl/lx/psi4-15
BASEDIR=/home/users/${USER}/Software/PSI4/1.5
TARBALL=${BASEDIR}/psi4.tar.gz
WORKDIR=/work/users/${USER}/PARALLEL=12#--------------------------------------------------------------------umask 0022
export LANG=C
ulimit -s unlimited

module purge
module load scl/devtoolset-8
module load intel_parallelstudio/2020update2
module load cmake/3.16.3
cd ${WORKDIR}
if [ -d psi4 ]; thenmv psi4 psi4-erase
rm -rf psi4-erase &fi# load miniforge3 env. ${INSTALL_PREFIX}/conda_init.shtar zxf ${TARBALL}
cd psi4
mkdir build
cd build
cmake .. \-DMAX_AM_ERI=7 \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DBUILD_SHARED_LIBS=ON \-DCMAKE_CXX_COMPILER=icpc \-DCMAKE_C_COMPILER=icc \-DCMAKE_Fortran_COMPILER=ifort
make -j ${PARALLEL}
ctest -j${PARALLEL}
make installメモ
テストは全てパスしています。
ライセンスの関係上、anaconda のかわりに miniforge を用いて環境を作っています。
intel + gcc9/10 の組み合わせではテストで大量のエラー
直接関係があるのかわからない Perl に関係したエラーなども有り。詳細な調査は行っていない(Software Collection の GCC を使ったことが原因かもしれない)
intel2018 + gcc8 でもある程度のエラーが発生。試した範囲内では、intel2020 + gcc8 だけが正常に動作Linux 版の配布バイナリに合わせて MAX_AM_ERI=7 でビルド。
スレッド並列時には psi4 -n (スレッド数) のように指定の必要有り。OMP_NUM_THREADS/MKL_NUM_THREADSは無視される。
python スクリプト中では psi4.core.set_num_threads で指定可能

CheMPS2 有効化バージョンに関するメモ
conda については上記のバージョンで使ったものを流用

CheMPS2 の導入$ git clone https://github.com/SebWouters/CheMPS2.git$ cd CheMPS2/$ git checkout refs/tags/v1.8.12$ module purge$ module load scl/devtoolset-8$ module load intel_parallelstudio/2020update2$ module load cmake/3.16.3$ mkdir build$ cd build/$ CXX=icpc cmake .. -DMKL=ON -DCMAKE_INSTALL_PREFIX=/local/apl/lx/psi4-15-chemps2/chemps2-1.8.12 -DWITH_MPI=OFF$ make$ make install$ make test
$ cd CheMPS2/

$ cp ../../tests/test14.input .
$ sed -i "s/\/path\/to/..\/..\/tests\/matrixelements/" test14.input$ ./chemps2 --file=test14.input

PSI4#!/bin/sh# assume miniforge for psi4 was already installed
VERSION=1.5
INSTALL_PREFIX=/local/apl/lx/psi4-15-chemps2
CHEMPS2DIR=/local/apl/lx/psi4-15-chemps2
BASEDIR=/home/users/${USER}/Software/PSI4/1.5
TARBALL=${BASEDIR}/psi4.tar.gz
WORKDIR=/work/users/${USER}PARALLEL=12#--------------------------------------------------------------------umask 0022export LANG=Culimit -s unlimited
module purge
module load scl/devtoolset-8
module load intel_parallelstudio/2020update2
module load cmake/3.16.3
cd ${WORKDIR}
if [ -d psi4 ]; then
mv psi4 psi4-erase
rm -rf psi4-erase &fi# load miniforge3 env. ${INSTALL_PREFIX}/conda_init.shtar zxf ${TARBALL}
cd psi4
mkdir build
cd build
cmake .. \-DENABLE_CheMPS2=ON \-DCheMPS2_DIR=${CHEMPS2DIR} \-DMAX_AM_ERI=7 \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DBUILD_SHARED_LIBS=ON \-DCMAKE_CXX_COMPILER=icpc \-DCMAKE_C_COMPILER=icc \-DCMAKE_Fortran_COMPILER=ifort
make -j ${PARALLEL}
make install
ctest -j${PARALLEL}