-
Notifications
You must be signed in to change notification settings - Fork 9
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
Parallel torsiondrive optimisations #277
Conversation
I think so, if only because the default is different on macOS and Linux, so the sort of thing that would cause me headaches while debugging differences between development and production environments 🙃 |
The alternative would be to hardcode the |
So the options are
I don't have a strong or informed opinion between the two; either should fix the potential issue of behavior differences on different hardware, and also the issue you found with |
That's right, its probably best to hardcode it for now while we check it works and then we can later expose the option if people request it. |
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'm not sure if you're really soliciting reviews while this project is under your direction - the real check is if this works in the production runs you do. That being said, LGTM, I'm not a huge fan of the kwargs pattern but it's hard to avoid here. Moving to task_config
is nice as well.
Description
This PR is another go at adding parallel optimisations in torsiondrives. These will only work on workers launched via the new worker CLI #272 option as they have to be in the primary process to spawn a pool of optimisations.
Local testing with XTB and Psi4 for some simple molecules leads to some good speed-ups with the optimum number of workers being around 4. Note that for the Psi4 test, the number of threads used by each worker was 6 with 4 works and was 8 for 1 and 2 worker tests due to resource limits.
When testing on the HPC I found that the method to create the pool had to be set to
spawn
rather thanfork
otherwise the optimisations would hang, which causes a slight slowdown in performance should we expose the method used to create the pool as a setting?Testing script
Todos
Notable points that this PR has either accomplished or will accomplish.
Questions
Status