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

Solt, David George david.solt at [hidden]
Tue Feb 26 10:14:32 CST 2008



Since I was taking notes, I did not voice many of my thoughts in our last meeting.  Let me add some of my own thoughts:

1)  HP-MPI's experience around mpi compatibility is primarily around the use of 3rd party libraries such as scalapack.  I am unsure if these libraries are distributed with multiple builds for different MPI implementations. I do know that HP-MPI's translation layer to MPICH-based compatibility is frequently used in this context.  I'm not sure how this information impacts what we are trying to accomplish, but I wanted to point out that 3rd party libraries are another motivating factor.

2) I also have concerns around our (abi working group) efforts.  Some MPI implementations maintain ABI compatibility between releases, so users can upgrade to the newest release without rebuilding.  If an "official MPI ABI" is defined, they may be very, unlikely to stop providing compatibility to current ABI.  I think such implementations have two options:

        a) Provide a morphing layer from the offical MPI ABI to their historic ABI.   In this case, I am concerned that if ISV's perceive that this morph layer incurs any cost whatsoever, they will continue to generate and distribute an executable that is linked to the historic implemnation-specific ABI.   In the end, the effect could be an increase in the number of executables that ISV's deliver.

        b)  Adopt the "official MPI ABI" as their native distribution and provide a morph layer for backwards compatibility.  This would take a lot of faith on their part that other implementations will embrace the official ABI and make the effort and the perceived hit to using their historic native-ABI worth while.

After getting bitten by efforts such as IMPI, HP-MPI, for example, would have to give this a lot of thought before deciding on option B.

Thanks,
Dave Solt

-----Original Message-----
From: mpi3-abi-bounces_at_[hidden] [mailto:mpi3-abi-bounces_at_[hidden]] On Behalf Of Jeff Brown
Sent: Friday, February 22, 2008 11:15 AM
To: mpi3-abi_at_[hidden]
Subject: Re: [Mpi3-abi] Minutes of MPI ABI working group 2/21/08 meeting

Thank you for taking notes.  You captured the key discussion points quite well.

Here's what I took away from the meeting:
1. the group will initially focus on an MPI ABI for C bindings only (can't solve all the worlds problems at once)
    note that this avoids dealing with the fortran compiler symbol name issues
    the goal is run time dynamic link compatibility (just change LD_LIBRARY_PATH (for unix)) 2. the work to accomplish this is two fold
    - define a reference mpi.h to include "standard" types, scope and values for constants
    - ensure consistent linkage conventions (I don't think this is an issue on unix platforms) 3. consider a "MPI ABI compliant" certification rather than including this in the general MPI 3.0 standard
    frankly I have concerns about this - I'm afraid implementors may just blow it off

Next steps:
- come to consensus on working group goals as input to a proposal
- develop a short briefing to convey this for the March meeting

If we need another telecon that can be easily set up.  Let me know if you think this is necessary.

Thanks for your participation - we are off and rolling!

Jeff

At 04:33 PM 2/21/2008, you wrote:

>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).
>
>
>
>
>
>_______________________________________________
>Mpi3-abi mailing list
>Mpi3-abi_at_[hidden]
>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-abi

_______________________________________________
Mpi3-abi mailing list
Mpi3-abi_at_[hidden]
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-abi



More information about the Mpi3-abi mailing list