Skip to content

Passing of advanced backend parameters #150

@anokfireball

Description

@anokfireball

An option to provide advanced parameters specific to a backend is desirable. This can include MPI_Info, file access strategies,communication strategies, buffer sizes among other things. This should be optional with sane defaults for all values.

Specifically, this matters in two places:

  • Series, where one would provide general backend parameters shared across all files, paths, datasets and attributes in the Series (e.g. MPI_Info, ADIOS_AGGREGATE, nometa)
namespace openPMD
{
Series::Series(std::string const& filepath,
              AccessType at,
              MPI_Comm comm,
              AbstractSeriesParam* = nullptr /* default */);
} // openPMD
  • Datasets, where one would provide parameters different for specific datasets (e.g. compression/transform)
namespace openPMD
{
Dataset&
Dataset::setParameters(AbstractDatasetParam*);
} // openPMD

Implementation can be done via polymorphic parameter structs (similar to IO::Parameter) where paramters are passed named and typesafe (preferred) or as a map (similar to backend::Attributable) (not preferred).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions