[Mpi-forum] First reading: Remove NBC C++ bindings

Jeff Hammond jeff.science at gmail.com
Thu Apr 14 14:19:43 CDT 2011

Someone (you?) has argued in the past that deprecation doesn't not
mean they won't be supported, but as is clearly true from the NBC
ticket, it means that C++ bindings won't exist for features new in
MPI-3, which makes it impossible for a C++ person to use the MPI API
coherently.  Who is going to use C++ bindings for blocking collectives
and C bindings for non-blocking collectives?

Because the MPI API will no longer be consistent if only some of the
functions have C++ bindings defined, the Forum should either vote to
kill C++ bindings altogether or restore them in MPI-3.  The state of
limbo you propose will just make the MPI Forum look stupid: "hey
everybody, we couldn't make up our mind so you can use real C++
bindings for these 473 functions but for the other 128, you should use
Boost.MPI, our C bindings or some code you found online that was
written by a Mountain Dew-addicted undergrad."


On Thu, Apr 14, 2011 at 8:15 AM, Jeff Squyres <jsquyres at cisco.com> wrote:
> On Apr 14, 2011, at 8:54 AM, Jeff Hammond wrote:
>> I thought the Forum decided to un-deprecate the C++ bindings, or at
>> least had a straw vote expressing intent to do this.  If that is the
>> case, C++ bindings should be defined for all 3.0 functionality.
> I'm unaware of any such decision being made.
> And to clarify: the new ticket is to make the NBC stuff consistent with everything else that is happening in MPI-3.0 (i.e., no new C++ bindings).  It's only due to a quirk of timing that the MPI-3.0 NBC text was accepted with new functions that included C++ bindings.
>> I come to less than half the Forum meetings, so can someone point me
>> to the content that explains when and how the tide turned back towards
>> MPI not treating C++ as a first-class programming language?
> Your statement isn't quite fair -- MPI does nothing to disqualify C++ applications.  You can (obviously) use the C bindings in a C++ application.
> And also to be specific: the C++ bindings are not being withdrawn; they are deprecated, meaning that they *might* be removed someday (not by me, and I don't know anyone who is willing to undertake the effort -- it would be a LOT of text to edit).  And no new C++ bindings will be introduced.
> See https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/150 for some details about the 2.2 deprecation of the C++ bindings.  The general feelings were:
> - the C++ bindings have caused *considerable* maintenance over the years (including several ill-informed / incorrect errata email votes in the late '90s)
> - the C++ bindings provide very little semantic difference over the C bindings
> - plans for the C++ bindings to be building blocks for more expressive C++ class libraries essentially failed (e.g., Boost.MPI uses the C bindings)
> - more expressive C++ MPI class library functionality is both out of scope of the MPI specification and is available elsewhere
> --
> Jeff Squyres
> jsquyres at cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum

Jeff Hammond
Argonne Leadership Computing Facility
jhammond at alcf.anl.gov / (630) 252-5381

More information about the mpi-forum mailing list