-
Notifications
You must be signed in to change notification settings - Fork 51
Closed
Labels
Description
Describe the bug
Streaming with ADIOS2 backend sends incomplete iterations in the following situations:
To Reproduce
Compile-able/executable code example to reproduce the problem:
// open file for streaming
series = Series(file_stream, Access::CREATE, MPI_COMM_WORLD,
R"(
{
"iteration_encoding": "variable_based",
"adios2": {
"engine": {
"parameters": {
"BufferGrowthFactor": "2.0",
"DataTransport": "WAN",
"RendezvousReaderCount": "0",
"QueueLimit": "2",
"QueueFullPolicy": "Discard",
"use_steps": "True",
"modifiable_attributes": "True",
"FirstTimestepPrecious": "True"
}
}
}
})");
...............................
Iteration it = series.writeIterations()[iter];
MeshRecordComponent mesh = it.meshes["profiles"]["n"];
................................
series.flush();
series.writeIterations()[iter].close();
// ...
Output
[costeas@gpu02 inputs]$ ~/openpmd/bin/openpmd-pipe --infile test_load_balance.inp.sst --outfile test_load_balance.inp.stream.bp4
Opening data source
Opening data sink
Opened input and output
Iteration 1 contains 9 meshes:
atomic_processes
distribution_functions
np_hist
profiles
rank_info
t_hist
time
xL_proc
y-boundary
Iteration 1 contains 3 particle species:
0
With records:
np
position
velocity
1
With records:
np
position
velocity
2
With records:
np
position
velocity
Iteration 9 contains 7 meshes:
atomic_processes
np_hist
rank_info
t_hist
time
xL_proc
y-boundary
Iteration 9 contains 0 particle species:
Iteration 10 contains 7 meshes:
atomic_processes
np_hist
rank_info
t_hist
time
xL_proc
y-boundary
Iteration 10 contains 0 particle species:
Expected behavior
All iterations should contain identical number of meshes and particles, as received in the first iteration (see output above).
Software Environment
- version of openPMD-api: 0.16.1
- installed openPMD-api via: from source
- operating system: Linux
- version of ADIOS2: 2.10.2
- name and version of MPI: OpenMPI/4.1.6-GCC-13.2.0