[Mpi-forum] Boost MPI as a C++ binding replacement

Fab Tillier ftillier at microsoft.com
Fri Dec 9 00:02:15 CST 2011

I believe the argument wasn't that Boost MPI was complete, but rather that the Boost MPI model was a better fit for  C++ than the MPI standard C++ bindings.  

To me, the current state of having the C++ bindings deprecated, yet adding new deprecated bindings for only a subset of MPI-3 functionality is terrible - it is inconsistent and sloppy.  I would like the standard to be consistent, and at this point it seems that the "move the C++ bindings to a removed chapter" (ticket 281) idea has the broadest support.  I don't think anybody that has been vocal against removing the C++ bindings has been willing to step up to the plate and drive a proposal, unfortunately, partly because the straw votes held at the past few Forum meetings showed that investing in a proposal would be futile.

Personally, as long as the C++ bindings are optional, I don't really care what happens to them and could likely be convinced to support undeprecating them.


Jeff Hammond wrote on Thu, 8 Dec 2011 at 15:58:35

> Lots of people have commented that Boost MPI is better than the standard
> C++ bindings and cited it as an example of why the C++ bindings are
> unnecessary.  I think that everyone who feels this way should inspect
> http://www.boost.org/doc/libs/1_48_0/doc/html/mpi/tutorial.html#mpi.c_
> mapping.
> Consider the things that Boost MPI explicitly states that it does not support:
> MPI_Bsend
> MPI_Bsend_init
> MPI_Buffer_attach
> MPI_Buffer_detach
> MPI_Ibsend
> MPI_Irsend
> MPI_Issend
> MPI_Recv_init
> MPI_Request_free
> MPI_Rsend
> MPI_Rsend_init
> MPI_Sendrecv
> MPI_Sendrecv_replace
> MPI_Send_init
> MPI_Ssend
> MPI_Ssend_init
> MPI_Start
> MPI_Startall
> MPI_Reduce_scatter
> MPI_Group_range_incl
> MPI_Group_range_excl
> MPI_Keyval_create
> MPI_Copy_function
> MPI_Delete_function
> MPI_Keyval_free
> MPI_Attr_put
> MPI_Attr_get
> MPI_Attr_delete
> MPI_Cart_createMPI_Dims_create
> MPI_Cartdim_get
> MPI_Cart_get
> MPI_Cart_rank
> MPI_Cart_coords
> MPI_Cart_shift
> MPI_Cart_sub
> MPI_Cart_map
> MPI_Graph_map
> PMPI_* routines
> MPI_Pcontrol
> They don't even both to mention that they do not support RMA, MPI-IO,
> MPI_Init_thread and a bunch of other functions I've left out because
> they weren't mentioned on the Boost MPI page.
> So yeah, my point is that Boost MPI is not even close to a reasonable
> replacement for C++ bindings and it suggests that third-party C++
> bindings are unlikely to support more than a handful of very popular
> MPI functions.
> Best,
> Jeff

More information about the mpi-forum mailing list