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

  
 
  

home | help
MPI_Neighbor_alltoall(3)	       MPI		MPI_Neighbor_alltoall(3)

NAME
     MPI_Neighbor_alltoall  -	Sends  and  Receivs  data  from  all neighboring
     processes

SYNOPSIS
     int MPI_Neighbor_alltoall(const void *sendbuf, int sendcount,
     MPI_Datatype sendtype, void *recvbuf, int recvcount,
     MPI_Datatype recvtype, MPI_Comm comm)

     int MPI_Neighbor_alltoall_c(const void *sendbuf, MPI_Count sendcount,
     MPI_Datatype sendtype, void *recvbuf,
     MPI_Count recvcount, MPI_Datatype recvtype,
     MPI_Comm comm)

INPUT PARAMETERS
     sendbuf
	    - starting address of send buffer (choice)
     sendcount
	    - number of elements sent to each neighbor (non-negative integer)
     sendtype
	    - data type of send buffer elements (handle)
     recvcount
	    - number of elements received from each neighbor (non-negative inte-
	    ger)
     recvtype
	    - data type of receive buffer elements (handle)
     comm   - communicator with topology structure (handle)

OUTPUT PARAMETERS
     recvbuf
	    - starting address of receive buffer (choice)

NOTES
     In this function, each process i receives data items from each process j if
     an edge (j,i) exists in the topology graph or  Cartesian  topology.   Simi-
     larly,  each  process  i  sends data items to all processes j where an edge
     (i,j) exists. This call is more general than MPI_NEIGHBOR_ALLGATHER in that
     different data items can be sent to each neighbor. The k-th block	in  send
     buffer  is  sent  to the k-th neighboring process and the l-th block in the
     receive buffer is received from the l-th neighbor.

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_BUFFER
	    - Invalid buffer pointer.  Usually a null buffer where  one  is  not
	    valid.
     MPI_ERR_COMM
	    -  Invalid communicator.  A common error is to use a null communica-
	    tor in a call (not even allowed in MPI_Comm_rank ).
     MPI_ERR_COUNT
	    - Invalid count argument.  Count arguments must be	non-negative;  a
	    count of zero is often valid.
     MPI_ERR_TYPE
	    -  Invalid datatype argument.  Additionally, this error can occur if
	    an uncommitted MPI_Datatype (see MPI_Type_commit ) is used in a com-
	    munication call.
     MPI_ERR_OTHER
	    - Other error; use MPI_Error_string to get	more  information  about
	    this error code.

				    4/10/2026		MPI_Neighbor_alltoall(3)

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

home | help