[MPI3 Fortran] Agenda for MPI3 Fortran Working group next week

Jeff Squyres jsquyres at cisco.com
Thu Jun 4 10:31:58 CDT 2009


On Jun 3, 2009, at 10:37 AM, Supalov, Alexander wrote:

> One of those virtues was an essential ABI compatibility by design  
> within the Fortran interface of any particular MPI. As soon as  
> anything but a pointer to the object internals creeps into the  
> handle, this virtue will be gone.
>

Forgive me, but bringing ABI into this discussion is misleading at  
best.  :-)

There is no ABI between fortran implementations without specific  
intent from the implementor.  For example, Open MPI and MPICH2 do not  
have any Fortran ABI compatibility.  One simple/obvious reason for  
this is that the integer constant values are different between the  
two.  So yes, INTEGER handles are still the same size and type  
representation, but they have entirely different values between Open  
MPI and MPICH2 (and between MPICH1 and MPICH2!) such that you can't  
compile a Fortran MPI application with one MPI implementation, change  
your LD_LIBRARY_PATH, and then seamlessly run with a different MPI  
implementation.

There are other reasons why this won't work that aren't worth  
discussing (unless someone cares); my point in this mail is that  
making a statement implying that integers better allow ABI than other  
data structures/types/whatever is misleading.  If MPI implementation A  
wants to be Fortran ABI compatible with MPI implementation B, they can  
be: A will just have to use the same handle data type/structure/ 
whatever *and values* as B (and follow other conventions from B issues  
not discussed here).

In short: All MPI's use the same INTEGER handle type today because  
they have to, but that does *not* make them ABI compatible.

-- 
Jeff Squyres
Cisco Systems




More information about the mpiwg-fortran mailing list