[Beowulf] MorphMPI based on fortran itf (was: MPI ABI)

Toon Knapen toon.knapen at fft.be
Wed Oct 12 03:20:28 PDT 2005


William Gropp wrote:
> At 08:44 AM 10/11/2005, Toon Knapen wrote:
> 
>> William Gropp wrote:
>> > in the Fortran source mapped to
>> >
>> > MPI_INIT
>> > mpi_init
>> > mpi_init_
>> > mpi_init__
>> > MPI_Init_
>> >
>> > Each of these has been chosen by some Fortran 77 compiler.  Confusion
>> > over this is one of the most common problems that users face,
>> > particularly when they use command line options to *change* the way the
>> > Fortran compiler maps the names in their code.
>>
>>
>> but that's an easy one to solve. We already do it for BLAS and LAPACK.
>> Based on some preprocessor directives we generate macro's that convert
>> every 'dgemm' in our C/C++ app into DGEMM, dgemm_, dgemm__ etc.
> 
> 
> That's not the point; all MPI implementations do something like this
> anyway (as far as I know, all MPI implementations implement the Fortran
> interface using C code and something to handle these issues).  The
> problem is: which of these names do you put into the MPI object
> library?  

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

toon



More information about the Beowulf mailing list