Commit Graph

71 Commits

Author SHA1 Message Date
Francois Coppens
c0d21dd9af Various 2022-10-02 10:20:11 +02:00
Francois Coppens
9b13f818f0 Small changes in tests. 2021-10-04 09:06:05 +02:00
François Coppens
0bd71c1968
Merge pull request #53 from fmgjcoppens/qmckl_integration
Qmckl integration
2021-09-21 14:48:08 +02:00
Francois Coppens
0614971437 More minor bug fixes 2021-09-21 14:20:41 +02:00
Francois Coppens
c9d1abd29d Fixed minor bug 2021-09-21 13:42:44 +02:00
Francois Coppens
177411f472 Removed binary file. 2021-09-21 12:30:59 +02:00
Francois Coppens
71e7fcc1b3 Added test that uses SMW kernes in QMCkl from Fortran. 2021-09-21 12:30:43 +02:00
Aurélien Delval
7e42a000c4 Update integration of vfc_probes
vfc_probes used to be built along the code in the previous versions.
This has been removed so that the verison used is the one provided
system wide by Verificarlo. Moreover, vfc_test_h5.cpp has been update to
reflect the name changes of vfc_probes functions.
2021-09-02 12:37:22 +02:00
Francois Coppens
3a90248cc1 Cleanup and compiler flags. 2021-07-30 11:51:04 +02:00
Francois Coppens
74bb333de1 - Passing break-down threshold as a function argument
- Renaming kernels to correspond with the ones in QMCkl
- In the qmckl-version of the test program, chaning the way integer data is read from the HDF5 file.
2021-07-29 12:01:26 +02:00
Francois Coppens
6ce2055e59 * Removed dependency on qmckl_threshhold() and the accompanying preprocessor definition.
The break-down threshold now has to be passed explicitly as a function argument.
* Break-down threshold must now be passed on the command line together with the residual threshold.
2021-07-26 17:48:52 +02:00
Francois Coppens
7fb5ead349 Added and tested Woodbury 3x3 kernel to QMCkl.
Residual = wb3 14 9.92936e-07 1.90518e-11
    ok -- cycle 14

    Residual = qmckl_wb3 14 9.92936e-07 1.90518e-11
    ok -- cycle 14.
2021-07-22 11:44:37 +02:00
Francois Coppens
e188871df4 Fixed unsigned int/uint64_t/H5::PredType::STD_U32LE problem in qmckl_test_h5.cpp that caused the segmentation faults due to array indices running out of bounds. Naive Sherman-Morrison and Woodbury 2x2 kernels are working correctly from QMCkl with good accuracy.
Residual = sm1 23 2.665e-07 5.85161e-13
ok -- cycle 23
Residual = qmckl_sm1 23 2.665e-07 5.85161e-13
ok -- cycle 23
Residual = wb2 23 2.665e-07 5.85161e-13
ok -- cycle 23
Residual = qmckl_wb2 23 2.665e-07 5.85161e-13
ok -- cycle 23
2021-07-22 10:45:21 +02:00
Francois Coppens
e314987bb7 Added Woodbury 2x2 to QMCkl test program tests/qmckl_test_h5.cpp. For now it crashes with a segmentation fault when run on a cycle with 2 updates (qmckl_test_h5 wb2 3 3 1e-3 1) . 2021-07-21 17:37:21 +02:00
Francois Coppens
b9cc63cf8c Fixed test so it uses the qmc=chem dataset. Test passes but segfaults on cycles with more than one update. 2021-07-21 16:25:02 +02:00
Pablo Oliveira
0f7d613956 Fix linking problem against libqmckl 2021-07-21 12:24:01 +02:00
Francois Coppens
b7764bb229 Trying to fix linking against QMCkl. 2021-07-21 11:48:32 +02:00
Francois Coppens
8961f78ea2 - Added a new test program tests/qmckl_test_h5.cpp that uses SM1 (qmckl_sherman_morrison_c) from the QMCkl library.
- Added build entry in Makefile for tests/qmckl_test_h5.cpp. #25
2021-07-20 16:58:04 +02:00
Francois Coppens
579bb50dca Added QMCkl as a git submodule in /home/fcoppens/code/Sherman-Morrison/qmckl. #25 2021-07-19 14:33:25 +02:00
Francois Coppens
2ec8fb278c Minor modifications to test programs. 2021-07-17 11:40:59 +02:00
François Coppens
2a39aabaf0 Cleanup 1 2021-07-15 17:56:33 +02:00
François Coppens
fa61b50bb0 - Optimize WB3 by inlining matmuls and simplifying copies
- Occasional code restyling with 'clang-formant --style=LLVM'.
2021-07-12 08:13:58 +02:00
François Coppens
4f0aaa5763 Cosmetics 2021-07-09 16:00:29 +02:00
Francois Coppens
43b996dad9 - Added tests/fnu_test_h5.cpp that takes its input cycle numbers from a file instead of from the command line.
- Suppressed all debug output so as to not polute performance measurements.
2021-07-09 14:30:37 +02:00
Pablo Oliveira
c30967e63d Optimize WB2 by inlining matmuls and simplifying copies 2021-07-08 12:53:50 +02:00
François Coppens
67f5379bea - Moved check on determinants in Woodbury kernels before inversion of B that was there by mistake.
- Split SM2 into SM2 and SM2star so that keeps all updates for later when used in combination with the Woodbury kernels to improve the numerical accuracy to the same level as that of SM2.
2021-07-07 12:06:31 +02:00
François Coppens
f6f8746bef Optimised matrix multiplication with V. 2021-07-01 13:44:28 +02:00
François Coppens
7b9b176545 - Replaced the copy-arrays in the combined SMWB kernels with pointers
- Added loop in test_cycle() to repeat a single update cycle n-times for performance testing.
2021-06-23 17:28:29 +02:00
Francois Coppens
837e160f17 - Added various Sherman-Morrison-Woodbury kernels
- Separated debug information into 2 different debug levels.
2021-06-21 14:33:35 +02:00
Aurélien Delval
0114fd7b14 Remove source code of vfc_ci and improve vfc_test_h5.cpp
Since vfc_ci has been merged wih the main verificarlo repository and is
now available in Verificarlo's Docker, the source code of vfc_ci can
now be removed.

Also, vfc_test_h5.cpp has been modified so that every algorithm is
called directly. This results in a much shorter vfc_tests_config.json
since we don't need to vall vfc_test_h5 with all algorithms as
arguments.
2021-06-17 16:50:42 +02:00
Francois Coppens
22590b7684 * Woodburry 3x3 kernel fixed
* Written Unified Sherman-Morrison-Woodbury kernel that partitions
  the updates in blocks of 3 and tries them with Woodbury 3x3.
  The remainder of 2 or one are attempted with Woodbury 2x2 and SM2.

For now the unified kernel gives fails where pure SM2 does not.
I suspect there is something going wrong in how the updates are partitioned.
2021-06-15 11:53:04 +02:00
Francois Coppens
573947fe2d Woodbury debugging... 2021-06-11 08:46:39 +02:00
François Coppens
288bc83e19 Created Woodbery kernel infrastructure and started wrinting Woodbery 2x2 kernel. 2021-06-04 16:50:49 +02:00
Aurélien Delval
b283f403dc Update Verificarlo CI test variables
Tests are now using squared Frobenius norm and res2
2021-05-25 09:56:34 +02:00
François Coppens
c8df88b4ef Made lapack/MKL inclusion in code dependent on preprocessor macro 'MKL'. Automatic build should now succeed. 2021-05-21 11:54:57 +02:00
François Coppens
6c9c68c93d Added LAPACK option to test_h5.cpp to compare residuals and number of operations. 2021-05-20 19:21:59 +02:00
François Coppens
17c8a1c7a0 Code restyled. Added restyling script. Code for determinant is not working because it gets stuck in an infinite recursion loop. 2021-05-19 15:23:19 +02:00
François Coppens
5693e177ba Re-applied code formatting on C++ code with clang-format --style=llvm. 2021-05-10 14:50:45 +02:00
Francois Coppens
adf893ed6f - Various fixes
- Merged MaponiA3 and MaponiA3S into one file.
2021-05-07 17:11:04 +02:00
Aurélien Delval
99b297435c Add squared Frobenius norm to vfc_test_h5
Besides the new variable addition, vfc_test_h5 has also be made simpler
by executing directly all the possible lagorithms (instead of requiring
argument). This results in a much more concise vfc_tests_config.json,
since only one executable invocation is required.
2021-05-07 13:23:50 +02:00
Pablo Oliveira
ada8cd6888 Fix typo 2021-05-06 11:01:07 +02:00
Pablo Oliveira
f4becac4c0 First implementation of SM4
SM4: Sherman Morrison, mix between SM3 + SM2
Leave zero denominators for later (SM3), and when none are left then split (SM2)
2021-05-06 10:51:42 +02:00
François Coppens
3ee4d3b56d - Added a small 3x3 example that will always become singular regardles the order of the applied updates. This example is added to test Maponi A3 augmented with Slagel-splitting.
- Slagel-splitting in Maponi A3 is now working. A thourough analysis on the QMC=Chem datasets still has te be done.
- Acceptance tollerance  in 'test_h5' on the residuals can be set at runtime now.
2021-05-05 11:59:00 +02:00
Francois Coppens
e3815267fb * Added SM{1,2,3} algorithms to Fortran module
* Deleted final ylk array in MaponiA3(S)
* Output of Valgrind seem to suggest there are no major memory problems.
2021-05-05 11:59:00 +02:00
Aurélien Delval
d81777e347 Add CI dataset and the tool to generate it.
Since the dataset must be accessible from the CI runner, the best
solution is probably to commit a small dataset containing only the
required cycles. It's included in this commit, and can be generated by
extract-from-h5.py using the same cycles list as the one used by
vfc_test_h5.cpp.

Moreover, the probes exported by vfc_test_h5.cpp are now 0-padded, which
will result in a better sorting in the results.
2021-05-03 13:59:43 +02:00
Aurélien Delval
18d1e2b785 Move Makefile.vfc_ci to Makefile.verificarlo
With the current setup, the CI should be able to be deployed correcly.

However, we still ned to find the best solution to pull the dataset on
the runner so the tests can be executed on it.
2021-04-30 11:22:22 +02:00
Aurélien Delval
1d1da00931 Integration of vfc_ci
The vfc_ci tool has been directly added to the repository, since it's
not integrated into Verificarlo yet. The vfc_test_h5.cpp file defines a
test inspired by test_h5.cpp that reads a list of cycles and dump the
vfc_probes for these cycles.
2021-04-29 23:41:23 +02:00
Francois Coppens
1201718f28 Preped files, headers, functions, test_h5 and Makefiles for MaponiA3S. 2021-04-14 17:18:31 +02:00
Francois Coppens
ab9d13180a Small restructuring and cleaning up spurious includes and and namespaces. 2021-04-14 15:32:54 +02:00
Francois Coppens
152093dd7c - Added python program that computes general properties of a given Slater-matrix.
- Added a Verificarlo option to smvars.sh that sets the Verificarlo backend and uses LLVM for compilation.
- Fixed residual_max() to give the Max-norm.
2021-04-14 11:42:45 +02:00