One weakness of parallel I/O libraries such as PHDF5 or PnetCDF is that they mix together high- and low-level functions that may need to be implemented very differently on different HPC systems. Applications that rely on these libraries may find themselves limited to only certain systems for which the library developers have managed to create the required implementations.

The Adaptable IO System (ADIOS) is a collaborative effort from various institutions, such as Oak Ridge National Laboratory, Georgia Tech, University of Tennessee at Knoxville, Rutgers, and many more, to provide an easy-to-use I/O abstraction framework for scalable I/O. ADIOS architecture uses a layered design approach, as depicted in the figure below for the latest major version, ADIOS2.

Basic layered design of ADIOS2, as described and explained in the main text
Basic layered design of ADIOS2

In the top application layer, ADIOS2 offers both high-level and low-level APIs for C++, Python, and MATLAB. (The Fortran interface counts as an additional low-level API.) The three layers underneath the APIs can be implemented in software that is either native to ADIOS2, or compatible with its requirements for data storage and transport. Interestingly, as the figure indicates, HDF5 is one of the main third-party software engines that ADIOS2 supports as a substitute for its three native layers. The layers in the equivalent native engine are, from the top down:

  • The presentation layer, built around the ADIOS2 Binary Pack data format (BP3, BP4)
  • The session layer, where supervisors like BP Manager mediate between data and transport
  • The transport layer, which relies on I/O standards such as MPI-IO and POSIX I/O.

The lowest levels—the network layer, data link layer, and physical layer—depend on interconnect hardware and therefore lie outside of ADIOS2.

 
© 2025  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Access Statement