Releases: openPMD/openPMD-api
ADIOS2 Open Speed and NVCC Fixes
This releases improves the initial time spend when parsing data series with the ADIOS2 backend. Compile problems when using the CUDA NVCC compiler in downstream projects have been fixed. We adopted a Code of Conduct in openPMD.
Thanks to Axel Huebl, Franz Poeschel, William F. Godoy, Ligia Diana Amorim, and Remi Lehe for contributing to this release!
ADIOS2 Preview, Python & MPI Improved
This release adds a first (preview) implementation of ADIOS2 (BP4). Python 3.8 support as well as improved pip builds on macOS and Windows have been added. ADIOS1 and HDF5 now support non-collective (independent) store and load operations with MPI. More HPC compilers, such as IBM XL, ICC and PGI have been tested. The manual has been improved with more details on APIs, examples, installation, and backends.
Thanks to Axel Huebl, Franz Poeschel, Ligia Diana Amorim, and Glenn Richardson for contributing to this release!
Improved Builds and Packages
This release improves PyPI releases with proper declaration of build dependencies (use pip 19.0+). For Makefile
-based projects, an openPMD.pc
file to be used with pkg-config
is added on install. RecordComponent
now supports a makeEmpty
method to write a zero-extent, yet multi-dimensional record component. We are now building as shared library by default.
Thanks to Axel Huebl, and Franz Poeschel for contributing to this release!
Python mpi4py and Slice Support
We implemented MPI support for the Python frontend via mpi4py
and added []
-slice access to Record_Component
loads and stores. A bug requiring write permissions for read-only series was fixed and memory provided by users is now properly checked for being contiguous. Introductory chapters in the manual have been greatly extended.
Thanks to Axel Huebl, and Fabian Koller for contributing to this release!
Bug Fixes in Multi-Platform Builds
JSON Support, Interface Simplification and Stability
This release introduces serial JSON (.json
) support. Our API has been unified with slight breaking changes such as a new Python module name (import openpmd_api
from now on) as well as re-ordered store/loadChunk
argument orders.
Please see our new "upgrade guide" section in the manual on how to update existing scripts. Additionally, many little bugs have been fixed. Official Python 3.7 support and a parallel benchmark example have been added.
Thanks to Axel Huebl, Franz Poeschel, Sergei Bastrakov, and Ray Donnelly for contributing to this release!
Reading Varying Iteration Padding
Relaxed Python Stride Checks
Relaxed Python Stride Checks
Patches, Const Scalars, Py Containers
Scalar records properly support const-ness. The Particle Patch load interface was changed, loading now all patches at once, and Python bindings are available. Numpy dtype
is now a first-class citizen for Python Datatype
control, being accepted and returned instead of enums. Python lifetime in garbage collection for containers such as meshes
, particles
and iterations
is now properly implemented.
Thanks to Axel Huebl and Fabian Koller for contributing to this release!