aa7317d635
This commit was SVN r11871.
91 строка
4.1 KiB
Groff
91 строка
4.1 KiB
Groff
.\"Copyright 2006, Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
|
|
.\" Copyright (c) 1996 Thinking Machines Corporation
|
|
.TH MPI_Testsome 3OpenMPI "September 2006" "Open MPI 1.2" " "
|
|
.SH NAME
|
|
\fBMPI_Testsome\fP \- Tests for completion of one or more previously initiated communications in a list.
|
|
|
|
.SH SYNTAX
|
|
.ft R
|
|
.SH C Syntax
|
|
.nf
|
|
#include <mpi.h>
|
|
int MPI_Testsome(int \fIincount\fP, MPI_Request \fI*array_of_requests\fP,
|
|
int\fI *outcount\fP, int\fI *array_of_indices\fP, MPI_Status\fI *array_of_statuses\fP)
|
|
|
|
.SH Fortran Syntax
|
|
.nf
|
|
INCLUDE 'mpif.h'
|
|
MPI_TESTSOME(\fIINCOUNT, ARRAY_OF_REQUESTS, OUTCOUNT,
|
|
ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERROR\fP)
|
|
INTEGER \fIINCOUNT, ARRAY_OF_REQUESTS(*)\fP
|
|
INTEGER \fIOUTCOUNT, ARRAY_OF_INDICES(*)\fP
|
|
INTEGER \fIARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR\fP
|
|
|
|
.SH C++ Syntax
|
|
.nf
|
|
#include <mpi.h>
|
|
static int Request::Testsome(int \fIincount\fP, Request
|
|
\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[], Status \fIarray_of_statuses\fP[])
|
|
|
|
static int Request::Testsome(int \fIincount\fP, Request
|
|
\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[])
|
|
|
|
.SH INPUT PARAMETERS
|
|
.ft R
|
|
.TP 1i
|
|
incount
|
|
Length of array_of_requests (integer).
|
|
.TP 1i
|
|
array_of_requests
|
|
Array of requests (array of handles).
|
|
|
|
.SH OUTPUT PARAMETERS
|
|
.ft R
|
|
.TP 1i
|
|
outcount
|
|
Number of completed requests (integer).
|
|
.TP 1i
|
|
array_of_indices
|
|
Array of indices of operations that completed (array of integers).
|
|
.TP 1i
|
|
array_of_statuses
|
|
Array of status objects for operations that completed (array of status).
|
|
.ft R
|
|
.TP 1i
|
|
IERROR
|
|
Fortran only: Error status (integer).
|
|
|
|
.SH DESCRIPTION
|
|
.ft R
|
|
Behaves like MPI_Waitsome, except that it returns immediately. If no operation has completed it returns outcount = 0. If there is no active handle in the list, it returns outcount = MPI_UNDEFINED.
|
|
.sp
|
|
MPI_Testsome is a local operation, which returns immediately, whereas MPI_Waitsome blocks until a communication completes, if it was passed a list that contains at least one active handle. Both calls fulfill a fairness requirement: If a request for a receive repeatedly appears in a list of requests passed to MPI_Waitsome or MPI_Testsome, and a matching send has been posted, then the receive will eventually succeed unless the send is satisfied by another receive; send requests also fulfill this fairness requirement.
|
|
.sp
|
|
Errors that occur during the execution of MPI_Testsome are handled as for
|
|
MPI_Waitsome.
|
|
.sp
|
|
If your application does not need to examine the \fIarray_of_statuses\fP field, you can save resources by using the predefined constant MPI_STATUSES_IGNORE can be used as a special value for the \fIarray_of_statuses\fP argument.
|
|
|
|
.SH NOTES
|
|
The use of MPI_Testsome is likely to be more
|
|
efficient than the use of MPI_Testany. The former returns information on all completed communications; with the latter, a new call is required for each communication that completes.
|
|
.sp
|
|
A server with multiple clients can use MPI_Waitsome so as not to starve any client. Clients send messages to the server with service requests. The server calls MPI_Waitsome with one receive request for each client, then handles all receives that have completed. If a call to MPI_Waitany is used instead, then one client could starve while requests from another client always sneak in first.
|
|
|
|
.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
|
|
.ftR
|
|
.sp
|
|
MPI_Waitsome
|
|
.br
|
|
MPI_Waitany
|
|
.br
|
|
MPI_Testany
|
|
|
|
' @(#)MPI_Testsome.3 1.20 06/03/09
|