Skip to content

Releases: ornladios/ADIOS2

v2.12.1

Choose a tag to compare

@vicentebolea vicentebolea released this 29 Apr 01:05
Immutable release. Only release title and notes can be modified.

ADIOS2 v2.12.1 Release Notes

Bug Fixes

SST: NFS Negative Dcache Invalidation

Fixed a race condition on NFS-mounted filesystems where SST readers would fail
to open the writer's contact file even after it was created. A failed fopen()
populates the NFS client's negative dcache; subsequent retries returned NULL
for up to acdirmax (~30 s) despite the file existing. The fix forces a
readdir() on the parent directory before each retry to invalidate the stale
cache entry.

bpls: Double-Precision Min/Max Formatting

Fixed bpls displaying double-precision min/max values as integers when the
value had more than 6 significant digits (e.g., 130255.32345 was shown as
130255). Values outside the range [-10000, 10000] are now printed in
scientific notation (%e). This also affects the Min and Max strings
returned by io.AvailableVariables() in the Python bindings.

Dill: arm64 Linux Support

Resolved a Dill build/runtime failure on arm64 Linux systems.

Improvements

BP5: Vectorized Min/Max Statistics

The min/max statistics computation in BP5 has been vectorized, reducing the
overhead of StatsLevel=1 on large CPU-side buffers. This benefits workloads
such as GPU-simulation codes that write large arrays from host memory.

MGARD: Configurable Lossless Compression Type

A new lossless_type operator parameter lets users choose between huffman
and huffman_zstd for MGARD's internal lossless stage. The default remains
huffman_zstd for backward compatibility.

SST/CXI: Improved Slingshot Error Messages

Error messages from the CXI/Slingshot fabric transport are now more
descriptive, making it easier to diagnose connectivity issues on HPE Slingshot
networks.

What's Changed

Full Changelog: v2.12.0...v2.12.1

v2.12.0

Choose a tag to compare

@vicentebolea vicentebolea released this 16 Apr 19:00
Immutable release. Only release title and notes can be modified.
b630633

Release notes

C API Improvements

New two-call pattern functions for safely retrieving string data of unknown
length: adios2_get_string(), adios2_attribute_string_data(), and
adios2_attribute_string_data_array().

Selection API for Get() Operations

A new Selection class bundles spatial, block, and step parameters into a
single object passed to Get(), replacing scattered SetSelection() /
SetBlockSelection() / SetStepSelection() calls on Variable.

engine.Get(var, data, adios2::Selection::BoundingBox({0,0},{10,20}).WithSteps(0,5));

Plugin Interface v2 (Breaking Change)

Engine and operator plugins no longer inherit from internal core types.
Engine plugins inherit from PluginEngineInterface, operator plugins from
PluginOperatorInterface, and shared libraries only need to link adios2::cxx.
Update EngineCreate() / EngineDestroy() signatures; see examples/plugins/.

C++17 Minimum Requirement

The minimum C++ standard to build ADIOS2 has been raised from C++14 to C++17.

S3 Object Storage for BP5 Data

BP5 can now write data files to S3-compatible object storage (Amazon S3, MinIO,
Ceph, etc.) with metadata kept on the local filesystem. Set
DataFileTransport=awssdk, S3Endpoint, and S3Bucket as engine parameters.

Python Bindings: Nanobind Migration

The Python bindings have been migrated from pybind11 to nanobind, producing
smaller, faster extension modules and enabling stable-ABI (abi3) wheels for
Python 3.12 and later.

Asymmetric Encryption Operator

A new Encryption operator encrypts variable data using libsodium's sealed-box
construction (X25519 + XSalsa20-Poly1305). Writers only need the recipient's
public key; only the private key holder can decrypt.

SZ3 Compression Operator

A new SZ3 lossy compression operator is available, extending the existing
options alongside SZ, ZFP, MGARD, and BigWhoop.

RefactorProDM Operator

A new RefactorProDM operator integrates ADIOS2 with ProDM (Dr. Xin Liang's
decomposition library), providing decomposition-based data reduction when ProDM
is available at build time.

Python Free-Threading Support

The Python bindings are now compatible with free-threaded Python (PEP 703,
python3.13t), allowing ADIOS2 to run without the GIL.

HTTPS Transport for Remote Access

An HTTPS-based remote transport (XrootdHttpsRemote) using libcurl has been
added as an alternative to the native XRootD protocol for environments where
native XRootD connectivity is unavailable.

XRootD Server Resource Management

The XRootD server plugin now evicts idle file descriptors and metadata when
configurable limits are approached, shares a single FD across engines reading
the same tar file, and batches variable reads into a single network round-trip.

Cross-Endian Interoperability

The ADIOS2_USE_Endian_Reverse CMake option has been removed; cross-endian
file interoperability is now always enabled.

Campaign Reader Improvements

Host aliases, XRootD host entries, and in-memory metadata caching were added.
The reader now requires ACA 0.7 strictly. A rewritten SQLite join query reduces
open time from ~27 seconds to under one second for large archives.

TAR File Reading

BP5 datasets, text files, and images can now be read from TAR archives (local,
HTTPS-hosted, or via the remote server) when a TAR index is provided.

BP5 DataFileTransport Parameter Rename

The BP5 engine parameter DataTransport has been renamed to DataFileTransport.
Existing configurations must be updated.

BP5 Concurrent File Access

BP5 data reading now uses per-subpool locking over a shared file-descriptor
pool, enabling safe concurrent reads from multiple threads.

Python Stream: minmax()

adios2.Stream.minmax(name, [step], [block_info_list]) returns per-step or
global min/max values of a variable.

Inline Engine Buffering

The inline engine now supports basic output buffering, moving toward feature
parity with file-based engines for in-situ workflows.

Windows and macOS pip Wheel Support

CI now runs pip sdist and wheel integration tests on Windows and macOS,
verifying correct library loading under pip install workflows.

REUSE License Compliance

ADIOS2 now complies with the REUSE specification; every source file carries a
machine-readable SPDX license and copyright notice.

What's Changed

Read more

v2.12.0-rc1

v2.12.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@vicentebolea vicentebolea released this 23 Mar 02:30
Immutable release. Only release title and notes can be modified.
2dd4d01

Release notes

C API Improvements

New two-call pattern functions for safely retrieving string data of unknown
length: adios2_get_string(), adios2_attribute_string_data(), and
adios2_attribute_string_data_array().

Selection API for Get() Operations

A new Selection class bundles spatial, block, and step parameters into a
single object passed to Get(), replacing scattered SetSelection() /
SetBlockSelection() / SetStepSelection() calls on Variable.

engine.Get(var, data, adios2::Selection::BoundingBox({0,0},{10,20}).WithSteps(0,5));

Plugin Interface v2 (Breaking Change)

Engine and operator plugins no longer inherit from internal core types.
Engine plugins inherit from PluginEngineInterface, operator plugins from
PluginOperatorInterface, and shared libraries only need to link adios2::cxx.
Update EngineCreate() / EngineDestroy() signatures; see examples/plugins/.

C++17 Minimum Requirement

The minimum C++ standard to build ADIOS2 has been raised from C++14 to C++17.

S3 Object Storage for BP5 Data

BP5 can now write data files to S3-compatible object storage (Amazon S3, MinIO,
Ceph, etc.) with metadata kept on the local filesystem. Set
DataFileTransport=awssdk, S3Endpoint, and S3Bucket as engine parameters.

Python Bindings: Nanobind Migration

The Python bindings have been migrated from pybind11 to nanobind, producing
smaller, faster extension modules and enabling stable-ABI (abi3) wheels for
Python 3.12 and later.

Asymmetric Encryption Operator

A new Encryption operator encrypts variable data using libsodium's sealed-box
construction (X25519 + XSalsa20-Poly1305). Writers only need the recipient's
public key; only the private key holder can decrypt.

SZ3 Compression Operator

A new SZ3 lossy compression operator is available, extending the existing
options alongside SZ, ZFP, MGARD, and BigWhoop.

RefactorProDM Operator

A new RefactorProDM operator integrates ADIOS2 with ProDM (Dr. Xin Liang's
decomposition library), providing decomposition-based data reduction when ProDM
is available at build time.

Python Free-Threading Support

The Python bindings are now compatible with free-threaded Python (PEP 703,
python3.13t), allowing ADIOS2 to run without the GIL.

HTTPS Transport for Remote Access

An HTTPS-based remote transport (XrootdHttpsRemote) using libcurl has been
added as an alternative to the native XRootD protocol for environments where
native XRootD connectivity is unavailable.

XRootD Server Resource Management

The XRootD server plugin now evicts idle file descriptors and metadata when
configurable limits are approached, shares a single FD across engines reading
the same tar file, and batches variable reads into a single network round-trip.

Cross-Endian Interoperability

The ADIOS2_USE_Endian_Reverse CMake option has been removed; cross-endian
file interoperability is now always enabled.

Campaign Reader Improvements

Host aliases, XRootD host entries, and in-memory metadata caching were added.
The reader now requires ACA 0.7 strictly. A rewritten SQLite join query reduces
open time from ~27 seconds to under one second for large archives.

TAR File Reading

BP5 datasets, text files, and images can now be read from TAR archives (local,
HTTPS-hosted, or via the remote server) when a TAR index is provided.

BP5 DataFileTransport Parameter Rename

The BP5 engine parameter DataTransport has been renamed to DataFileTransport.
Existing configurations must be updated.

BP5 Concurrent File Access

BP5 data reading now uses per-subpool locking over a shared file-descriptor
pool, enabling safe concurrent reads from multiple threads.

Python Stream: minmax()

adios2.Stream.minmax(name, [step], [block_info_list]) returns per-step or
global min/max values of a variable.

Inline Engine Buffering

The inline engine now supports basic output buffering, moving toward feature
parity with file-based engines for in-situ workflows.

Windows and macOS pip Wheel Support

CI now runs pip sdist and wheel integration tests on Windows and macOS,
verifying correct library loading under pip install workflows.

REUSE License Compliance

ADIOS2 now complies with the REUSE specification; every source file carries a
machine-readable SPDX license and copyright notice.

What's Changed

Read more

v2.11.0

Choose a tag to compare

@vicentebolea vicentebolea released this 16 Nov 23:43
Immutable release. Only release title and notes can be modified.
a3eb1ab

What's new in 2.11?

This is a major release with new features and lots of bug fixes. The main
highlights include enhanced derived variables, remote data access, GPU
improvements, campaign management overhaul, and advanced compression operators.

Summary

Derived Variables

Support for reader-side computed variables with expression evaluation. This
release adds comprehensive functionality including new mathematical operations
(trigonometric functions, multiplication, division, power) and the
ability to apply derived variables to aggregated arrays.

Remote Data Access Infrastructure

Implementation of XRootD and remote server capabilities enabling distributed
file access. This includes support for remote streaming, metadata caching, and
optimized query handling across networked systems.

GPU and Memory Space Improvements

Enhanced GPU backend support with memory selection adjustments, Kokkos
integration improvements, and bindings for cuPy pointers and torch tensors.
Addresses layout mismatches between user code and device memory.

Campaign Management System Overhaul

Significant updates to campaign tracking using SQLite databases replacing JSON
files, configuration file support, and attribute handling. Includes multi-host
support and improved metadata organization.

CampainReader is a new engine to read .aca files created by hpc-campaign 0.6.
https://adios2.readthedocs.io/en/latest/advanced/campaign_management.html, https://hpc-campaign.readthedocs.io

Compression and Data Format Advances

New operators including BigWhoop compression and MGARD for compressing complex arrays. ZFP now
supports 4D arrays, and improved MGARD efficiency through zstd compression of
lossless data portions.

OpenSSF Best Practices

ADIOS2 now adopts OpenSSF (Open Source Security Foundation) best practices
including enhanced security measures, automated vulnerability scanning, and
adherence to industry-standard development practices.

Other features

  • BP5 has a new aggregator, Data size based aggregation, that performs best for highly imbalanced IO situations, i.e., when different processes produce wildly different amount of data.
    https://adios2.readthedocs.io/en/latest/advanced/aggregation.html
  • TimeSeries is an engine to handle a series of individual BP files as one. Enumerate entries in .ats YAML file.

What's Changed

Read more

v2.11.0-rc1

v2.11.0-rc1 Pre-release
Pre-release

Choose a tag to compare

@vicentebolea vicentebolea released this 07 Nov 01:27
Immutable release. Only release title and notes can be modified.
ce49c36

What's new in 2.11?

This is a major release with new features and lots of bug fixes. The main new feature is ...

New/updated notable features

  • CampainReader is a new engine to read .aca files created by hpc-campaign 0.6.
    https://adios2.readthedocs.io/en/latest/advanced/campaign_management.html, https://hpc-campaign.readthedocs.io
  • TimeSeries is an engine to handle a series of individual BP files as one. Enumerate entries in .ats YAML file.
  • BP5 has a new aggregator, Data size based aggregation, that performs best for highly imbalanced IO situations, i.e., when different processes produce wildly different amount of data.
  • mgard_complex is a new operator to compress complex and complex arrays

New experimental features

What's Changed

Read more

v2.10.2

Choose a tag to compare

@vicentebolea vicentebolea released this 26 Oct 19:36
a19dad6

What's Changed

Full Changelog: v2.10.1...v2.10.2

v2.10.1

Choose a tag to compare

@vicentebolea vicentebolea released this 29 May 01:44
f626281

What's Changed

Full Changelog: v2.10.0...v2.10.1

v2.10.0

Choose a tag to compare

@vicentebolea vicentebolea released this 03 Apr 22:44
6b7b4e4

What's new in 2.10?

This is a major release with new features and lots of bug fixes. The main new feature is the new Python API.

Python

Before, ADIOS had two separate APIs for Python. The low-level ("Full") API was written with Pybind11 and directly mimicked the C++ API. The high-level API was another, smaller, and more pythonesque API that allowed for easier scripting with Python. The main problems with these two were that they were independent, and that the high-level API was not complete. Once a developer needed a feature only available in the full API, they had to start from scratch writing a script with the full API.

In 2.10, there is officially one Python API, written in Python, which in turn uses the old Pybind11 classes. The new API combines the high-level features of the old high-level API and the full feature set of the low-level bindings.

Note:

Old scripts that used the full API can still run without almost any modification, just change the import line from import adios2 to import adios2.bindings as adios2

Old scripts that used the high-level API must be modified to make them work with the new API, see Transition from old API to new API: Transition from old API to new API

See Python API

New/updated notable features

  • BP5 is supported on Windows now
  • SST and DataMan staging engines are GPU-Aware now
  • SYCL support added for Intel GPUs (besides CUDA and HIP for NVidia and AMD GPUs)
  • the SST/libfabric data transport now works on Frontier (besides the MPI data transport)

New experimental features

What's Changed

Read more

v2.10.0-rc1

Choose a tag to compare

@vicentebolea vicentebolea released this 30 Dec 01:28
68f8b41

What's Changed

Read more

ADIOS v2.9.2 Production Release

Choose a tag to compare

@vicentebolea vicentebolea released this 01 Nov 22:12
83cb06a

Breaking changes

BP5 is the default engine wince 2.9.0 that behaves differently from BP3/BP4. Read the notes in the 2.9.0 release.

What's Changed

Full Changelog: v2.9.1...v2.9.2