Next generation of ADIOS developed in the Exascale Computing Program
326
stars
9,349
commits
C++
primary language
Sep 9, 2026
updated
ADIOS2 is an adaptable, scalable, and unified framework for scientific data I/O. It transports self-describing variables and attributes across files, networks, and memory using a single API, and is used in production on the world's largest supercomputers.
.bp) with rapid metadata extraction and built-in compression supportimport adios2
import numpy as np
data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
# Write to a BP file
with adios2.Stream("data.bp", "w") as f:
f.write("data", data)
# Read it back
with adios2.Stream("data.bp", "r") as f:
for _ in f.steps():
result = f.read("data")
print(result) # [1. 2. 3. 4. 5.]
Python (PyPI):
pip install adios2
From source: See the install documentation and scripts/runconf/runconf.sh for a CMake configuration example. Once installed, refer to Linking ADIOS2.
| Platform | Package |
|---|---|
| Summary | |
| Conda | |
| Spack | |
| Homebrew | |
| Ubuntu 24.04 | |
| Ubuntu 26.04 | |
| Debian Unstable | |
| Arch | |
| OpenSUSE TumbleWeed | |
| Nix unstable | |
| vcpkg | |
| Dockerhub |
An Apptainer/Singularity SIF image is also published to GHCR on every master push:
apptainer pull adios2.sif oras://ghcr.io/ornladios/adios2-apptainer-sif-master-x64:latest
ADIOS2 has a wide spectrum of optional features, from a small, dependency-free core to specialized backends that pull in heavy or uncommon third-party libraries. It is also a research project, so those backends come and go, and the sites that rely on them usually build from source for each environment (or via Spack) rather than from a package manager. Therefore we recommend a lean build, not trying to satisfy all possible optional dependencies.
Core (no or trivial dependencies):
.bp format), no external dependenciesCommon options (widely packaged):
MPI, recommended but not requiredPython, Fortran bindingsHDF5 (interop and the HDF5 VOL)ZFP, SZ3, BZip2, Blosc2, PNGCampaign (requires SQLite3 and ZLIB, both lightweight and commonly available)CURL (HTTPS remote data access)Specialized (of interest only to specific workflows):
MGARD, SZ (for existing data only), LibPressio, BigWhoop, ProDMCUDA, KokkosSodium (libsodium; backs both the EncryptionOperator and encrypted Campaign metadata)XRootD, OpenSSL (TLS for HTTPS remote access), AWSSDK (S3), DAOSCatalyst (ParaView)Legacy engines and transports (unmaintained, off by default):
DataMan, SSC, MHS, DataSpaces, IMEThese older staging and coupling engines, and the DDN IME transport, are no longer actively
maintained and are candidates for future removal. They are disabled by default and must be enabled explicitly (for
example -DADIOS2_USE_MHS=ON) if needed. ZeroMQ is required only by the DataMan engine and
is likewise off by default, so a default build pulls in no ZeroMQ dependency.
The SST engine reaches full performance through RDMA data planes that
depend on fabric libraries: libfabric (InfiniBand/verbs and
HPE-Cray Slingshot/CXI; detected automatically when SST is enabled),
UCX (ADIOS2_USE_UCX), and Mercury
(ADIOS2_USE_Mercury). These matter on systems with an RDMA
interconnect, where an HPC-targeted package should install one or more
of libfabric, UCX and Mercury before building so SST picks them up. On
machines without an RDMA network they provide no benefit may cause
trouble (SST will fallback to TCP and or MPI dataplanes if RDMA is not
directly available.) General-purpose packages can safely leave them
out.
A default configuration is already lean: the legacy engines above are off, and every other optional feature is enabled only when its dependency is already present. Enabling the common options is a matter of turning them on explicitly, for example:
cmake -DADIOS2_USE_HDF5=ON -DADIOS2_USE_Python=ON -DADIOS2_USE_MPI=ON ..
Questions about whether a given feature is worth packaging are welcome on GitHub Discussions.
ADIOS2 is an open source project: questions, discussion, and contributions are welcome.
ADIOS2 is developed as a multi-institutional collaboration between:
ADIOS2 is licensed under the Apache License v2.0. See the accompanying Copyright.txt for more details.
(top 30 of 82)
C++
75.2%
C
8.0%
CMake
6.6%
Fortran
5.4%
Python
3.3%
Next generation of ADIOS developed in the Exascale Computing Program
326
stars
9,349
commits
C++
primary language
Sep 9, 2026
updated
ADIOS2 is an adaptable, scalable, and unified framework for scientific data I/O. It transports self-describing variables and attributes across files, networks, and memory using a single API, and is used in production on the world's largest supercomputers.
.bp) with rapid metadata extraction and built-in compression supportimport adios2
import numpy as np
data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
# Write to a BP file
with adios2.Stream("data.bp", "w") as f:
f.write("data", data)
# Read it back
with adios2.Stream("data.bp", "r") as f:
for _ in f.steps():
result = f.read("data")
print(result) # [1. 2. 3. 4. 5.]
Python (PyPI):
pip install adios2
From source: See the install documentation and scripts/runconf/runconf.sh for a CMake configuration example. Once installed, refer to Linking ADIOS2.
| Platform | Package |
|---|---|
| Summary | |
| Conda | |
| Spack | |
| Homebrew | |
| Ubuntu 24.04 | |
| Ubuntu 26.04 | |
| Debian Unstable | |
| Arch | |
| OpenSUSE TumbleWeed | |
| Nix unstable | |
| vcpkg | |
| Dockerhub |
An Apptainer/Singularity SIF image is also published to GHCR on every master push:
apptainer pull adios2.sif oras://ghcr.io/ornladios/adios2-apptainer-sif-master-x64:latest
ADIOS2 has a wide spectrum of optional features, from a small, dependency-free core to specialized backends that pull in heavy or uncommon third-party libraries. It is also a research project, so those backends come and go, and the sites that rely on them usually build from source for each environment (or via Spack) rather than from a package manager. Therefore we recommend a lean build, not trying to satisfy all possible optional dependencies.
Core (no or trivial dependencies):
.bp format), no external dependenciesCommon options (widely packaged):
MPI, recommended but not requiredPython, Fortran bindingsHDF5 (interop and the HDF5 VOL)ZFP, SZ3, BZip2, Blosc2, PNGCampaign (requires SQLite3 and ZLIB, both lightweight and commonly available)CURL (HTTPS remote data access)Specialized (of interest only to specific workflows):
MGARD, SZ (for existing data only), LibPressio, BigWhoop, ProDMCUDA, KokkosSodium (libsodium; backs both the EncryptionOperator and encrypted Campaign metadata)XRootD, OpenSSL (TLS for HTTPS remote access), AWSSDK (S3), DAOSCatalyst (ParaView)Legacy engines and transports (unmaintained, off by default):
DataMan, SSC, MHS, DataSpaces, IMEThese older staging and coupling engines, and the DDN IME transport, are no longer actively
maintained and are candidates for future removal. They are disabled by default and must be enabled explicitly (for
example -DADIOS2_USE_MHS=ON) if needed. ZeroMQ is required only by the DataMan engine and
is likewise off by default, so a default build pulls in no ZeroMQ dependency.
The SST engine reaches full performance through RDMA data planes that
depend on fabric libraries: libfabric (InfiniBand/verbs and
HPE-Cray Slingshot/CXI; detected automatically when SST is enabled),
UCX (ADIOS2_USE_UCX), and Mercury
(ADIOS2_USE_Mercury). These matter on systems with an RDMA
interconnect, where an HPC-targeted package should install one or more
of libfabric, UCX and Mercury before building so SST picks them up. On
machines without an RDMA network they provide no benefit may cause
trouble (SST will fallback to TCP and or MPI dataplanes if RDMA is not
directly available.) General-purpose packages can safely leave them
out.
A default configuration is already lean: the legacy engines above are off, and every other optional feature is enabled only when its dependency is already present. Enabling the common options is a matter of turning them on explicitly, for example:
cmake -DADIOS2_USE_HDF5=ON -DADIOS2_USE_Python=ON -DADIOS2_USE_MPI=ON ..
Questions about whether a given feature is worth packaging are welcome on GitHub Discussions.
ADIOS2 is an open source project: questions, discussion, and contributions are welcome.
ADIOS2 is developed as a multi-institutional collaboration between:
ADIOS2 is licensed under the Apache License v2.0. See the accompanying Copyright.txt for more details.
(top 30 of 82)
C++
75.2%
C
8.0%
CMake
6.6%
Fortran
5.4%
Python
3.3%