mpi.bcast: MPI\_Bcast API

Description Usage Arguments Details Value References See Also

View source: R/Rcoll.R


mpi.bcast is a collective call among all members in a comm. It broadcasts a message from the specified rank to all members.


mpi.bcast(x, type, rank = 0, comm = 1, buffunit=100)



data to be sent or received. Must be the same type among all members.


1 for integer, 2 for double, and 3 for character. Others are not supported.


the sender.


a communicator number.


a buffer unit number.


mpi.bcast is a blocking call among all members in a comm, i.e, all members have to wait until everyone calls it. All members have to prepare the same type of messages (buffers). Hence it is relatively difficult to use in R environment since the receivers may not know what types of data to receive, not mention the length of data. Users should use various extensions of mpi.bcast in R. They are mpi.bcast.Robj, mpi.bcast.cmd, and mpi.bcast.Robj2slave.

When type=5, MPI continuous datatype (double) is defined with unit given by buffunit. It is used to transfer huge data where a double vector or matrix is divided into many chunks with unit buffunit. Total ceiling(length(obj)/buffunit) units are transferred. Due to MPI specification, both buffunit and total units transferred cannot be over 2^31-1. Notice that the last chunk may not have full length of data due to rounding. Special care is needed.


mpi.bcast returns the message broadcasted by the sender (specified by the rank).


See Also

mpi.bcast.Robj, mpi.bcast.cmd, mpi.bcast.Robj2slave.

Rmpi documentation built on May 29, 2017, 3:48 p.m.

Related to mpi.bcast in Rmpi...