-
Notifications
You must be signed in to change notification settings - Fork 51
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
Read from one (out of many) ranks. #856
Comments
Some background: Now, such a pattern for reading actually used to work until we merged #822. This was, because So we should discuss whether we should treat this as a bug or not: If the following circumstances are given:
.. should accessing an iteration be a collective operation then or not?
Proposal:
Either suggestion would not directly fix Junmin's code snippet. But it would make it fixable by replacing: if (0 == mpi_rank)
{
auto chunk_data = E_x.loadChunk<double>(chunk_offset, chunk_extent);
series.flush();
} with: if (0 == mpi_rank)
{
auto chunk_data = E_x.loadChunk<double>(chunk_offset, chunk_extent);
}
series.flush(); |
Discussed offline: Implementing an |
Describe the bug
Unable to open a file-based series in an MPI program, then read from one of the rank. E.g . rank 0.
To Reproduce
Compile-able/executable code example to reproduce the problem:
Expected behavior
when running with 1 rank, read is successful.
when running with 2 ranks, hangs.
Reason:
when Series is opened for reading , Series.cpp's readFileBased() is called (by all ranks). This functions issues fClose upon finishes. When Rank 0 wants to read a variable, readFileBased is invoked by rank 0 upon flush(). Which then tries to open the iteration again. However because Rank 1 is inactive, open, a collective call, can not proceed successfully.
Software Environment
current with
(did not check with H5)
The text was updated successfully, but these errors were encountered: