Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

From: Jonathan Day (imipak_at_[hidden])
Date: 2005-03-26 00:49:20


Hi,

With this debate over a common interface, I've noticed
that some have been talking about a common API (ie:
code-level compatibility) and others an ABI (ie:
binary-level compatibility). There's a big difference,
so I think it might be helpful if it was cleared up as
to what it was that was wanted. :)

Assuming an ABI, I suggest calling it IPM (for
Implementation-Proof MPI - yes, another recursive
acronym! :)

An ABI could be written as:

1) A wrapper that the program linked to, where the
wrapper could connect to any one of a number of MPI
libraries

2) A wrapper around the MPI library which provided a
standard interface programs could be compiled against

3) An environment that dlopen()ed both the program AND
an MPI library

Any of these would allow you to have a high degree of
independence of language-specific quirks, (1) in
particular as you could both generic and
language-specific transliteration code. You'd simply
link to what was most appropriate.

(1) would also have the benefit that you could
effectively exploit compiler-specific features (eg:
OpenMP) or language-specific parallelisms (eg: Occam)
because the wrapper would (in part or in whole) be
inside the application and therefore would have access
to all of these bug^H^H^Hfeatures.

(2) has the benefit that the library presents a common
interface, no matter what. Any variation can be
handled inside the wrapper. That means you could use
anything that provides essentially the same
capabilities, not just MPI. It might also make it
easier to handle mixed MPI-1 and MPI-2 environments,
as the differences at the application layer would be
transparent.

(3) has the advantage that you could hot-swap MPI
implementations, while an application is running. This
might be interesting in network research and possibly
useful for really exotic environments, I can't see it
would have much to offer otherwise.

                
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/