NAME
MMPPIISSttaarrttaallll - Starts a collection of requests.
SSYYNNTTAAXX CC SSyynnttaaxx#include
int MPIStartall(int count, MPIRequest *arrayofrequests) FFoorrttrraann SSyynnttaaxx INCLUDE 'mpif.h'MPISTARTALL(COUNT, ARRAYOFREQUESTS, IERROR)
INTEGER COUNT, ARRAYOFREQUESTS(*), IERROR
CC++++ SSyynnttaaxx#include
static void Prequest::Startall(int count, Prequest arrayofrequests[]) IINNPPUUTT PPAARRAAMMEETTEERR count List length (integer). IINNPPUUTT//OOUUTTPPUUTT PPAARRAAMMEETTEERR arrayofrequests Array of requests (array of handle). OOUUTTPPUUTT PPAARRAAMMEETTEERRIERROR Fortran only: Error status (integer).
DESCRIPTION
Starts all communications associated with requests in arrayofrequests. A call to MPIStartall(count, arrayofrequests)has the same effect as calls to MPIStart (&arrayofrequests[i]), exe-
cuted for i=0 ,..., count-1, in some arbitrary order.
A communication started with a call to MPIStart or MPIStartall iscompleted by a call to MPIWait, MPITest, or one of the derived func-
tions MPIWaitany, MPITestany, MPIWaitall, MPITestall, MPIWaitsome,MPITestsome (these are described in Section 3.7.5 of the MPI-1 Stan-
dard, "Multiple Completions"). The request becomes inactive after suc-
cessful completion by such a call. The request is not deallocated, and it can be activated anew by another MPIStart or MPIStartall call. A persistent request is deallocated by a call to MPIRequestfree (seeSection 3.7.3 of the MPI-1 Standard, "Communication Completion").
The call to MPIRequestfree can occur at any point in the program after the persistent request was created. However, the request will be deallocated only after it becomes inactive. Active receive requests should not be freed. Otherwise, it will not be possible to check that the receive has completed. It is preferable, in general, to free requests when they are inactive. If this rule is followed, then the persistent communication request functions will be invoked in a sequence of the form, Create (Start Complete)* Free where * indicates zero or more repetitions. If the same communicationobject is used in several concurrent threads, it is the user's respon-
sibility to coordinate calls so that the correct sequence is obeyed. A send operation initiated with MPIStart can be matched with any receive operation and, likewise, a receive operation initiated with MPIStart can receive messages generated by any send operation. EERRRROORRSS Almost all MPI routines return an error value; C routines as the valueof the function and Fortran routines in the last argument. C++ func-
tions do not return errors. If the default error handler is set toMPI::ERRORSTHROWEXCEPTIONS, 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 withMPICommseterrhandler; the predefined error handler MPIERRORSRETURN
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
MPIBsendinit MPIRsendinit MPISendinit MPISsendinit MPIRecvinit MPIStart MPIRequestfree Open MPI 1.2 September 2006 MPIStartall(3OpenMPI)