TY - GEN
T1 - Flexible IO and integration for scientific codes through the adaptable IO system (ADIOS)
AU - Lofstead, Jay
AU - Klasky, Scott
AU - Schwan, Karsten
AU - Podhorszki, Norbert
AU - Jin, Chen
PY - 2008
Y1 - 2008
N2 - Scientific codes are all subject to variation in performance depending on the runtime platform and/or configuration, the output writing API employed, and the file system for output. Since changing the IO routines to match the optimal or desired configuration for a given system can be costly in terms of human time and machine resources, the Adaptable IO System provides an API nearly as simple as POSIX IO that also provides developers with the flexibility of selection the optimal IO routines for a given platform, without recompilation. As a side effect, we also gain the ability to transparently integrate more tightly with workflow systems like Kepler and Pegasus and visualization systems like Visit with no runtime impact. We achieve this through our library of highly tuned IO routines and other transport methods selected and configured in an XML file read only at startup. ADIOS-based IO has demonstrated high levels of performance and scalability. For example, we have achieved 20 GB/sec write performance using GTC on the Jaguar Cray XT4 system at Oak Ridge National Labs (about 50% of peak performance). We can change GTC output among MPI-IO synchronous, MPI-IO collective, POSIX IO, no IO (for baseline testing), asynchronous IO using the Georgia Tech DataTap system, and Visit directly for in situ visualization with no changes to the source code. We designed this initial version of ADIOS based on the data requirements of 7 major scientific codes (GTC, Chimera, GTS, XGC1, XGCO, FLASH, and S3D) and have successfully adapted all of them to use ADIOS for all of their IO needs.
AB - Scientific codes are all subject to variation in performance depending on the runtime platform and/or configuration, the output writing API employed, and the file system for output. Since changing the IO routines to match the optimal or desired configuration for a given system can be costly in terms of human time and machine resources, the Adaptable IO System provides an API nearly as simple as POSIX IO that also provides developers with the flexibility of selection the optimal IO routines for a given platform, without recompilation. As a side effect, we also gain the ability to transparently integrate more tightly with workflow systems like Kepler and Pegasus and visualization systems like Visit with no runtime impact. We achieve this through our library of highly tuned IO routines and other transport methods selected and configured in an XML file read only at startup. ADIOS-based IO has demonstrated high levels of performance and scalability. For example, we have achieved 20 GB/sec write performance using GTC on the Jaguar Cray XT4 system at Oak Ridge National Labs (about 50% of peak performance). We can change GTC output among MPI-IO synchronous, MPI-IO collective, POSIX IO, no IO (for baseline testing), asynchronous IO using the Georgia Tech DataTap system, and Visit directly for in situ visualization with no changes to the source code. We designed this initial version of ADIOS based on the data requirements of 7 major scientific codes (GTC, Chimera, GTS, XGC1, XGCO, FLASH, and S3D) and have successfully adapted all of them to use ADIOS for all of their IO needs.
KW - HDF-5
KW - MPI-IO
KW - Modular IO
KW - Visualization
KW - Workflow
UR - http://www.scopus.com/inward/record.url?scp=57349114683&partnerID=8YFLogxK
U2 - 10.1145/1383529.1383533
DO - 10.1145/1383529.1383533
M3 - Conference contribution
AN - SCOPUS:57349114683
SN - 9781605581569
T3 - CLADE - Proceedings of the 6th International Workshop on Challenges of Large Applications in Distributed Environments 2008, CLADE'08
SP - 15
EP - 24
BT - Proceedings of the 6th International Workshop on Challenges of Large Applications in Distributed Environments 2008, CLADE'08
T2 - 6th International Workshop on Challenges of Large Applications in Distributed Environments 2008, CLADE'08
Y2 - 23 June 2008 through 23 June 2008
ER -