Nonblocking Calls



next up previous contents
Next: Persistent Requests Up: Communication Modes Previous: Blocking Calls

Nonblocking Calls

We use the same naming conventions as for blocking communication: a prefix of B, S, or R is used for buffered, synchronous or ready mode. In addition, a prefix of I (for immediate) indicates that the call is nonblocking. There is only one nonblocking receive call, MPI_IRECV. Nonblocking send operations are completed with the same Wait and Test calls as for standard-mode send.

 MPI_IBSEND (buf, count, datatype, dest,tag, comm, request)

   IN     buf          initial address of send buffer
   IN     count        number of entries in send buffer
   IN     datatype     datatype of each send buffer entry
   IN     dest         rank of destination
   IN     tag          message tag
   IN     comm         communicator
   OUT    request      request handle

MPI_Ibsend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

MPI_IBSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)<type> BUF(*)
INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR

MPI_IBSEND posts a buffered-mode, nonblocking send.

 MPI_ISSEND (buf, count, datatype, dest,tag, comm, request)

   IN     buf          initial address of send buffer
   IN     count        number of entries in send buffer
   IN     datatype     datatype of each send buffer entry
   IN     dest         rank of destination
   IN     tag          message tag
   IN     comm         communicator
   OUT    request      request handle

MPI_Issend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

MPI_ISSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)<type> BUF(*)
INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR

MPI_ISSEND posts a synchronous-mode, nonblocking send.

 MPI_IRSEND (buf, count, datatype, dest,tag, comm, request)

   IN     buf          initial address of send buffer
   IN     count        number of entries in send buffer
   IN     datatype     datatype of each send buffer entry
   IN     dest         rank of destination
   IN     tag          message tag
   IN     comm         communicator
   OUT    request      request handle

MPI_Irsend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)

MPI_IRSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)<type> BUF(*)
INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR

MPI_IRSEND posts a ready-mode, nonblocking send.



Jack Dongarra
Fri Sep 1 06:16:55 EDT 1995