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

Use file based encoding to store BTD files with BP5 #1531

Open
guj opened this issue Oct 2, 2023 · 0 comments
Open

Use file based encoding to store BTD files with BP5 #1531

guj opened this issue Oct 2, 2023 · 0 comments

Comments

@guj
Copy link
Contributor

guj commented Oct 2, 2023

Description:
When running a BTD input, WarpX was hanging when using BP5, which uses PerformDataWrite(). And this function needs to be collective (and writing to the same ADIOS file).

The program hang when using file based encoding (e.g. one file per time step). I ran with two ranks. All was fine until at a certain point,
rank1 needs to write to step 1, the file is diags/diag2/openpmd_000001.bp
rank0 needs to write to step 0, the file is diags/diag2/openpmd_000002.bp

What happened in short is at step 2, both ranks on opening BP5 writer for file *00002, and BTD needs to write back to step 1 (file *00001) at rank 0 (but not rank 1).

When using PerformPut() instead of PerformDataWrite(), the run is successful because PerformPut waits till EndStep() to actually write out data, and EndStep() is collective.

When using group based encoding (e.g. all steps in one file), it works too as both ranks are writing to the same file.

Work around:
it looks like one option is to force BTD to be group based, or, we have an option to not call PerformDataWrite() in BP5 for BTD.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant