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 <[email protected]> wrote:
Pavan Balaji <[email protected]> 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 [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
-- Jeff Hammond [email protected]