Re: [Mpi-forum] Boost MPI as a C++ binding replacement
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. Cheers, -Fab 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_PROC_NULL 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_MAXLOC MPI_MINLOC MPI_Group_range_incl MPI_Group_range_excl MPI_NULL_COPY_FN MPI_NULL_DELETE_FN MPI_KEYVAL_INVALID 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
participants (1)
-
Fab Tillier