dwww Home | Manual pages | Find package

MPI_Improbe(3)                     Open MPI                     MPI_Improbe(3)

NAME
       MPI_Improbe - Non-blocking matched probe for a message.

SYNTAX
C Syntax
       #include <mpi.h>
       int MPI_Improbe(int source, int tag, MPI_Comm comm,
            int *flag, MPI_Message *message, MPI_Status *status)

Fortran Syntax
       USE MPI
       ! or the older form: INCLUDE 'mpif.h'
       MPI_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
            LOGICAL   FLAG
            INTEGER   SOURCE, TAG, COMM, MESSAGE
            INTEGER   STATUS(MPI_STATUS_SIZE), IERROR

Fortran 2008 Syntax
       USE mpi_f08
       MPI_Improbe(source, tag, comm, flag, message, status, ierror)
            INTEGER, INTENT(IN) :: source, tag
            TYPE(MPI_Comm), INTENT(IN) :: comm
            INTEGER, INTENT(OUT) :: flag
            TYPE(MPI_Message), INTENT(OUT) :: message
            TYPE(MPI_Status) :: status
            INTEGER, OPTIONAL, INTENT(OUT) :: ierror

C++ Syntax
       There is no C++ binding for this function.

INPUT PARAMETERS
       source    Source rank or MPI_ANY_SOURCE (integer).

       tag       Tag value or MPI_ANY_TAG (integer).

       comm      Communicator (handle).

OUTPUT PARAMETERS
       flag      Flag (logical).

       message   Message (handle).

       status    Status object (status).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION
       Like  MPI_Probe  and  MPI_Iprobe, the MPI_Mprobe and MPI_Improbe opera-
       tions allow incoming messages to be queried without actually  receiving
       them, except that MPI_Mprobe and MPI_Improbe provide a mechanism to re-
       ceive the specific message that was matched regardless of other  inter-
       vening  probe or receive operations.  This gives the application an op-
       portunity to decide how to receive the message, based on  the  informa-
       tion  returned  by the probe.  In particular, the application may allo-
       cate memory for the receive buffer  according  to  the  length  of  the
       probed message.

       A matching probe with MPI_PROC_NULL as source returns flag = true, mes-
       sage = MPI_MESSAGE_NO_PROC, and the  status  object  returns  source  =
       MPI_PROC_NULL, tag = MPI_ANY_TAG, and count = 0.

       MPI_Iprobe  returns  a true value in flag if a message has been matched
       and can be received by passing the message handle to the  MPI_Mrecv  or
       MPI_Imrecv functions, provided the source was not MPI_PROC_NULL.

NOTE
       This is an MPI-3 function and has no C++ binding.

ERRORS
       Almost  all MPI routines return an error value; C routines as the value
       of the function and Fortran routines in the last  argument.  C++  func-
       tions do not return errors.

       Before  the  error  value is returned, the current MPI error handler is
       called. By default, this error handler aborts the MPI job,  except  for
       I/O   function   errors.   The   error  handler  may  be  changed  with
       MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
       may  be  used  to cause error values to be returned. Note that MPI does
       not guarantee that an MPI program can continue past an error.

SEE ALSO
       MPI_Mprobe
       MPI_Probe
       MPI_Iprobe
       MPI_Mrecv
       MPI_Imrecv
       MPI_Cancel

4.1.2                            Nov 24, 2021                   MPI_Improbe(3)

Generated by dwww version 1.14 on Mon Jan 27 09:46:52 CET 2025.