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

FreeBSD Manual Pages

  
 
  

home | help
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
       returns 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  re-
       quests  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 array_of_indices will be in increasing order. Also,
       requests	that are completed while MPI_Waitsome is executing may or  may
       not  be returned, depending on the timing of the	completion of the mes-
       sage.

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_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_Waitsome(3)

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+14.3.quarterly>

home | help