On Dec 3, 2007, at 6:05 AM, Supalov, Alexander wrote:
I think the ABI topic should be accompanied by definition of the
validation/certification procedure, be that a comprehensive test suite
with predefined outcomes or such. Having a common ABI and still behaving
differently on some applications won't help customers move between MPI
implementations, which is a common ABI is primarily intended for.
I think that if we start defining the specific interpretations of the
MPI standard, it will result in a black hole of despair. In pragmatic
terms, there are many places where the MPI spec could be clarified to
get more consistent behavior from all the various MPI
implementations. In many other places, the Forum intentionally left
the decision up to the implementor.
By the
way, the ABI extends beyond the function interface - it includes library
naming, process startup, etc.
This is also a tangled pit of woe.
These are two reasons that I am not optimistic about an ABI.
About the Java, C#, and other "new" interfaces: if they are really
necessary, the Forum for me is the only place where "official" MPI
bindings can be approved. They may be developed elsewhere, but if
somebody want their binding to achieve that status, they should come up
with a proposal and work with or, better, in the Forum.
Are there any languages that cannot have 3rd party MPI bindings by
layering on top of C MPI bindings?
Re-stating a mantra: it's very suspicious for a vendor or researcher
to say "I have an idea that *must* be standardized!" It's much more
useful to have real-world proof that applications want/need it. Many
of the most successful aspects of MPI had years of real-world
experience behind them -- the standard was just codifying what was
already common practice. Some of the least successful aspects of MPI
were done because they were a "good idea" or had a political
motivation, but lacked a reference implementation or apps developers
saying that they wanted it.
One worthy MPI-3 topic would be a new edition of the unified standard
document (MPI-1 + MPI-2 + MPI-3). It's just plain inconvenient to go
thru so many different books and, hopefully not for long, multiple
errata. I see that MPI-2 will be proofread for the January meeting. Is
there an intention to unify the standard documents later on?
It would certainly be useful to do so.
Finally, there's this never dying controversy around making no MPI calls
and making progress (see the August-September discussion related to the
generalized requests, for one). Do we want to clarify this in the
standard once and forever in unambiguous terms? This may even be an
MPI-2.1 item, by the way.
FWIW: user progress (generalized requests) and MPI core progress are
subtly different issues, IMHO.