Open MPI logo

MPI_Testany(3) man page (version 1.2.9)

  |   Home   |   Support   |   FAQ   |  

« Return to documentation listing



NAME

       MPI_Testany - Tests for completion of any one previously initiated com-
       munication in a list.

SYNTAX


C Syntax

       #include <mpi.h>
       int MPI_Testany(int count, MPI_Request *array_of_requests,
            int *index, int *flag, MPI_Status *status)

Fortran Syntax

       INCLUDE 'mpif.h'
       MPI_TESTANY(COUNT, ARRAY_OF_REQUESTS, INDEX, FLAG, STATUS, IERROR)
            LOGICAL   FLAG
            INTEGER   COUNT, ARRAY_OF_REQUESTS(*), INDEX
            INTEGER   STATUS(MPI_STATUS_SIZE), IERROR

C++ Syntax

       #include <mpi.h>
       static bool Request::Testany(int count, Request array_of_requests[],
            int& index, Status& status)

       static bool Request::Testany(int count, Request array_of_requests[],
            int& index)

INPUT PARAMETERS

       count     List length (integer).

       array_of_requests
                 Array of requests (array of handles).

OUTPUT PARAMETERS

       index     Index of operation that completed, or MPI_UNDEFINED  if  none
                 completed (integer).

       flag      True if one of the operations is complete (logical).

       status    Status object (status).

       IERROR    Fortran only: Error status (integer).

DESCRIPTION

       MPI_Testany  tests  for  completion of either one or none of the opera-
       tions associated with active handles. In the former  case,  it  returns
       flag  =  true, returns in index the index of this request in the array,
       and returns in status the status of that operation; if the request  was
       allocated by a nonblocking communication call then the request is deal-
       located and the handle  is  set  to  MPI_REQUEST_NULL.  (The  array  is
       indexed  from  0  in  C, and from 1 in Fortran.) In the latter case (no
       operation completed), it returns flag  =  false,  returns  a  value  of
       MPI_UNDEFINED in index, and status is undefined.

       returns  flag  = true, or all fail. In the former case, index is set to
       the last value of i, and in the latter case, it  is  set  to  MPI_UNDE-
       FINED. MPI_Testany with an array containing one active entry is equiva-
       lent to MPI_Test.

       If your application does not need to examine the status field, you  can
       save  resources by using the predefined constant MPI_STATUS_IGNORE as a
       special value for the status argument.

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. If the default  error  handler  is  set  to
       MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
       will be used to throw an MPI::Exception object.

       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,           MPI_File_set_errhandler,          or
       MPI_Win_set_errhandler (depending on the type of MPI handle that gener-
       ated  the  request); 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.

       Note that per MPI-1 section 3.2.5, MPI exceptions on requests passed to
       MPI_TESTANY do not set the status.MPI_ERROR field in the returned  sta-
       tus.  The error code is passed to the back-end error handler and may be
       passed back to the caller through the return value  of  MPI_TESTANY  if
       the  back-end error handler returns it.  The pre-defined MPI error han-
       dler MPI_ERRORS_RETURN exhibits this behavior, for example.

SEE ALSO

       MPI_Comm_set_errhandler
       MPI_File_set_errhandler
       MPI_Test
       MPI_Testall
       MPI_Testsome
       MPI_Wait
       MPI_Waitall
       MPI_Waitany
       MPI_Waitsome
       MPI_Win_set_errhandler

Open MPI 1.2                    September 2006           MPI_Testany(3OpenMPI)

« Return to documentation listing