We have described a strategy for implementing portable parallel-I/O APIs by using an abstract-device interface for parallel I/O, called ADIO. We have explained the design of ADIO and its use in implementing several APIs. Our performance studies indicate that the ADIO approach enables portable implementations with very low overhead.
We believe that ADIO has tremendous potential in solving many of the problems faced by application programmers regarding lack of portable standard API for parallel I/O. Therefore, we view the work described in this paper as only the beginning of a large project. We intend to develop a complete implementation of MPI-IO and track the interface definition as it evolves through the MPI Forum. We also intend to implement ADIO on other file systems for greater portability. We intend to distribute our code freely together with the MPICH implementation of MPI [8].
We note that the ADIO interface defined in this paper may change as our implementations and studies reveal the need for providing additional/different functionality at the ADIO level. The latest definition of the interface can always be obtained from http://www.mcs.anl.gov/home/thakur/adio.