Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
MPI_Testall(3)			       MPI			  MPI_Testall(3)

NAME
     MPI_Testall  -   Tests  for  the completion of all previously initiated re-
     quests

SYNOPSIS
     int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag,
     MPI_Status *array_of_statuses)

INPUT PARAMETERS
     count  - count (non-negative integer)

INPUT/OUTPUT PARAMETERS
     array_of_requests
	    - array of requests (handle)

OUTPUT PARAMETERS
     flag   - flag (logical)
     array_of_statuses
	    - array of status objects (Status)

NOTES
     flag is true only if all requests have completed.	Otherwise, flag is false
     and neither the array_of_requests nor the array_of_statuses is modified.

     If one or more of the requests completes with an  error,  MPI_ERR_IN_STATUS
     is  returned.   An error value will be present is elements of array_of_sta-
     tuses associated with the requests.  Likewise, the MPI_ERROR field  in  the
     status  elements  associated with requests that have successfully completed
     will be MPI_SUCCESS .  Finally, those requests that have not completed will
     have a value of MPI_ERR_PENDING .

     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.

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_IN_STATUS
	    - The actual error value is in the MPI_Status argument.  This  error
	    class  is  returned  only  from  the  multiple-completion routines (
	    MPI_Testall , MPI_Testany , MPI_Testsome , MPI_Waitall , MPI_Waitany
	    , and MPI_Waitsome ).  The field MPI_ERROR in  the	status	argument
	    contains  the  error value or MPI_SUCCESS (no error and complete) or
	    MPI_ERR_PENDING to indicate that the request has not completed.  The
	    MPI Standard does not specify what the result of the  multiple  com-
	    pletion  routines  is  when  an  error  occurs.   For example, in an
	    MPI_WAITALL , does the routine wait for all requests to either  fail
	    or	complete, or does it return immediately (with the MPI definition
	    of immediately, which means independent  of  actions  of  other  MPI
	    processes)?   MPICH  has chosen to make the return immediate (alter-
	    nately,  local  in	MPI  terms),  and  to  use   the   error   class
	    MPI_ERR_PENDING  (introduced  in MPI 1.1) to indicate which requests
	    have not completed.  In most cases, only one request with  an  error
	    will  be detected in each call to an MPI routine that tests multiple
	    requests.  The requests that have not been processed (because an er-
	    ror occurred in one of the requests) will have their MPI_ERROR field
	    marked with MPI_ERR_PENDING .

     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_Testall(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=MPI_Testall&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help