MPI_Waitsome(3) MPI MPI_Waitsome(3) NAME MPI_Waitsome - Waits for some given MPI Requests to complete SYNOPSIS int MPI_Waitsome(int incount, MPI_Request array_of_requests[], int *outcount, int array_of_indices[], MPI_Status *array_of_statuses) INPUT PARAMETERS incount - length of array_of_requests (non-negative integer) INPUT/OUTPUT PARAMETERS array_of_requests - array of requests (handle) OUTPUT PARAMETERS outcount - number of completed requests (integer) array_of_indices - array of indices of operations that completed (integer) array_of_statuses - array of status objects for operations that completed (Status) NOTES The array of indices are in the range 0 to incount - 1 for C and in the range 1 to incount for Fortran. Null requests are ignored; if all requests are null, then the routine re- turns with outcount set to MPI_UNDEFINED . While it is possible to list a request handle more than once in the ar- ray_of_requests, such an action is considered erroneous and may cause the program to unexecpectedly terminate or produce incorrect results. MPI_Waitsome provides an interface much like the Unix select or poll calls and, in a high qualilty implementation, indicates all of the requests that have completed when MPI_Waitsome is called. However, MPI_Waitsome only guarantees that at least one request has completed; there is no guarantee that all completed requests will be returned, or that the entries in ar- ray_of_indices will be in increasing order. Also, requests that are com- pleted while MPI_Waitsome is executing may or may not be returned, depend- ing on the timing of the completion of the message. NOTES ON THE MPI_STATUS ARGUMENT The MPI_ERROR field of the status return is only set if the return from the MPI routine is MPI_ERR_IN_STATUS . That error class is only returned by the routines that take an array of status arguments ( MPI_Testall , MPI_Testsome , MPI_Waitall , and MPI_Waitsome ). In all other cases, the value of the MPI_ERROR field in the status is unchanged. See section 3.2.5 in the MPI-1.1 specification for the exact text. For send operations, the only use of status is for MPI_Test_cancelled or in the case that there is an error in one of the four routines that may return the error class MPI_ERR_IN_STATUS , in which case the MPI_ERROR field of status will be set. In that case, the value will be set to MPI_SUCCESS for any send or receive operation that completed successfully, or MPI_ERR_PEND- ING for any operation which has neither failed nor completed. THREAD AND INTERRUPT SAFETY This routine is thread-safe. This means that this routine may be safely used by multiple threads without the need for any user-provided thread locks. However, the routine is not interrupt safe. Typically, this is due to the use of memory allocation routines such as malloc or other non-MPICH runtime routines that are themselves not interrupt-safe. NOTES FOR FORTRAN All MPI routines in Fortran (except for MPI_WTIME and MPI_WTICK ) have an additional argument ierr at the end of the argument list. ierr is an inte- ger and has the same meaning as the return value of the routine in C. In Fortran, MPI routines are subroutines, and are invoked with the call state- ment. All MPI objects (e.g., MPI_Datatype , MPI_Comm ) are of type INTEGER in Fortran. ERRORS All MPI routines (except MPI_Wtime and MPI_Wtick ) return an error value; C routines as the value of the function and Fortran routines in the last ar- gument. Before the value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job. The error han- dler may be changed with MPI_Comm_set_errhandler (for communicators), MPI_File_set_errhandler (for files), and MPI_Win_set_errhandler (for RMA windows). The MPI-1 routine MPI_Errhandler_set may be used but its use is deprecated. 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; however, MPI implementations will attempt to continue whenever possible. MPI_SUCCESS - No error; MPI routine completed successfully. MPI_ERR_ARG - Invalid argument. Some argument is invalid and is not identified by a specific error class (e.g., MPI_ERR_RANK ). MPI_ERR_COUNT - Invalid count argument. Count arguments must be non-negative; a count of zero is often valid. MPI_ERR_REQUEST - Invalid MPI_Request . Either null or, in the case of a MPI_Start or MPI_Startall , not a persistent request. MPI_ERR_OTHER - Other error; use MPI_Error_string to get more information about this error code. 4/10/2026 MPI_Waitsome(3)
NAME | SYNOPSIS | INPUT PARAMETERS | INPUT/OUTPUT PARAMETERS | OUTPUT PARAMETERS | NOTES | NOTES ON THE MPI_STATUS ARGUMENT | THREAD AND INTERRUPT SAFETY | NOTES FOR FORTRAN | ERRORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=MPI_Waitsome&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
