This document is organized as follows:
- Chapter 2, MPI-// Terms and Conventions,
explains notational terms and conventions used
throughout the MPI-// document.
- Chapter
, Version 1.2 of MPI-/,
contains the specification of MPI-1.2/, which
has one new function and consists primarily of clarifications to MPI-1.1/.
It is expected that some implementations will need
modification in order to become MPI-/ compliant, as the result of these
clarifications.
The rest of this document contains the MPI-// Standard Specification.
It adds substantial new types of functionality to MPI-/, in most cases
specifying functions for an extended computational model (e.g., dynamic process
creation and one-sided communication) or for a significant new capability
(e.g., parallel I/O).
The following is a list of the chapters in MPI-//, along with
a brief description of each.
- Chapter 4, Miscellany, discusses items that don't fit
elsewhere, in particular language interoperability.
- Chapter 5, Process Creation and Management, discusses the
extension of MPI-/ to remove the static process model in MPI-/. It
defines routines that allow for creation of processes.
- Chapter 6, One-Sided Communications, defines
communication routines that can be completed by a single process. These include
shared-memory operations (put/get) and remote accumulate operations.
- Chapter 7, Extended Collective Operations,
extends the semantics of MPI-/ collective operations to include
intercommunicators. It also adds more convenient methods of constructing
intercommunicators and two new collective operations.
- Chapter 8, External Interfaces,
defines routines designed to allow developers to layer on
top of MPI-/. This includes generalized requests, routines that
decode MPI-/ opaque objects, and threads.
- Chapter 9, I/O, defines MPI-// support for parallel I/O.
- Chapter 10, Language Bindings, describes the C++ binding
and discusses Fortran-90 issues.
The Appendices are:
- Annex A, Language Bindings,
gives bindings for MPI-// functions, and lists constants, error
codes, etc.
- Annex B, MPI-/ C++ Language Binding,
gives C++ bindings for MPI-/.
The MPI-/ Function Index is a simple index showing the location of
the precise definition of each MPI-// function, together with C, C++,
and Fortran bindings.
MPI-// provides various interfaces to facilitate interoperability
of distinct MPI-/ implementations. Among these are the canonical
data representation for MPI-/ I/O and for MPI_PACK_EXTERNAL and
MPI_UNPACK_EXTERNAL.
The definition of an actual binding of these interfaces that will
enable interoperability is outside the scope of this document.
A separate document consists of ideas that were discussed in the
MPI-/ Forum and deemed to have value, but are not included in the MPI-/
Standard. They are part of the ``Journal of Development'' (JOD), lest good ideas be
lost and in order to provide a starting point for further work.
The chapters in the JOD are
- Chapter
, Spawning Independent Processes,
includes some elements of dynamic process management, in particular
management of processes with which the spawning processes do not intend to
communicate, that the Forum discussed at length but ultimately decided not
to include in the MPI-/ Standard.
- Chapter
, Threads and MPI, describes some
of the expected
interaction between an MPI-/ implementation and a thread library in a
multi-threaded environment.
- Chapter
, Communicator ID, describes an
approach to providing identifiers for communicators.
- Chapter
, Miscellany, discusses
Miscellaneous topics in the MPI-/ JOD, in particular single-copy routines for
use in shared-memory environments and new datatype constructors.
- Chapter
, Toward a Full Fortran 90 Interface,
describes an approach to providing a more elaborate Fortran 90 interface.
- Chapter
, Split Collective
Communication, describes a specification for certain non-blocking
collective operations.
- Chapter
, Real-Time MPI-/, discusses MPI-/ support for
real time processing.
MPI-Standard for MARMOT