-
Notifications
You must be signed in to change notification settings - Fork 54
Closed
Labels
api: breakingbreaking API changesbreaking API changesbackendfrontend: C++17frontend: Python3internal
Description
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*);
} // openPMDImplementation 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
Labels
api: breakingbreaking API changesbreaking API changesbackendfrontend: C++17frontend: Python3internal