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

FreeBSD Manual Pages

  
 
  

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_STA-
       TUS  is	returned.   An	error value will be present is elements	of ar-
       ray_of_statuses associated with the requests.  Likewise,	the  MPI_ERROR
       field  in  the  status elements associated with requests	that have suc-
       cessfully 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 re-
       turned 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  un-
       changed.	  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_PENDING	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 integer 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	statement.

       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	argument.  Before the value is returned, the current MPI error
       handler is called.  By default, this error handler aborts the MPI  job.
       The error handler may be	changed	with MPI_Comm_set_errhandler (for com-
       municators),  MPI_File_set_errhandler  (for files), and MPI_Win_set_er-
       rhandler	(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	 when-
       ever possible.

       MPI_SUCCESS
	      -	No error; MPI routine completed	successfully.
       MPI_ERR_ARG
	      -	Invalid	argument.  Some	argument is invalid and	is not identi-
	      fied 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  rou-
	      tines ( 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  er-
	      ror  and	complete)  or MPI_ERR_PENDING to indicate that the re-
	      quest has	not completed.	The MPI	Standard does not specify what
	      the result of the	multiple completion 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 cho-
	      sen to make the return  immediate	 (alternately,	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	error 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.

				   2/3/2025			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+14.3.quarterly>

home | help