-
Notifications
You must be signed in to change notification settings - Fork 106
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
Feature/openqxd #1414
base: develop
Are you sure you want to change the base?
Feature/openqxd #1414
Conversation
The rank formula was updated to the openQxD layout: rank = coords[0]*dims[1]*dims[2]*dims[3] + coords[1]*dims[2]*dims[3] + coords[2]*dims[3] + coords[3]
The forloop was corrected (typo in i counter)
corrected to i<=3
trying to manually couple indexing correctly
Currently, the reordering is done inside OpenQxd
Probably it will continue to work for spinor fields... To be confirmed..
In check3, only half the sites are loaded onto quda (odd ones on whole lattice), then in the save function, only the odd ones in the first half get reloaded!
I was able to commit to the wiki, thanks for giving me access! |
cscs-ci run |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a review of the latest code. This is a great contribution, but a few things left outstanding to be resolved. I have left some comments, but beyond those:
- The C89 changes are of concern, since we will be embracing a C99 interface, e.g., use of
bool
. - The new openQCD interface is rather opaque to me. Can this be better documented?
- Thanks for the wiki additions. Is there a test input file or equivalent to allow us to run a test with this?
@@ -2606,6 +2606,8 @@ namespace quda { | |||
&& (pc_type == QUDA_MATPC_EVEN_EVEN || pc_type == QUDA_MATPC_EVEN_EVEN_ASYMMETRIC)) | |||
return true; | |||
|
|||
if (dirac_type == QUDA_WILSON_DIRAC || dirac_type == QUDA_CLOVER_DIRAC) return true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This addition here looks bogus: the Wilson operator is not Hermitian. Is this addition intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is in the class DiracG5M
(i.e. gamma5 times the Dirac operator), which is Hermitian. I had to change this, since the eigensolver didn't accept a non-Hermitian operator else. So this should be correct (only for gamma5*D
and D*gamma5
though).
Dear Kate,
|
@chaoos apologies for the slow reply at my end. GTC and other travel got in the way..... If you can revert the C99 -> C89 changes that would be great. It would also narrow the scope of the PR which would also be helpful. Regarding documentation, the basic rule is that all new functions should have doxygen markup next to their declarations, together with overall conceptual documentation in the wiki. If you can write up the documentation to include cloning the openq*d and compiling the code to work with QUDA that would be great. Understood that the repo isn't public yet, and that's fine for now. Does that sound ok to you? |
not do any transfer of fields)
Hello I'm sorry for the long wait! Finally I was able to finish this up. I've reverted all the C89 changes, appled clang-format again, implemented CI/CD testing for all this on our side, and fixed the issues we still had. So nothing really stops this anymore from being merged. Please review again. Let me know if there is something I can do to settle this. Thanks and best wishes, PS: I've created a spack package for QUDA (pull-request awaits approval, see spack/spack#48939). This became very useful for our CSCS CI/CD workflow. Maybe it's also useful for others, and can be put in the wiki or so? |
develop
branch