[Mpi-forum] ABI

Jeff Hammond jeff.science at gmail.com
Wed Dec 4 15:50:55 CST 2013


I know another way for all MPI implementations to have the same ABI ;-)

Jeff

On Wed, Dec 4, 2013 at 3:23 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> Pavan Balaji <balaji at mcs.anl.gov> writes:
>> Also, it’s not like we’ll never change ABI again.  We’ll just be more
>> conservative and everyone in the “team” will change it at the same
>> time.  If it’s in the MPI standard, we lose that flexibility.
>
> It would make a _huge_ difference for distributions if MPICH and Open
> MPI could have a compatible ABI.  As it is, distributions generally
> choose one to be primary and have some system for maintaining a suite of
> packages for the other.  This wastes a ton of maintainer time and causes
> confusion for users.  New users of MPI tend to encounter it on personal
> computers and small clusters rather than on leadership class machines,
> so I would argue that compatibility between MPICH and Open MPI may have
> a bigger reward in terms of human time and user experience than
> compatibility with the various commercial vendors (which I also think is
> useful).
>
> However, the question of integer (MPICH) versus pointer (OMPI) handles
> is a long-standing impasse.  Pointer handles are great for users because
> they get stronger type checking and it's easier to probe around in the
> debugger.  Meanwhile, integer handles can use more tag bits to optimize
> certain operations.  But I wonder if we could reach a middle ground that
> would at least provide a common ABI on x86 systems.
>
> Suppose MPICH used intptr_t for handles.  I believe pointers are treated
> the same as integers for all the common calling conventions.  This
> leaves a question of the predefined constants, which are currently
> compile-time constants of some sort (either integers or addresses of
> privately-defined structs), but I'm not aware of text in the standard
> that requires them to be defined in a header.  That is, can we have
>
>
>   extern MPI_Datatype MPI_INT;
>
> in the header and leave it to the library to provide the value?
>
> Is anything else a showstopper for using intptr_t versus opaque_type* as
> handles?
>
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum



-- 
Jeff Hammond
jeff.science at gmail.com



More information about the mpi-forum mailing list