MPI_WAITALL, MPI_Waitall Purpose Waits for a collection of nonblocking operations to complete. C synopsis #include int MPI_Waitall(int count,MPI_Request *array_of_requests, MPI_Status *array_of_statuses); C++ synopsis #include mpi.h void MPI::Request::Waitall(int count, MPI::Request req_array[]); #include mpi.h void MPI::Request::Waitall(int count, MPI::Request req_array[], MPI::Status stat_array[]); FORTRAN synopsis include 'mpif.h' or use mpi MPI_WAITALL(INTEGER COUNT,INTEGER ARRAY_OF_ REQUESTS(*), INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*),INTEGER IERROR) Description This subroutine blocks until all operations associated with active handles in the list complete, and returns the status of each operation. array_of_requests and array_of statuses contain count entries. The ith entry in array_of_statuses is set to the return status of the ith operation. Requests created by nonblocking operations are deallocated and the corresponding handles in the array are set to MPI_REQUEST_NULL. If array_of_requests contains null or inactive handles, MPI_WAITALL sets the status of each one to empty. MPI_WAITALL(count, array_of_requests, array_of_statuses) has the same effect as the execution of MPI_WAIT(array_of_requests[i], array_of_statuses[i]) for i = 0, 1, ..., (count-1), in some arbitrary order. MPI_WAITALL with an array of length one is equivalent to MPI_WAIT. 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 you use this subroutine in a threads application, make sure that the wait for a given request is done on only one thread. The wait does not have to be done 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 lists length (integer) (IN) array_of_requests is an array of requests of length count (array of handles) (INOUT) array_of_statuses is an array of status objects of length count (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 A GRequest free function returned an error A GRequest query function returned an error Invalid status ignore value Invalid form of status ignore Invalid count count < 0 Invalid request array Invalid request(s) Truncation occurred 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_TESTALL MPI_WAIT