-
Notifications
You must be signed in to change notification settings - Fork 14
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
Optimize2 #358
Optimize2 #358
Conversation
I noticed an issue with correctly checking openmp support on Debian Linux, where the I do not think it is critical but will investigate further. |
The problem comes from using the system gcc and openmp libraries with conda's linker. Since that is not an issue with our code, I think we can proceed to consider merging this. |
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.
These are a great amount of excellent work! Thank you so much for doing this to the group!
Summary
Enables openmp based parallelism for computing correlation vectors, cluster interactions, and their changes from single flips.
Partially addresses Improve monte-carlo speed further by reducing python overheads #327
Speed-ups can be substantial, up to 4x in the systems I tested. However with this speed-up the bottleneck in most MC will now be in the remaining python code that is run at each step (especially
MCUsher.propose_step
)This required a re-writing of the cython functions into cython extension classes, and implementing C-struct containers to allow accessing the correlation/interaction tensors that are saved as tuples of ndarrays of different dimensions in Python.
Moved packaging to use pyproject.toml + setup.py
Additional dependencies introduced (if any)
TODO
smol
from source with openmp in the Developing section of the documentation.Checklist
Run pycodestyle and flake8
on your local machine.
Run pydocstyle on your code.