-
Notifications
You must be signed in to change notification settings - Fork 18
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
NEB implementation #296
NEB implementation #296
Conversation
[edited - previous claim about what If you make your input iterator a list of lists of atoms objects, the autoparallelization framework should pass each sub-list. However, you can't make that a Try your code but instead of making
where each |
I have changed as following and it seems to work, but with
|
It's not expected to work, although I can modify it so it can.
Since the code you posted doesn't show what's in
etc, if each |
Yes |
You should be able to do something like
I'm not 100% sure it'll work, but I think it should, and I'll try to fix it if it doesn't. I also think that Things that are needed:
|
I have tried following, but it didn't work.
|
Thanks - let me take a look. |
Yeah I realized that this branch was not synchronized but it gives the same error like before after using the latest wfl.
|
OK, I just didn't want to start debugging an inconsistent version. |
I'll start looking at this today - it's going to require a bit of low level debugging. |
I just ran a very simple example of an autoparallelized function that expects a list of configurations for each operation, passed it
The best way to figure this out is for you to create a pytest for this new NEB function, and put in there code that causes the error you're seeing above. Make sure that the |
By the way, what exactly are you trying to achieve with the file globs you're using for your input and output? I don't even know what In fact, right now I'm not even sure that we're properly supporting globs in the inputs. Let me see what's going on with that. |
Looks to me like, despite what it says in the |
I'm sorry if this caused confusion. |
I'm trying to write pytest for neb.py but I'm dealing with strange pickle error. Should I just anyhow push it eventhough it doesn't work? |
Might as well, yes. It can be tricky to run pytests of wfl, because it's in some ways so dependent on the rest of your system, but if you at least have the exact syntax you're trying to call it'll be helpful, and we can turn it into a proper pytest. Just be sure to put any input files you need in |
Well, it did throw me off momentarily, but at least it led me to notice that we don't support globs despite the fact that the docs say we do, so at least I was able to fix that pretty easily. |
I tried to generate structure within pytest, rather than adding structure. Because I want to use EMT calculator and structures that works with this potential. It would be better to have another NEB trajectory to test autoparallelization. I had some pickle problem with calculator, but I'm not sure if this will happen in other environment as well |
BTW, the pickle error is because ASE changed the internals of the |
I haven't looked in any detail as to what exactly it's doing, but it passes for me with the attached patch |
Now looking at the second test you added, and why it's failing. |
It turns out to be quite s subtle bug. I'm thinking about how to fix it. |
I have it working if you don't try to save the results to multiple files. I'm thinking about how to do that, but it's not trivial. For now, add this patch to your branch and see if that works for you. |
This patch (a superset of the previous one, apply it on a clean copy of your repo's commit 493a69e) fixes multiple files as well. Once again, I think I need to clean up the whole nested structure business, but it seems to work here, surprisingly. |
Thanks for the patch. I just have applied the patch and it seems to work. |
Great. I'll commit now that all the tests pass. |
nice, thank you for great help! |
Unlike other calculations which starts with single configuration, NEB takes list of configs as images. But it seems to give error related to autoparallelization showing following error.
I think it should stop process when NEB is done, but it starts another process because it doesn't know that images of configurations are one unit.