Go to file
Aurélien Delval 145f4fba40
Add the qmckl_probes interface (#2)
* comment

* Update distance test code

The distance test has been updated to the latest version, with a first attempt at using vfc_probes inside it

* Functional implementation of vfc_probes in the distance tests

This commit has the first functional vfc_ci tests. Verificarlo tests
should be written over the existing tests, and they can be enabled with
the following configure command:

QMCKL_DEVEL=1 ./configure --prefix=$PWD/_install --enable-maintainer-mode --enable-vfc_ci CC="verificarlo-f -Mpreprocess -D VFC_CI" FC="verificarlo-f -Mpreprocess -D VFC_CI" --host=x86_64

The --enable-vfc_ci flag will trigger the linking of the vfc_ci
library. Moreover, as of now, the "-Mpreprocess" and "-D VFC_CI" flags
have to be specified directly here. There is probably an appropriate
macro to place those flags into but I couldn't find it yet, and could
only manage to build the tests this way.

When the VFC_CI preprocessor is defined, somme additional code to
register and export the test probes can be executed (see
qmckl_distance.org).

As of now, the tests are built as normal, even though they are expected
to fail :

make all
make check

From there, the test_qmckl_distance (and potentially the others)
executable can be called at will. This will typically be done
automatically by vfc_ci, but one could manually execute the executable
by defining the following env variables :

VFC_PROBES_OUTPUT="test.csv" VFC_BACKENDS="libinterflop_ieee.so"

depending on the export file and the Verificarlo backend to be used.

The next steps will be to define more tests such as this one, and to
integrate them into a Verificarlo CI workflow (by writing a
vfc_tests_config.json file and using the automatic CI setup
command).

* Error in FOrtran interface fixed

* Added missing Fortran interfaces

* Modify distance test and install process integration

All probes are now ignored using only the preprocessor (instead
of checking for a facultative argument) in the distance test.
Moreover,preprocessing can now be enabled correctly using FCFLAGS
(the issue seemed to come from the order of the arguments passed
to gfortran/verificarlo-f with the preprocessor arg having to come
first).

* Add vfc_probes to AO tests

vfc_probes have been added to qmckl_ao.org in the same way as
qmckl_distance.org, which means that it can be enabled or disabled at
compile time using the --enable-vfc_ci option.

qmckl_distance.org has been slightly modified with a better indentation,
and configure.ac now adds the "-D VFC_CI" flag to CFLAGS when vfc_ci is
enabled.

* Start work on the vfc tests config file and on a probes wrapper

The goal in the next few commits is to make the integration of
vfc_probes even easier by using a wrapper to vfc_probe dedicated to
qmckl. This will make it easier to create a call to vfc_probe that can be
ignored if VFC_CI is not defined in the preprocessor. Once this is done,
the integration will be completed by trying to create an actual workflow
to automatically build the library and execute CI tests.

* Moved qmckl_probes out of src

As of now, qmckl_probes have been moved to tools, and can be built via a
bash script. This approach seems to make more sense, as this should not
be a part of the library itself, but an additional tool to test it.

* Functional Makefile setup to enable qmckl_probes

The current setup builds qmck_probes by adding it to the main QMckl
libray (by adding it to the libtool sources). The Fortran interface's
module still need to be compiled separately.

TODO : Clean the build setup, improve integration in qmckl_tests and
update tests in qmckl_ao with the new syntax.

* New probes syntax in AO tests

* Clean the probes/Makefile setup

The Fortran module is now built a the same time than the main library.
The commit also adds a few fixes in the tests and probes wrapper.

Co-authored-by: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
2021-07-23 12:01:14 +02:00
.github/workflows Remove MacOS from CI 2021-05-12 23:41:43 +02:00
include Integration of Verificarlo CI tests (#1) 2021-07-07 13:42:42 +02:00
m4 Added configure scripts 2021-05-07 12:47:56 +02:00
man Add doc in dist, and text doc 2021-04-21 12:44:03 +02:00
org Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00
pkgconfig Clean configure 2021-06-03 01:32:50 +02:00
share Integration of Verificarlo CI tests (#1) 2021-07-07 13:42:42 +02:00
src Cleaning 2021-05-12 02:20:39 +02:00
to_be_processed Added a to_be_processes directory 2020-10-31 19:01:26 +01:00
tools Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00
.gitignore Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00
AUTHORS Automake working 2021-05-10 23:56:26 +02:00
COPYING Working on automake 2021-05-11 11:45:49 +02:00
ChangeLog Automake working 2021-05-10 23:56:26 +02:00
INSTALL Automake working 2021-05-10 23:56:26 +02:00
LICENSE Initial commit 2020-10-13 15:08:11 +02:00
Makefile.am Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00
NEWS Automake working 2021-05-10 23:56:26 +02:00
README Working on automake 2021-05-11 11:45:49 +02:00
README.md Update README.md 2021-06-21 11:20:34 +02:00
TODO.org Error handling 2021-03-05 03:45:30 +01:00
autogen.sh Python script to build makefiles 2021-05-12 23:16:09 +02:00
ci_install.sh Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00
configure.ac Integration of Verificarlo CI tests (#1) 2021-07-07 13:42:42 +02:00
vfc_tests_config.json Add the qmckl_probes interface (#2) 2021-07-23 12:01:14 +02:00

README.md

QMCkl: Quantum Monte Carlo Kernel Library

Build Status

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

Installation

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.

For maintainers

./autogen.sh
QMCKL_DEVEL=1 ./configure --prefix=$PWD/_install --enable-silent-rules --enable-maintainer-mode

make
make check

For users

Obtain a source distribution and run

./configure 
make
make check
sudo make install
sudo make installcheck

European flag TREX: Targeting Real Chemical Accuracy at the Exascale project has received funding from the European Unions Horizon 2020 - Research and Innovation program - under grant agreement no. 952165. The content of this document does not represent the opinion of the European Union, and the European Union is not responsible for any use that might be made of such content.