Set WORK_TOP
to where you will install the files.
Please compile required libraries in the following sequence.
Notice: If possible, use ICC 17 instead of ICC 18 to compile Simint. It seems that there are some problems with Simint compiled by ICC 18. ICC 19 works well.
# Build Simint source code generator
cd $WORK_TOP
git clone https://github.com/simint-chem/simint-generator.git
cd simint-generator
mkdir build && cd build
CC=icc CXX=icpc cmake ../
make -j16
cd ..
# Generate Simint source code (requires Python3)
# Run ./create.py --help to see the details of the parameters
./create.py -g build/generator/ostei -l 5 -p 4 -d 0 -ve 4 -vg 5 -he 4 -hg 5 simint
mv simint ../
# Compile Simint
cd ../simint # Should at $WORK_TOP/simint
# See the README file in Simint directory to see which SIMINT_VECTOR variable you should use
# Commonly used SIMINT_VECTOR: commonavx512, avx2
mkdir build-avx512
CC=icc CXX=icpc cmake ../ -DSIMINT_VECTOR=commonavx512 -DCMAKE_INSTALL_PREFIX=./install
make -j16 install
cd $WORK_TOP
git clone https://github.com/gtfock-chem/libcint.git
cd libcint
# Adjust the Makefile according to the directory you compiled Simint and your system
# No need to modify any ERD_* variables since we do not use OptERD now
make libcint.a
The following commands will use ICC and Intel MPI to compile GTMatrix. You can use other compilers and MPI environments.
cd $WORK_TOP
git clone https://github.com/gtfock-chem/GTMatrix.git
cd GTMatrix
make
On Cori, replace MPICC=mpiicc
with MPICC=cc
in Makefile
.
Clone GTFock from GitHub:
cd $WORK_TOP
git clone https://github.com/gtfock-chem/gtfock.git
cd gtfock
Modify make.in
according to the configuration of your system and the path of required libraries. Make sure that the compiler and MPI environment are the same as compiling GTMatrix.
You can use ICC + Intel MPI to compile GTFock and GTFock on Cori, but it is likely that you cannot run the program on multiple nodes.
To run GTFock on Cori using multiple nodes, you should use Cray compiler wrapper, Cray MPI and Cray SciLib (providing ScaLAPACK and BLASC). Cray compiler wrapper, Cray SciLib and Cray MPI are loaded by default. Modify the make.in
before compile GTFock on Cori.
The gtfock libraries will be installed in $WORK_TOP/gtfock/install/
, The example SCF code can be found in $WORK_TOP/gtfock/pscf/
.
Use the following command to run the example SCF program:
mpirun -np <nprocs> $WORK_TOP/gtfock/pscf/scf <basis> <xyz> \
<nprow> <npcol> <np2> <ntasks> <niters>
# Example:
# mpirun -np 8 pscf/scf data/cc-pvdz/cc-pvdz.gbs data/alkane/alkane_62.xyz 4 2 2 5 10
Parameters:
nprocs
: Number of MPI processesbasis
: Basis set filexyz
: xyz file for chemcial systemnprow
: Number of MPI processes per rownpcol
: Number of MPI processes per colnp2
: Number of MPI processes per dimension (of cube) for purificationntasks
: Each MPI process hasntasks
xntasks
tasksniters
: Max number of SCF iterations
Note:
nprow
xnpcol
must equalsnprocs
np2
xnp2
xnp2
should be close tonprocs
but must not be larger than nprocs- suggested values for
ntasks
: 3, 4, 5