-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge AFQMC #1245
Merge AFQMC #1245
Conversation
From PR QMCPACK#1194 Directories named 'old' were skipped. The includes to the mpi3 wrapper have been updated.
The current code is a timing test, which we don't want running during the unit tests. Also update the test code for the new mpi3 wrapper.
Get the world communicator from OHMMS::Controller. Add the is_root structure to csr_matrix.hpp and use that one instead of the one in mpi3/shared_window.hpp.
Also workaround for broadcasting HamiltonianTypes - cast to int, broadcast, cast back.
Error says the value is not a constexpr
Add a move assignment operator to shared_window. Make all_reduce_value public
Not in shared_communicator.
By just copying the code aren't you erasing all of the commit history on the AFQMC side? How can we reproduce calculations we have run in the past without keeping a local backup of this. |
@fdmalone I don't think the goal here is to preserve the history. In any case, for reproducibility you will need to use an archived copy and appropriate commit hash of the older code since the version here could never be run standalone. It will always be linked with new files. This should not be a concern going forward since merges will occur often, we make versioned releases, and production calculations should use a specific commit hash or (preferred) release. |
Ok, but what is the benefit over just merging #1194 and adding Mark's additions on top? |
Copying files has a few advantages:
Another problem I'm still thinking through - this is going to create some merge conflicts when Miguel pulls the upstream develop onto his develop. |
Yeah that's the bit I'm worried about. I think I will have to rebase heavily. |
I'm looking at ways to remove the large file from the branch while preserving more history. I think any technique is going to change the commit hashes and cause merging problems. |
Yes, it might just be easier at this point for me to just cherry-pick all of the upstream work onto this once it is merged and start fresh. I think the alternative is too much work at this point and would require going through the pain of rebasing llnl_afqmc onto qmcpack again. |
A fresh clone of the qmcpack repo is 458MB. I would like to avoid adding a file that is > 10% of the repo size. |
Absolutely. In retrospect I could have rebased onto develop and removed this file, those old directories and isolated the real space work so they could be split into separate commits. Then we could have preserved the commits at least. |
But I think the best thing to do now is to just go ahead with this merge. I will deal with the pain on our end. |
@fdmalone When you are resolving conflicts with your merge/rebase, keep in mind |
This uses boost/hana.hpp which is only avail in boost 1.61.0+. We should check the boost version on configure and update our minimum version. |
AFQMC only works with QMC_COMPLEX=1 for now.
All 8 CI builds checked on bora. |
This copies most of the code from #1194
The test directories were not copied, nor the minor update to the manual. Content in OLD and PREVIOUS_VERSION directories were also not copied.
The code was modified from #1194 to work with the updated MPI3 wrapper.
There are two changes to the MPI3 wrapper necessary to build it, included in this PR.
The only changes not in the AFQMC directory should be in QMCMain.cpp and the previously mentioned change in the wrapper.