[Mpi3-abi] Minutes of MPI ABI working group 2/21/08 meeting

Solt, David George david.solt at [hidden]
Thu Feb 21 17:33:16 CST 2008



Attendees:

Jeff Brown (meeting organizer), David Daniels (open MPI / LAM developer), Nathan DeBardeleben (Los Alamos), Fredrick Ellis (end user, didn't catch an affiliation), Jeff Squyres (Cisco), Alexander Supalov (Intel), Erez Haba (Microsoft), Kannan Naraasimhan (HP), David Solt (HP)

1. Introductions.

Variety of backgrounds including developers, end users who work with many applications & MPI's, and industry implementers who work with many ISV's.

2. General Statement of Goals:

For reference, here is our original charter as put forth by Jeff B.:

"To define any additional support needed in the MPI standard to enable static and dynamic linkage compatibility across MPI implementations on a target platform for MPI based Applications."

        * avoid separate compiles for each MPI implementation.
        * note that beyond mpi/application combinations, we also have compiler/mpi combination issues.
        * possible scopes for our efforts:
                - Compile time (should be covered by the current MPI standard)
                - Link time (object level compatibility)
                - Run time (simply "point" (LD_LIBRARY_PATH, for example) to a different MPI).  Clearly more difficult but potentially more beneficial than link time.
        * An ABI should reduce the # of executable flavors users or ISV's most provide.
        * Some ISV's are qualified to a specific build of a specific MPI and they will not benefit for any ABI changes.

3. Languages

Which bindings should be included in our efforts?

        * Should any efforts be directed to all bindings or just C?
                - A C-only solution may be perceived as contrary to the style of the standard.
                - It was also noted that MPI introduced language bindings in phases, we could follow suite.
        * Compilers introduce name mangling issues and C++ is particularly difficult do to the inlining that occurs.
        * Fortran has more manageable name mangling issues, but also has the problem of .TRUE. & .FALSE. definitions.
        * Appeared to be some consensus that a C-only solution would be a good starting point.

4. Details of what we might define

        * A morph layer vs. a 'true' ABI compatibility.
                - morph layer is perceived as additional overhead.
                - morph layer is simpler for implementers who may be heavily invested in current header files, etc.
           [[ NOTE:  I'm unsure if the morph layer is an implementation issue or does it genuinely change our direction ]]

        * Possible targets for standardization:  mpi.h, name resolution of libraries
                - Almost any interesting definition of ABI compatibility will need some level of standardization of mpi.h
                - If we can just point to a different directory with LD_LIBRARY_PATH, then applications need to be linked against the same library names, regardless of MPI implementation.
        * Discussion of whether calling conventions are an issue or is it just a matter of fixing mpi.h?
                - Most industry standard platforms have a well defined C calling interface.

5. Should ABI compliance be optional?

        * Forcing all implementations to adhere to a standard may be too great a burden to implementers (detracting them from more interesting/useful work).
        * Some implementations are on hardware or OS where only one implementation exists and is likely to ever exist.  Should they have to 'pay' the cost to claim full MPI compliance.
        * Appeared to be consensus that ABI compliance and MPI compliance should be separated out:
                - An implementation can be MPI compliant even though they are not ABI compliant.
                - Similar to mpiexec definition (recommended, if you provide it must look "this way", but not required)
                - A separate "stamp/claim" for being ABI compliant.

6. Next steps

        * For this week:                post minutes to e-mail, then Twiki after acceptance.
        * For next week:                Schedule next conference call
        * For march meeting:    define the goal of the working group.  Exactly what are we trying to accomplish.

        * General:                      Discuss via e-mail prior to next meeting?
                [[ NOTE: did not appear to be a resolution on this ]]
        * General:                      How will the outcome of our discussions will get turned into a proposal.
                [[ NOTE: do we need to assign an owner? ]]
        * General:                      How will the outcome of our discussions will get turned into actual MPI standard text as the current presentation style of the Standard is derived from its focus on API's (not ABI's).



More information about the Mpi3-abi mailing list