lssndrbarbieri@gmail.com
Alessandro Barbieri
https://github.com/ornladios/ADIOS2/issues
ornladios/ADIOS2
This is ADIOS2: The Adaptable Input/Output (I/O) System.
ADIOS2 is developed as part of the United States Department of Energy's Exascale Computing Project. It is a framework for scientific data I/O to publish and subscribe to data when and where required.
ADIOS2 transports data as groups of self-describing variables and attributes across different media types (such as files, wide-area-networks, and remote direct memory access) using a common application programming interface for all transport modes. ADIOS2 can be used on supercomputers, cloud systems, and personal computers.
ADIOS2 focuses on:
Performance I/O scalability in high performance computing (HPC) applications.
Adaptability unified interfaces to allow for several modes of transport (files, memory-to-memory)
Ease of Use two-level application programming interface (APIs)
Full APIs for HPC applications: C++11, Fortran 90, C 99, Python 2 and 3
Simplified High-Level APIs for data analysis: Python 2 and 3, C++11, Matlab
In addition, ADIOS2 APIs are based on:
MPI Although ADIOS2 is MPI-based, it can also be used in non-MPI serial code.
Data Groups ADIOS2 favors a deferred/prefetch/grouped variables transport mode by default to maximize data-per-request ratios. Sync mode, one variable at a time, is treated as the special case.
Data Steps ADIOS2 follows the actual production/consumption of data using an I/O “steps” abstraction removing the need to manage extra indexing information.
Data Engines ADIOS2 Engine abstraction allows for reusing the APIs for different transport modes removing the need for drastic code changes.