Skip to content
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

ADIOS2 File Creation #683

Open
rfbird opened this issue Feb 5, 2020 · 4 comments
Open

ADIOS2 File Creation #683

rfbird opened this issue Feb 5, 2020 · 4 comments
Assignees
Labels
backend: ADIOS1 backend: ADIOS2 question third party third party libraries that are shipped and/or linked

Comments

@rfbird
Copy link
Member

rfbird commented Feb 5, 2020

Hey,

I swapped from ADIOS1 to ADIOS2 as my backend, and my writes started failing because the output dir (my_filename.bp) was not created before the contents were written. I assume this not expected behavior?

Where is the equivalent of

createFile(i.writable, *dynamic_cast< Parameter< Operation::CREATE_FILE >* >(i.parameter.get()));
for ADIOS2?

Axel said to spam issues just Incase something was afoot ;)

Best,
Bob

@ax3l
Copy link
Member

ax3l commented Feb 7, 2020

Thank you for the report!
I haven't experienced this in my tests yet, but it might be related to the fact that you wrote a particle series and some ranks might have not written particles. This is a valid use case that might not fully covered by our CI tests, so we have to dig into this. Can you confirm this or have slightly more info when it occured?

Generally, ADIOS2 does not need a meta-file anymore since the .bp.dir directory is all one needs to open the data again with ADIOS2 tools. Did you see a crash due to the missing directory at write time?

Let me ping @franzpoeschel on this, he'll be back at work around next week and just successfully defended his MA thesis (congratulations!! 🚀 ✨ ).

@rfbird
Copy link
Member Author

rfbird commented Feb 8, 2020

It died trying to write to ./hydro_electron.bp/md.0, because the dir was not present at the time it tried to write the file, and it was fixed if we manually create the folder for it and re ran the job

All ranks should write particles in this case. I guess it could be something screwy our end, but from a quick look at the code it seems like you expect OpenPMD to successfully create the bp dir

@ax3l
Copy link
Member

ax3l commented Feb 9, 2020

Thanks for the details. In openPMD-api, we actually just create all missing dirs recursively that are before the filename (e.g. ./some/path/well/oh/). The hydro_electron.bp/` dir is done on the ADIOS2 side.
Could be a non-collective call on our side when opening the file, or something upstream. We'll investigate.

Can you please provide the error message on which that writer died, too? The closer we get this for us to write a reproducer to debug the better.
Just to ask the obvious: you do not clean up your simulation output dir ./* at some point during app initialization, right?

@ax3l
Copy link
Member

ax3l commented Feb 11, 2020

After further investigation, I got a similar error today.

This error only appears when you first wrote an ADIOS1 file, which creates a my_filename.bp for you.
I guess you then re-tested your app and switched to ADIOS2, which tries to create a my_filename.bp/ directory.

Simple solution: clear the output directory from pre-existing .bp files.
This will avoid errors of the kind:

  what():  ERROR: couldn't open file my_filename.bp/md.0, check permissions or path existence, in call to POSIX open

@ax3l ax3l added backend: ADIOS1 question third party third party libraries that are shipped and/or linked and removed affects latest release bug labels Feb 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend: ADIOS1 backend: ADIOS2 question third party third party libraries that are shipped and/or linked
Projects
None yet
Development

No branches or pull requests

3 participants