The I/O component of MPI-2, or MPI-IO, provides a set of interfaces that are aimed at performing portable and efficient parallel input/output operations.
MPI-IO allows a parallel program to express its I/O in a portable way that reflects the program's inherent parallelism. MPI-IO uses many of the concepts already provided by MPI to express this parallelism. MPI datatypes are used to express the layout and partitioning of data, which is represented in a file shared by several tasks. An extension of the MPI communicator concept, referred to as an MPI File, is used to describe a set of tasks and a file that these tasks will use in some integrated manner. Collective operations on an MPI File allow efficient physical I/O on a data structure that is distributed across several tasks for computation, but possibly stored contiguously in the underlying file.