ROMIO: A High-Performance, Portable MPI-IO Implementation
Note: we haven’t released newer versions of ROMIO as independent packages for a while; they are included as part of MPICH, and we work with downstream vendors to incorporate the latest changes. You can get the latest version of ROMIO when you download MPICH.
ROMIO is a high-performance, portable implementation of MPI-IO, the I/O chapter in MPI-2.
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 is designed to be used with any MPI implementation. It is, in fact, included as part of several MPI implementations. Cray, IBM’s Blue Gene drivers, and OpenMPI all use some variant of ROMIO for their MPI-IO implementation..
Windows Version (NTFS)
A version of ROMIO for Windows 2000 is available as part of MS-MPI
The book Using MPI-2: Advanced Features of the Message-Passing Interface,
published by MIT Press, provides a tutorial introduction to all aspects of MPI-2, including
parallel I/O. It has lots of example programs.
We have collected some of the more noteworthy publications under the ‘publications‘ tag.
- Specify as much access information as possible in a single function call by using MPI derived datatypes. For example, if you need to read bytes 0–10, 20–30, and 40–50 from a file, do NOT use three separate read function calls. Instead, create an appropriate MPI derived datatype that specifies this layout, define a file view with MPI_File_set_view, and then use a single read function call. This will perform MUCH better than with three separate read calls.
- For maximum performance, use the collective I/O functions, particularly in the case of noncontiguous accesses like the above. See this paper for further details.
A key component of ROMIO that enables such a portable MPI-IO implementation is an internal abstract I/O device layer called ADIO. Most users of ROMIO will not need to deal with the ADIO layer at all. However, ADIO is useful to those who want to port ROMIO to some other file system. The ROMIO source code and the ADIO paper (ps, pdf, html) will help you get started.
ROMIO Project Members
For further information, send email to email@example.com.