MPI_TESTALL, MPI_Testall Purpose Tests a collection of nonblocking operations for completion. C synopsis #include int MPI_Testall(int count,MPI_Request *array_of_requests, int *flag,MPI_Status *array_of_statuses); C++ synopsis #include mpi.h bool MPI::Request::Testall(int count, MPI::Request req_array[]); #include mpi.h bool MPI::Request::Testall(int count, MPI::Request req_array[], MPI::Status stat_array[]); FORTRAN synopsis include 'mpif.h' or use mpi MPI_TESTALL(INTEGER COUNT,INTEGER ARRAY_OF_REQUESTS(*),INTEGER FLAG, INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*),INTEGER IERROR) Description This subroutine tests a collection of nonblocking operations for completion. flag = true is returned if all operations associated with active handles in the array completed, or when no handle in the list is active. Each status entry of an active handle request is set to the status of the corresponding operation. A request allocated by a nonblocking operation call is deallocated and the handle is set to MPI_REQUEST_NULL. Each status entry of a null or inactive handle is set to empty. If one or more requests have not completed, flag = false is returned. No request is modified and the values of the status entries are undefined. The error fields are never modified unless the function gives a return code of MPI_ERR_IN_STATUS. In which case, the error field of every MPI_Status is modified to reflect the result of the corresponding request. Passing MPI_STATUSES_IGNORE for the array_of_statuses argument causes PE MPI to skip filling in the status fields. By passing this value for array_of_statuses, you can avoid having to allocate a status object array in programs that do not need to examine the status fields. When one of the MPI wait or test calls returns status for a nonblocking operation request and the corresponding blocking operation does not provide a status argument, the status from this wait or test call does not contain meaningful source, tag, or message size information. When you use this subroutine in a threads application, make sure the request is tested on only one thread. The request does not have to be tested on the thread that created it. See IBM Parallel Environment for AIX: MPI Programming Guide for more information on programming with MPI in a threads environment. Parameters count is the number of requests to test (integer) (IN) array_of_requests is an array of requests of length count (array of handles) (INOUT) flag (logical) (OUT) array_of_statuses is an array of status of length count objects (array of status) (INOUT). Note that in FORTRAN a status object is itself an array. IERROR is the FORTRAN return code. It is always the last argument. Errors Invalid count count < 0 Invalid request array Invalid request(s) Truncation occurred A GRequest free function returned an error A GRequest query function returned an error Invalid status ignore value Invalid form of status ignore MPI not initialized MPI already finalized Develop mode error if: Illegal buffer update (ISEND) Inconsistent datatype (MPE_I collectives) Inconsistent message length (MPE_I collectives) Inconsistent op (MPE_I collectives) Match of blocking and non-blocking collectives (MPE_I collectives) Related information MPI_TEST MPI_WAITALL