Definition
MPI_Bsend_init prepares a request handle for buffered sending using persistent communications. The handle request is inactive upon creation because no actual buffered send is issued until the request handle is passed to MPI_Start, at which point it becomes active. An MPI_Bsend_init followed with an MPI_Start is equivalent to MPI_Ibsend: the buffered send is issued, but completion must still be explicitly checked. Therefore, a wait such as MPI_Wait or a test such as MPI_Test is required before the buffers passed to MPI_Bsend_init can be safely reused. Once the request handle of a persistent communication has been waited upon, or successfully tested, it becomes inactive and can be passed again to MPI_Start to issue that same buffered send again. This is how persistent communications save time; they decrease the overhead about argument processing since the list of arguments passed is already known. Using an MPI_Bsend_init does not require the corresponding receive on the receiver MPI process to be done via persistent communications, and vice-versa. Other persistent communications are: MPI_Recv_init, MPI_Send_init, MPI_Ssend_init and MPI_Rsend_init.
int MPI_Bsend_init(const void* buffer,
int count,
MPI_Datatype datatype,
int recipient,
int tag,
MPI_Comm communicator,
MPI_Request* request);