ROMIO is a high-performance, portable implementation of MPI-IO, the
I/O chapter in
Version 1.0.3 of ROMIO (September 2000) is freely available. The new features in this
version are listed here.
ROMIO runs on at least the following machines: IBM SP; Intel Paragon; HP Exemplar; SGI Origin2000; Cray T3E; NEC SX-4; other symmetric multiprocessors from HP, SGI, DEC, Sun, and IBM; and networks of workstations (Sun, SGI, HP, IBM, DEC, Linux, and FreeBSD). Supported file systems are IBM PIOFS, Intel PFS, HP/Convex HFS, SGI XFS, NEC
SFS, PVFS, NFS, and any
Unix file system (UFS).
The distribution includes scripts that automate the process of
installing ROMIO on any machine.
ROMIO is optimized for noncontiguous access patterns, which are common in parallel applications. It has an optimized implementation of collective I/O, an important optimization in parallel I/O. ROMIO 1.0.3 includes everything defined in the MPI-2 I/O chapter except support for file interoperability and user-defined error handlers for files.
C, Fortran, and profiling interfaces are provided for all functions that have been implemented. We have implemented the subarray and distributed array datatype constructors from the MPI-2 miscellaneous chapter, which facilitate I/O involving arrays. We have also implemented the info functions from the MPI-2 misc. chapter, which allow users to pass hints to the implementation.
ROMIO is designed to be used with any MPI implementation. It is, in
fact, included as part of several MPI implementations: The latest
version, 1.0.3, is included in MPICH 1.2.1; an earlier version
is included in LAM, HP MPI, SGI MPI, and NEC MPI.