-
Notifications
You must be signed in to change notification settings - Fork 19
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 request: Parallelization of Model Creation #76
Comments
Right, it is not parallelized. The reason is that this only needs to be done once at the beginning, before any optimization happens. For LJ, it is probably not ideal, because LJ is cheap to evaluate. A MR is very welcome and your suggestion seems the right way to go! |
Hi @mjwen thanks for the reply
Both of these are of course not ideal. If you can think of a better way please let me know. I am not a Python expert by any stretch of the imagination. How-to Reproduce the problem:
|
@adityakavalur thanks for the detailed info! The |
@mjwen thanks for the helpful comment! Looking at pickling example in pybind11 here. It looks like they are also using savestate and getstate as I mentioned above but they are adding all the members of the object to a tuple and sending that across, so there is no expected loss of information. I hadnt thought to do that. Let me see if I can get this to work, there will still be a level of non-generality to the new function parmap21 but its a lot lesser than what I initially thought |
I am trying to develop a physics-based model: LJ potential using OpenKIM LJ_ElliottAkerson_2015 and DFT data that runs into 1000s of configuration snapshots with 100s of atoms in each and it seems to take a long time.
I am playing around with a smaller problem i.e. smaller dataset and severely restricted number of minimization iterations and based on the profiling results it looks like _update_neigh in kliff/models/kim.py is the main bottleneck. However, the calc.create command that calls this is not parallelized.
So my questions are as follows:
For the above point 3, I poked around a little bit and it seems like using the parmap1 function on KIMComputeArguments here would probably be the easiest way to proceed.
Thanks for developing this utility! It is really nifty and will hopefully standardize this aspect of atomistic modeling.
Please let me know if anything above is unclear!
The text was updated successfully, but these errors were encountered: