PSI4 1.5

(Apr 13, 2022) Added description about CheMPS2-enabled version.

Webpage

https://psicode.org/

Version

1.5

Build Environment

  • Intel Parallel Studio 2020 update2 (compilers and MKL)
  • GCC 8.3.1 (devtoolset-8)
  • cmake 3.16.3
  • (Python 3.9.10 (miniforge3))

Files Required

  • psi4.tar.gz
    • "git checkout e9f4d6d" (version 1.5) and then manually tar.zipped
  • (some packages were downloaded in the installation procedure below)

Build Procedure

miniforge3 (brief)

Some unrelated packages such as RDKit are also installed.

$ 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 (see above) must be installed before this.

#!/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 ]; then
  mv psi4 psi4-erase
  rm -rf psi4-erase &
fi

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

tar 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

Notes

  • all the tests has passed without errors.
  • miniforge was employed instead of anaconda due to license issue.
  • intel + gcc9/10 version failed on many of tests.
    • The reason is not very much clear. (not investigated carefully)
    • Some of errors are concerned with perl... why?
    • this can be specific to gcc9/10 of devtoolset?
  • intel2018 + gcc8 version failed on some (not many) of tests.
    • probably, both of gcc and intel versions are important.
  • MAX_AM_ERI=7 was employed; this setting is also used in Linux binary distribution version.
  • To do parallel runs, you should specify number of threads like "psi4 -n (number of threads)". It is to be noted that psi4 disregards OMP_NUM_THREADS/MKL_NUM_THREADS.
    • In python script, you can set number of threads with psi4.core.set_num_threads function.

 

Notes about CheMPS2 enabled version

miniforge env described above was used for this version (via symlinks).

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 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 ]; then
  mv psi4 psi4-erase
  rm -rf psi4-erase &
fi

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

tar 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}