Exascale architectures will have complex, heterogeneous memory hierarchies—ranging from node-level caches and main memory to persistent storage via the file system—that applications need to effectively achieve their science goals. At the same time, exascale applications are becoming more complex in their data flows, from multiscale and multiphysics simulations that must exchange data between separate codes to simulations that invoke data analysis and visualization services to extract information and render it to storing simulation output to the file system for later analysis. The Adaptable I/O Systems (ADIOS) project delivers a highly optimized coupling infrastructure that enables efficient synchronous and asynchronous data exchanges to move data between multiple codes running concurrently and to the different layers of the storage system.
ADIOS is designed to tackle data management challenges posed by large-scale science applications that run on high-performance computers and require, for example, code-to-code coupling for multiphysics and multiscale applications and code-to-service coupling for data analysis and visualization. Notably, ADIOS provides a simple, declarative publish/subscribe I/O interface so that applications can easily describe the data that they produce or consume. ADIOS has multiple optimized solutions to transfer data between codes and to the file system.
The ADIOS team is focused on providing high-quality performant software products to address the data flow requirement of exascale applications on pre-exascale and exascale architectures. Therefore, the team is optimizing and creating new ADIOS microservices to efficiently perform the data transfers needed by applications that can use pre-exascale and exascale architecture features so that the exascale applications can meet their science and performance goals. The framework that the team delivers supports synchronous and asynchronous data exchanges and provides the capabilities necessary for in situ processing and code coupling and efficient data transfers to the file system.