LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2005-02-16 17:37:15


On Feb 16, 2005, at 3:22 PM, Bryan O'Sullivan wrote:

>> I can summarise responses for the list, if anyone is interested.
>
> The answer, for those who are interested, is that apparently nobody
> uses
> MPI-2 at all. One person responded that he'd have used non-blocking
> collectives if they had been available in an MPI implementation when he
> was writing his app. Another noted that she couldn't find any MPI-2
> code in the wild, either.

Note that non-blocking collectives are not part of the MPI standard.
There was an effort to get them in MPI-2, but it died and was not
included in the final version.

 From our perspective, we have seen the following uses of MPI-2:

- Until recently, there have been some fairly bad uses of MPI-2 dynamic
functions (i.e., PVM-style ./foo that launches all of its peers). Part
of the reason is because MPI-2 dynamic functions become truly useful
when they can be combined with threads (IMHO). When you can use
threads with dynamic functions, more things become possible, like true
client/server communication, or ... dare I say it? ... distributed
computing.

- There are a small but growing number of people who use MPI-2 IO
functionality. The main (but not only) implementation of this is via
the ROMIO package from Argonne National Labs, which is good but not
great (e.g., it doesn't implement all of MPI-2 IO). If you have a
parallel filesystem, there are definite good reasons to use MPI-2 IO
(e.g., ROMIO).

- A while ago, we launched a user survey to find out what people wanted
in LAM, etc. The number 1 most requested feature was a complete
implementation of the C++ bindings.

- The one-sided functionality is a bit of a mystery. There have been
people who experimented with it, but the standard is *very* open to
interpretation of this entire chapter (IMHO). Indeed, in Open MPI, we
decided not to do the one-sided stuff for our first releases because so
few people are using it and, frankly, we can't decide what the chapter
means. :-)

- Some of the MPI-2 datatypes and new functions are quite useful; I've
seen those used in the wild.

- Ditto for a bunch of the miscellaneous functions.

- Threading, which is technically an MPI-1 thing, but was clarified in
MPI-2, I believe, is truly useful. There have been vendor MPI
implementations that support MPI_THREAD_MULTIPLE for quite a while, but
only one open source implementation (LA-MPI). Open MPI will support
MPI_THREAD_MULTIPLE, and I think (read: hope) that this will bring
multi-threading and MPI To The Masses.

-- 
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/