MPI stands for the Message Passing Interface. Written by the
MPI Forum (a large committee comprising of a cross-section between
industry and research representatives), MPI is a standardized API
typically used for parallel and/or distributed computing. The MPI
standard is comprised of 2 documents: MPI-1 (published in 1994) and
MPI-2 (published in 1996). MPI-2 is, for the most part, additions and
extensions to the original MPI-1 specification.

Open MPI is an open source, freely available implementation of both
the MPI-1 and MPI-2 documents. The Open MPI software achieves high
performance; the Open MPI project is quite receptive to community
input.

2. Where can I learn about MPI? Are there tutorials available?

There are many resources available on the internet for
learning MPI.

The definitive reference for MPI is the MPI Forum Web site. It has
copies of the MPI standards documents and all of the errata. This is
not recommended for beginners, but is an invaluable reference.

Several books on MPI are available (search your favorite book
sellers for availability):

MPI: The Complete Reference, Marc Snir et al. (an annotated
version of the MPI-1 and MPI-2 standard; a 2 volume set,
also known as "The orange book" and "The yellow
book")

Using MPI, William Gropp et al. (2nd edition, also known as
"The purple book")

Directly involve the HPC community with external development
and feedback (vendors, 3rd party researchers, users, etc.).

Provide a stable platform for 3rd party research and commercial
development.

Help prevent the "forking problem" common to other MPI
projects.

Support a wide variety of HPC platforms and environments.

In short, we want to work with and for the HPC community to make a
world-class MPI-2 implementation that can be used on a huge number and
kind of systems.

4. Will you allow external involvement?

ABSOLUTELY.

Bringing together smart researchers and developers to work on a common
product is not only a good idea, it's the open source model. Merging
the multiple MPI implementation teams has worked extremely well for us
over the past year -- extending this concept to the HPC open source
community is the next logical step.

The component architecture that Open MPI is founded upon (see the
"Publications" link for papers about this) is designed to foster 3rd
party collaboration by enabling independent developers to use Open MPI
as a production quality research platform. Although Open MPI is a
relatively large code base, it is rarely necessary to learn much more
than the interfaces for the component type which you are
implementing. Specifically, the component architecture was designed
to allow small, discrete implementations of major portions of MPI
functionality (e.g., point-to-point messaging, collective
communications, run-time environment support, etc.).

That being said, although we are an open source project, we recognize
that the everyone does not provide free, open source software. Our
collaboration models allow (and encourage!) 3rd parties to write and
distribute their own components -- perhaps with a different license,
and perhaps even as closed source. This is all perfectly acceptable
(and desirable!).

6. I want to redistribute Open MPI. Can I?

Absolutely.

NOTE: We are not lawyers and this is not legal advice.

Please read the Open MPI
license (the BSD license). It contains extremely liberal
provisions for redistribution.

7. Preventing forking is a goal; how will you enforce that?

By definition, we can't. If someone really wants to fork the Open MPI code base, they can.
By virtue of our extremely liberal license, it is possible for
anyone to fork at any time.

However, we hope that no one does.

We intend to distinguish ourselves from other projects by:

Working with the HPC community to accept best-in-breed
improvements and functionality enhancements.

Provide a flexible framework and set of APIs that allow a
wide-variety of different goals within the same code base through the
combinatorial effect of mixing-and-matching different components.

Hence, we hope that no one ever has a reason to fork the main code
base. We intend to work with the community to accept the best
improvements back into the main code base. And if some developers
want to do things to the main code base that are different than the
goals of the main Open MPI Project, it is our hope that they can do
what they need in components that can be distributed without forking
the main Open MPI code base.

Only time will tell if this ambitious plan is feasible, but we're going
to work hard to make it a reality!

8. How are 3rd party contributions handled?

Before accepting any code from 3rd parties, we require an original
signed contribution agreement from the donator.

These agreements assert that the contributor has the right to donate
the code and allow the Open MPI Project to perpetually distribute it
under the project's
licensing terms.

This prevents a situation where intellectual property gets into the
Open MPI code base and then someone later claims that we owe them
money for it. Open MPI is a free, open source code base. And we
intend it to remain that way.

Open MPI initially represented the merger between three well-known MPI
implementations (none of which are being developed any more):

FT-MPI from the University of Tennessee

LA-MPI from Los Alamos National Laboratory

LAM/MPI from Indiana University

with contributions from the PACX-MPI team at the University of
Stuttgart.

Each of these MPI implementations excelled in one or more areas. The
driving motivation behind Open MPI is to bring the best ideas and
technologies from the individual projects and create one world-class
open source MPI implementation that excels in all areas.

Open MPI was started with the best of the ideas from these four MPI
implementations and ported them to an entirely new code base: Open
MPI. This also had the simultaneous effect of enabling us to jettison
old, crufty code that was only maintained for historical reasons from
each project. We started with a clean slate and decided to "do it
Right this time." As such, Open MPI also contains many new designs
and methodologies based on (literally) years of MPI implementation
experience.

After version 1.0 was released, the Open MPI Project grew to include
many other
members who have each brought their knowledge, expertise, and
resources to Open MPI. Open MPI is now far more than just
the best ideas of the founding for MPI implementation projects.

10. But I love [FT-MPI | LA-MPI | LAM/MPI | PACX-MPI]!
Why should I use Open MPI?

Here's a few reasons:

Open MPI represents the next generation of each of these
implementations.

Open MPI effectively contains the union of features from each of
the previous MPI projects. If you find a feature in one of the prior
projects that is not in Open MPI, chances are that it will be
soon.

The vast majority of our future research and development work will
be in Open MPI.

All the same developers from your favorite project are working on
Open MPI.

Not to worry -- each of the respective teams has a vested interest in
bringing over the "best" parts of their prior implementation to Open
MPI. Indeed, we would love to migrate each of our current user bases
to Open MPI as their time, resources, and constraints allow.

In short: we believe that Open MPI -- its code, methodology, and open
source philosophy -- is the future.

11. What will happen to the prior projects?

Only time will tell (we cannot predict the future), but it is
likely that each project will eventually either end when funding stops
or be used exclusively as a research vehicle. Indeed, some of the
projects must continue to exist at least until their existing
funding expires.

University of Tennessee
This site is located in: Knoxville, TN, USA
Mirror last updated: Tue Mar 31 06:00:01 EDT 2015