sissaschool / turborvb Goto Github PK
View Code? Open in Web Editor NEWQuantum Monte Carlo package, TurboRVB
Home Page: https://turborvb.sissa.it
License: GNU General Public License v3.0
Quantum Monte Carlo package, TurboRVB
Home Page: https://turborvb.sissa.it
License: GNU General Public License v3.0
In CMake there is no support for ARM copmilers.
Fortan cuda API generator is missing. It consist of python scripts that generate fortran.c
When executed VMC
run with serial code the random seed is store in execution directory. However LRDMC
run expects it to be turborvb.scratch
folder. This behaviour differs in MPI where everything is store in the scratch directory.
I suggest adding topics such as quantum-monte-carlo
in the About section at https://github.com/sissaschool/turborvb
There is an issuel with header files of cublas and cusolver when compiled with cuda 12. So its not possible to comile TurboRVB with cuda 12. For the time being one has to compile it with cude 11 or turb of cublas -DEXT_BLKL_FLAGS="_CUSOLVER"
There is been general need for standard json output from the calculation. It has been suggested to have also a json output. We should coordinate this effort with qmc=chem and champs
I have noticed that ctest randomly fails with -j 2. I propose not to use -j option, though it slows down the test.
Add test for DMC run (not LRDMC)
There are scripts that create a special "0" execution branch for non-pseudo case making execution much faster. They are missing in this repo.
I noticed that Test zgemm_b NN fails randomly. Does someone have any clue?
The following tests FAILED:
17 - Test zgemm_b NN (128 x 128) (Failed)
Errors while running CTest
Library qlapack
is a lapack
wrapper, therefore, it should not be dependent whether it is serial or parallel. However due to the nature of its dependencies it is. The idea it to pas these dependencies as a context.
if scalapack is used mpi ranks are writing to non allocated molecorbldo at line 2608 of file /home/addman/turborvb/src/a_prep/freeelmod_complex_kpoints.f90
There are many compile time warnings. Some of them are easy to fix.
COmpiling with Intel OneAPI 2023.1 does not passes the tests
Cmake fails in directories that contains space in name. I have problem with cmake and ctest while building and testing turborvb. Majority of test fails, when directory contains space in name.
For example>
`
/david Files/applications/turborvb/build$ ctest
0% tests passed, 97 tests failed out of 97
Total Test time (real) = 2.33 sec
The following tests FAILED:
3 - Test zdotc_ wrapper (128) (Failed)
4 - Test dger_ wrapper (256 x 256) (Failed)
5 - Test dger2 wrapper (256 x 256) (Failed)
6 - Test zgeru_ wrapper (256 x 256) (Failed)
7 - Test zger2 wrapper (256 x 256) (Failed)
8 - Test dgemm_ wrapper NN (128 x 128) (Failed)
9 - Test dgemm_ wrapper NT (128 x 128) (Failed)
10 - Test dgemm_ wrapper TT (128 x 128) (Failed)
11 - Test zgemm_ wrapper NN (128 x 128) (Failed)
12 - Test zgemm_ wrapper NT (128 x 128) (Failed)
13 - Test zgemm_ wrapper CT (128 x 128) (Failed)
14 - Test dgemm_b NN (128 x 128) (Failed)
15 - Test dgemm_b NT (128 x 128) (Failed)
16 - Test dgemm_b TT (128 x 128) (Failed)
17 - Test zgemm_b NN (128 x 128) (Failed)
18 - Test zgemm_b NN (128 x 128) (Failed)
19 - Test zgemm_b TT (128 x 128) (Failed)
20 - Test dtrsm_ wrapper ULN (128 x 128) (Failed)
21 - Test dtrsm_ wrapper LRT (128 x 128) (Failed)
22 - Test ztrsm_ wrapper URN (128 x 128) (Failed)
23 - Test ztrsm_ wrapper LLC (128 x 128) (Failed)
24 - Test dgemv_ wrapper N (256) (Failed)
25 - Test dgemv__ wrapper N (256) (Failed)
26 - Test dgemv_ wrapper T (256) (Failed)
27 - Test dgemv__ wrapper T (256) (Failed)
28 - Test zgemv_ wrapper N (256) (Failed)
29 - Test zgemv_ wrapper T (256) (Failed)
30 - Test zgemv_ wrapper C (256) (Failed)
31 - Test dskmv_ wrapper U (256) (Failed)
32 - Test dskmv_ wrapper L (256) (Failed)
33 - Test zskmv_ wrapper U (256) (Failed)
34 - Test zskmv_ wrapper L (256) (Failed)
35 - Test dgetrf_ wrapper (128) (Failed)
36 - Test zgetrf_ wrapper (128) (Failed)
37 - Test dgetrfi_ wrapper (128) (Failed)
38 - Test zgetrfi_ wrapper (128) (Failed)
39 - Test DFT open system (num mpi = prep-serial) (Failed)
40 - Test DFT open system (num mpi = 1 prep-mpi) (Failed)
41 - Test DFT open system (num mpi = 2 prep-mpi) (Failed)
42 - Test DFT PBC gamma point (prep-serial) (Failed)
43 - Test DFT PBC gamma point (num mpi = 1 prep-mpi) (Failed)
44 - Test DFT PBC gamma point (num mpi = 2 prep-mpi) (Failed)
45 - Test DFT PBC twist real (prep-serial) (Failed)
46 - Test DFT PBC twist real (num mpi = 1 prep-mpi) (Failed)
47 - Test DFT PBC twist real (num mpi = 2 prep-mpi) (Failed)
48 - Test DFT PBC twist complex (prep-serial) (Failed)
49 - Test DFT PBC twist complex (num mpi = 1 prep-mpi) (Failed)
50 - Test DFT PBC twist complex (num mpi = 2 prep-mpi) (Failed)
51 - Test VMC run (turborvb-serial) (Failed)
52 - Test VMC (AD) run (Failed)
53 - Test VMC run (turborvb-mpi) (Failed)
54 - Test VMC for 100 molecules run (turborvb-serial) (Failed)
55 - Test VMC PBC Tilted run (turborvb-serial) (Failed)
56 - Test VMC PBC Tilted (AD) run (Failed)
57 - Test VMC PBC Tilted (AD, nosparse) run (Failed)
58 - Test VMC PBC Tilted run (turborvb-mpi) (Failed)
59 - Test VMC PFAFF run (turborvb-serial) (Failed)
60 - Test VMC PFAFF (AD) run (Failed)
61 - Test VMC PBC (AD, nosparse) run (Failed)
62 - Test VMC PFAFF run (turborvb-mpi) (Failed)
63 - Test VMC for 8 crystals at gamma run (turborvb-serial) (Failed)
64 - Test VMC for 8 crystals at gamma run (turborvb-mpi) (Failed)
65 - Test VMC for 8 crystals at (0.25 0.25 0.25) run (turborvb-serial) (Failed)
66 - Test VMC for 8 crystals at (0.25 0.25 0.25) run (turborvb-mpi) (Failed)
67 - Test VMC for 8 crystals at (0.50 0.50 0.50) run (turborvb-serial) (Failed)
68 - Test VMC for 8 crystals at (0.50 0.50 0.50) run (turborvb-mpi) (Failed)
69 - Test VMCopt Lin. Jastrow opt run (turborvb-serial) (Failed)
70 - Test VMCopt Lin. Jastrow opt run (turborvb-mpi) (Failed)
71 - Test VMCopt SR. Jastrow opt run (turborvb-serial) (Failed)
72 - Test VMCopt SR. Jastrow opt run (turborvb-mpi) (Failed)
73 - Test VMCopt Lin. AGPmat opt run (turborvb-serial) (Failed)
74 - Test VMCopt Lin. AGPmat opt run (turborvb-mpi) (Failed)
75 - Test VMCopt SR. AGPmat opt run (turborvb-serial) (Failed)
76 - Test VMCopt SR. AGPmat opt run (turborvb-mpi) (Failed)
77 - Test LRDMC run (turborvb-serial) (Failed)
78 - Test LRDMC (AD) run (Failed)
79 - Test LRDMC run (turborvb-mpi) (Failed)
80 - Test LRDMC (new) run (turborvb-serial) (Failed)
81 - Test LRDMC (new) (AD) run (Failed)
82 - Test LRDMC (new) run (turborvb-mpi) (Failed)
83 - Test LRDMC PFAFF run (turborvb-serial) (Failed)
84 - Test LRDMC PFAFF (AD) run (Failed)
85 - Test LRDMC PFAFF run (turborvb-mpi) (Failed)
86 - Test LRDMC TILTED run (turborvb-serial) (Failed)
87 - Test LRDMC TILTED run (turborvb-mpi) (Failed)
88 - Test LRDMC DLA run (turborvb-serial) (Failed)
89 - Test LRDMC DLA run (turborvb-mpi) (Failed)
90 - Test LRDMC DLTM run (turborvb-serial) (Failed)
91 - Test LRDMC DLTM run (turborvb-mpi) (Failed)
92 - Test LRDMC LA run (turborvb-serial) (Failed)
93 - Test LRDMC LA run (turborvb-mpi) (Failed)
94 - Test LRDMC T-move run (turborvb-serial) (Failed)
95 - Test LRDMC T-move run (turborvb-mpi) (Failed)
96 - Test MD classical-VMC run (turborvb-serial) (Failed)
97 - Test MD classical-VMC run (turborvb-mpi) (Failed)
98 - Test MD quantum-VMC run (turborvb-serial) (Failed)
99 - Test MD quantum-VMC run (turborvb-mpi) (Failed)
Errors while running CTest
`
Compiling with DEBUG preprocessor macro ends in failure. Comile time error
Hi @addman2,
While I was refactoring, I noticed that the exactly same subroutine name "zsktrs" is used in
They both are included in CMakeLists.txt.
Do you think we can remove zsktrs.f90?
Parallel compilation mainly with Nvidia compilers are not very stable even if only -j 2
is used. This should be fixed. In previous version stability was increased by introducing virtual libraries.
Similarly to 0 branch we can have speed up for pseudo case if we make also branch 6 or 12.
This is little bit more technical but for those who don't know, there is a pseudo averaging in turbo in pseudopotential case. Number of points can be arbitrary but normally it is is either 0 (non-pseudo case), 6 (most common) or 12. If these numbers would be known during compile time compiler could do much better vectorization. The fore there is a trick how to automatically do a special branch of the code for these particular numbers.
In TurboRVB we have macros that start with no under (RISC, PARALLEL, etc ...), with one underscore (_OFFLOAD, _CUBLAS, etc ...) and with two underscores (__SCALAPACK, __PORT, etc ...). Maybe it is time to unify all of them to one paradigm (like all of them will be only with one underscore.
We need to keep in mind this thing has to be changed also in the documentation.
I have found that some scripts (e.g., forcevmc_kpoints.sh) assume that xxx/turborvb/bin directory is added to PATH. I will fix this problem.
Revise makefun, cleanup orbitals and make tests for them.
There are still problems with GPU compilation. But I am afraid there is no nice way to fix it. Som part of the restructuring has to be changed. The problem is with drop of libturbo-*
. In general it is a good thing it makes other executables smaller since now we do not link everything with everything. But testad
will might need to have it all. A draft PR would be nice so we can discuss the possibilities also with example.
To do
Now EXT_OPT=OFF compiles turbo with a weaker optimization options but not with -O0. It is better to invoke -O0 wor debugig
I guess it is not possible to test GPU version on GitHub link. I think we need to look elsewhere.
For sake of benchmarking it would be nice if turbo could say something about it self by invoking ‘./turborvb-serial.x --version‘. The information provided could be commit hash, version, MPI support, OpenMP support, GPU support, Compile time flags, etc.
To do list for the initial commit:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.