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

[WIP] ADIOS2: Fix Parallel Resize #1126

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open

Conversation

ax3l
Copy link
Member

@ax3l ax3l commented Oct 18, 2021

We found in WarpX (ECP-WarpX/WarpX#1898) that MPI-parallel resizes (at least in file-based encoding) do not yet work with the ADIOS2 backend (parallel HDF5 is fine).
The current behavior is that following resizes are not performed or do not show up in read as a changed extent/shape at least. (Tests do not crash in write because ADIOS let's data be written independent of extent, which is meta-data.)

  • fix test: was uncovered before
  • fix implementation

@franzpoeschel
Copy link
Contributor

franzpoeschel commented Oct 19, 2021

The current behavior is that following resizes are not performed or do not show up in read as a changed extent/shape at least.

This was the exact same behavior in ADIOS2 before resizing was implemented there, so I guess it was forgotten somewhere.
See this issue for it.

Names are:
- `ADIOS1`
- `MPI_ADIOS1`
- `ADIOS2`
- `MPI_ADIOS2`
@ax3l ax3l force-pushed the fix-resizeADIOS2 branch from 81b34e2 to bdb114e Compare October 19, 2021 15:43
@@ -390,7 +390,7 @@ extendDataset( std::string const & ext )
std::iota( data2.begin(), data2.end(), 25 );
{
Series write( filename, Access::CREATE, MPI_COMM_WORLD );
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move the write below the return for ADIOS1?
Otherwise we create that empty ghost series.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bit unfortunate, but we have to do it this way unfortunately, see write.backend() in the if condition. However, I can add a commit in #1043 that uses {"backend": "adios2"} to explicitly select backends up front.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added that commit

@ax3l ax3l modified the milestones: 0.14.3, 0.14.4 Nov 3, 2021
@ax3l ax3l modified the milestones: 0.14.4, 0.14.5 Dec 15, 2021
@ax3l ax3l changed the title ADIOS2: Fix Parallel Resize [WIP] ADIOS2: Fix Parallel Resize Dec 17, 2021
@ax3l
Copy link
Member Author

ax3l commented Dec 17, 2021

Marked as WIP as I am waiting for further tests to generally pass in ECP-WarpX/WarpX#1898 before trying the next reproducer.

@ax3l ax3l modified the milestones: 0.14.5, 0.14.6 May 25, 2022
@ax3l ax3l modified the milestones: 0.14.6, 0.14.7 Jun 8, 2022
@ax3l ax3l modified the milestones: 0.14.7, 0.14.6 Apr 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants