The domain of quantum chemistry needs a library in which the main kernels of Quantum Monte Carlo (QMC) methods are implemented. In the library proposed in this project, we expose the main algorithms in a simple language and provide a standard API and tests to enable the development of high-performance QMCkl implementations taking advantage of modern hardware.
See the source code to read the documentation.
To clone the repository, use:
git clone https://github.com/TREX-CoE/qmckl.git
The simplest way to obtain the source files of QMCkl is to download a source distribution. This particular repository is for maintainers, who write the kernels in org-mode files and produce the source code and the documentation from these files.
./autogen.sh
./configure --prefix=$PWD/_install
make
make check
Obtain a source distribution.
To build the documentation version:
./configure
To build an optimized version with Intel compilers:
./configure \
--with-icc \
--with-ifort \
--enable-hpc \
--with-openmp
To build an optimized version with GCC:
./configure \
CC=gcc \
CFLAGS="-g -O2 -march=native -flto -fno-trapping-math -fno-math-errno -ftree-vectorize" \
FC=gfortran \
FCFLAGS="-g -O2 -march=native -flto -ftree-vectorize" \
--enable-hpc \
--with-openmp
Then, compile with:
make -j
make -j check
sudo make install
sudo make installcheck
Since Verificarlo should not be a dependency of QMCkl, all Verificarlo functions are called only when the support is explicitely enabled (and ignored by the preprocessor otherwise). To enable vfc_ci support, the library should be configured with the following command :
./configure \
CC="verificarlo-f" \
FC="verificarlo-f" \
--prefix=$PWD/_install \
--enable-vfc_ci \
--host=x86_64 \
where CC and FC are set to verificarlo-f, and support is explicitely enabled with the --enable-vfc_ci flag. Configuring the library with the "standard" command will cause all calls to Verificarlo related functions to be ignored, and the library will be built as usual.
