1
1
openmpi/ompi/mpi/man/man3/MPI_Testany.3

85 строки
3.8 KiB
Groff

.\"Copyright 2006, Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
.\" Copyright (c) 1996 Thinking Machines Corporation
.TH MPI_Testany 3OpenMPI "September 2006" "Open MPI 1.2" " "
.SH NAME
\fBMPI_Testany\fP \- Tests for completion of any one previously initiated communication in a list.
.SH SYNTAX
.ft R
.SH C Syntax
.nf
#include <mpi.h>
int MPI_Testany(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP,
int\fI *index\fP, int\fI *flag\fP, MPI_Status\fI *status\fP)
.SH Fortran Syntax
.nf
INCLUDE 'mpif.h'
MPI_TESTANY(\fICOUNT, ARRAY_OF_REQUESTS, INDEX, FLAG, STATUS, IERROR\fP)
LOGICAL \fIFLAG\fP
INTEGER \fICOUNT, ARRAY_OF_REQUESTS(*), INDEX\fP
INTEGER \fISTATUS(MPI_STATUS_SIZE), IERROR\fP
.SH C++ Syntax
.nf
#include <mpi.h>
static bool Request::Testany(int \fIcount\fP, Request \fIarray_of_requests\fP[],
int& \fIindex\fP, Status& \fIstatus\fP)
static bool Request::Testany(int \fIcount\fP, Request \fIarray_of_requests\fP[],
int& \fIindex\fP)
.SH INPUT PARAMETERS
.ft R
.TP 1i
count
List length (integer).
.TP 1i
array_of_requests
Array of requests (array of handles).
.SH OUTPUT PARAMETERS
.ft R
.TP 1i
index
Index of operation that completed, or MPI_UNDEFINED if none completed
(integer).
.TP 1i
flag
True if one of the operations is complete (logical).
.TP 1i
status
Status object (status).
.ft R
.TP 1i
IERROR
Fortran only: Error status (integer).
.SH DESCRIPTION
.ft R
MPI_Testany tests for completion of either one or none of the operations associated with active handles. In the former case, it returns \fIflag\fP = true, returns in \fIindex\fP the index of this request in the array, and returns in \fIstatus\fP the status of that operation; if the request was allocated by a nonblocking communication call then the request is deallocated 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 \fIflag\fP = false, returns a value of MPI_UNDEFINED in \fIindex\fP, and \fIstatus\fP is undefined.
.sp
The array may contain null or inactive handles. If the array contains no active handles then the call returns immediately with \fIflag\fP = true, \fIindex\fP = MPI_UNDEFINED, and an empty \fIstatus\fP.
.sp
If the array of requests contains active handles then the execution of
MPI_Testany(count, array_of_requests, index, status) has the same effect as the execution of MPI_Test(&\fIarray_of_requests[i\fP], \fIflag\fP, \fIstatus\fP), for \fIi\fP=0,1,...,count-1, in some arbitrary order, until one call returns \fIflag\fP = true, or all fail. In the former case, \fIindex\fP is set to the last value of \fIi\fP, and in the latter case, it is set to MPI_UNDEFINED. MPI_Testany with an array containing one active entry is equivalent to MPI_Test.
.sp
If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument.
.SH 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++ functions 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.
.sp
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.
.SH SEE ALSO
.ft R
.sp
.nf
MPI_Wait
MPI_Waitany
MPI_Waitsome
MPI_Test
MPI_Testsome
' @(#)MPI_Testany.3 1.20 06/03/09