#920276 RFP: libopenpmd-api -- API for scientific I/O with openPMD

#920276#5
Date:
2019-01-23 14:36:50 UTC
From:
To:
* Package name    : openpmd-api
   Version         : 0.7.1
   Upstream Author : Axel Huebl <axel.huebl@plasma.ninja>
* URL             : https://openpmd-api.readthedocs.io
* Upstream Repo   : https://github.com/openPMD/openPMD-api
* License         : LGPLv3+
   Programming Lang: C++, Python
   Description     : API for scientific I/O with openPMD

Proposed Package Description
----------------------------

This library provides a high-level API for writing and reading
scientific data according to openPMD. It allows to build logical file
structures which drive scientific I/O libraries such as HDF5 and ADIOS
through a common, intuitive interface. Where supported, openPMD-api
implements both serial and MPI parallel I/O capabilities.

Why is this Package Useful/Relevant
-----------------------------------

openPMD is a meta-standard in scientific computing, allow seamless data
exchange accross scientific and engineering domains. openPMD-api is a
file-format agnostic (to the extend of its backends) API that allows to
re-use the same data processing toolchains on various hierarchical
representations, such as HDF5 files, JSON files, ADIOS files and
file-less staging methods.

This library builds by default a C++ library and a Python3 library,
whose artifacts we can separate in packaging.

Additional Relevant Information
-------------------------------

I am the upstream maintainer of this software and our community
currently uses the software actively with user-level package managers.

This software comes with and without MPI support. I would therefore
propose to build three variants of it, similar as the HDF5 packages:
- variant 1: without MPI (libopenpmd-api-dev)
- variant 2: with OpenMPI (libopenpmd-api-openmpi-dev)
- variant 3: with MPICH (libopenpmd-api-mpich-dev)

It requires the following runtime dependencies (already packaged):
- variant 1: libhdf5-serial libadios python3
- variant 2: libhdf5-openmpi libadios-openmpi python3
- variant 3: libhdf5-mpich libadios-mpich python3