[Beowulf] MPI ABI

Patrick Geoffray patrick at myri.com
Mon Oct 10 04:58:32 PDT 2005

Hi Toon,

Toon Knapen wrote:
> If only the 'named constants' are a problem: It's very easy to create a
> few functions (like 'int mpi_comm_world()') that will return the correct
> value for a given implementation.

This is not the only problem, but this one can be fixed more or less 
easily by having the MPI forum defining these constants with arbitrary 

The Fortran interface is actually worse than the C interface. Instead of 
using pointers to opaque structures, the Fortran interface may use 
integers as indexes into array of structures, into array of pointers, as 
pointers casted to integers, etc.

Even if you implement all of the wrappers in a MorphMPI approach, 
nothing guarantee you that you can take an Fortran MorphMPI compliant 
application and link it with a MorhMPI compliant MPI library compiled 
with a different Fortran compiler. Fortran is evil.

> Any other alternative (cfr. MorphMPI that was discussed some months ago)
> is much more complicated and finally I'm not convinced it provides any
> added value in respect to the solution mentioned above.

There are only 2 ways to achieve ABI compatibility:
1) you impose/agree on a single one.
2) you translate between several ABIs at runtime.

Politically speaking, 1) will never happen. MorphMPI could do 2), but 
it's not a silver bullet.

Patrick Geoffray
Myricom, Inc.

More information about the Beowulf mailing list