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

Jeff Hammond jhammond at alcf.anl.gov
Thu Dec 8 17:58:35 CST 2011


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

-- 
Jeff Hammond
Argonne Leadership Computing Facility
University of Chicago Computation Institute
jhammond at alcf.anl.gov / (630) 252-5381
http://www.linkedin.com/in/jeffhammond
https://wiki-old.alcf.anl.gov/index.php/User:Jhammond



More information about the mpi-forum mailing list