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  -	lists length (integer)
       array_of_requests
	      -	array of requests (array of handles)

OUTPUT PARAMETERS
       flag   -	True if	all requests have completed; false otherwise (logical)
       array_of_statuses
	      -	array of status	objects	(array of Status).   May  be  MPI_STA-
	      TUSES_IGNORE .

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_status  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.

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 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.

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 guarentee 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_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  occured
	      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_ARG
	      -	Invalid	argument.  Some	argument is invalid and	is not identi-
	      fied by a	specific error class (e.g., MPI_ERR_RANK ).

LOCATION
       src/mpi/pt2pt/testall.c

				   9/20/2012			MPI_Testall(3)

NAME | SYNOPSIS | INPUT PARAMETERS | OUTPUT PARAMETERS | NOTES | THREAD AND INTERRUPT SAFETY | NOTES ON THE MPI_STATUS ARGUMENT | NOTES FOR FORTRAN | ERRORS | LOCATION

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

home | help