Open Channel Foundation
Not Logged In |  | 
Open Channel Foundation

Quick Application Search:

Get this title!
Monitor new releases

Basic information

Additional resources
Papers and publications

Foundation :: Parallel Computing :: ROMIO


A High-Performance, Portable MPI-IO Implementation

Bill Gropp
Rusty Lusk
Rajeev Thakur
Total downloads from Open Channel to date: 34
source code available SOURCE CODE AVAILABLE

ROMIO is a high-performance, portable implementation of MPI-IO, the I/O chapter in MPI-2. 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.

ROMIO Internals

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 will help you get started.

Performance Results

Additional Resources

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.

   More software from Argonne National Laboratory

Open Channel Software runs entirely on Open Source Software. We return value to the Software community in the form of services and original software. Most of our content is currently available as source code, with the copyright owned by the original author, All Rights Reserved. Everything else is Copyright ©2000 - 2017 Open Channel Software.

View our privacy statement.
Contact webmaster at openchannelsoftware dot org with questions.