Unread post Wed Nov 11, 2015 8:29 pm

Non-blocking brodcasting is alive and well

Non-blocking broadcasting was made official as of MPI 3.0 in the form of "MPI_Ibcast" [1],[4]. As its name suggests, it is the parallel to "MPI_Isend". A google search for "non-blocking broadcast" will reveal a whole bunch of white papers outlining how the new, as of 2012, implementation should be handled but they go far above my head so I will merely provide a link to one such example: http://htor.inf.ethz.ch/publications/im ... nbcoll.pdf.

Even after giving the literature a quick read, I am perplexed that this capability was not available in the first release of MPI. I am unable to find differences between a point or a group message that imply extra difficulties for a non-blocking group method.

The only reason I can surmise is that the nodes further down the tree of message passing must wait until the nodes above it are ready; a sort of weakest link scenario. However, in the typical blocking method all of the nodes will wait on the weakest link.

Note: While looking into efficiency gains of non-blocking I found [2]. Its outdated but it has some neat stuff in it.

[1] http://www.mpi-forum.org/docs/mpi-3.0/mpi30-report.pdf
[2] https://computing.llnl.gov/tutorials/mpi_performance/
[3] http://mpitutorial.com/tutorials/mpi-br ... unication/
[4] http://www.mpich.org/static/docs/v3.1/w ... bcast.html