Point to Point Communication I

3.1 Syntax

Note the "I" following the "_" for non-blocking calls, e.g., MPI_Isend

The nonblocking calls have the same syntax (S) as the blocking ones, with two exceptions:

  1. Each call has an "I" immediately following the "_".
  2. The last argument is a handle to an opaque request object that contains information about the message, i.e., its status.
For example, the standard non-blocking send and a corresponding Wait call look like this:

  • C:

    MPI_Isend (buf,count,dtype,dest,tag,comm,request)
    MPI_Wait (request,status)

  • Fortran:

    MPI_Isend (buf,count,dtype,dest,tag,comm,request,ierror)
    MPI_Wait (request,status,ierror)

Similarly, the non-blocking receive call is MPI_Irecv.

Wait and Test arguments

  • input: one or more requests (handles to objects containing status)
  • output: one or more statuses
See MPI Point to Point II for more info

The Wait and Test calls take one or more request handles as input and return one or more statuses. In addition, Test indicates whether any of the communications to which the request applies have completed. Further details concerning Wait, Test, and status can be found in MPI Point to Point II.