Skip to content

streaming with ADIOS2, missing particle and mesh data #1747

@costeastefan

Description

@costeastefan

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

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions