[Beowulf] MorphMPI based on fortran itf (was: MPI ABI)
ashley at quadrics.com
Wed Oct 12 04:05:13 PDT 2005
On Wed, 2005-10-12 at 12:20 +0200, Toon Knapen wrote:
> Correct, the fortran interface is not exactly an ABI. However the
> fortran interface makes developing a MorphMPI easy.
> What I mean with a MorphMPI library is a small lightweight library that
> is inbetween the application and the MPI library. By recompiling the
> MorphMPI library, the application can be relinked with whatever MPI
> library (without thus having access to the sources of the application).
> The MorphMPI just needs to provide a function to return the value of the
> different named constants and the logical value's. Additionally it needs
> to map the symbols (corresponding to the function-names) as used by the
> app to the symbols as defined by the mpi library. That's all there is to
> it AFAICT
Aside from the already stated fact that fortran ABI's probably have more
problems that the MPI (lack of) ABI this just wouldn't work. For a
start changing true from a constant to a variable is a very bad
thing(TM) and what your talking about would effectively inflict this on
c code which is currently free of such issues.
The second problem is that of linking, most MPI vendors already have
MPI_Init in their own library, having another library with it's own
wrapper MPI_Init in it is going to lead to a whole world of pain to do
with dynamic linking and symbol resolution. This is not something that
has ever been done before to the best of my knowledge and there is a
very good reason for that.
Thirdly is the performance issue, any MPI vendor worth his salt tries
very hard to reduce the number of function calls and library's between
the application and the network, adding another one is a step in the
wrong direction. This may not matter so much for ethernet clusters but
certainly for some people the software stack accounts for a surprising
percentage of "network" latency.
Personnel I think a MPI ABI would be a good thing however this is not
the way to do it.
More information about the Beowulf