111 строки
4.1 KiB
Plaintext
111 строки
4.1 KiB
Plaintext
|
.\" Copyright 2013 Los Alamos National Security, LLC. All rights reserved.
|
||
|
.\" Copyright 2010 Cisco Systems, Inc. All rights reserved.
|
||
|
.\" Copyright 2006-2008 Sun Microsystems, Inc.
|
||
|
.\" Copyright (c) 1996 Thinking Machines Corporation
|
||
|
.TH MPI_Neighbor_allgather 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
||
|
.SH NAME
|
||
|
\fBMPI_Neighbor_allgather\fP \- Gathers and distributes data from and to all neighbors
|
||
|
|
||
|
.SH SYNTAX
|
||
|
.ft R
|
||
|
.SH C Syntax
|
||
|
.nf
|
||
|
#include <mpi.h>
|
||
|
int MPI_Neighbor_allgather(void\fI *sendbuf\fP, int \fI sendcount\fP,
|
||
|
MPI_Datatype\fI sendtype\fP, void\fI *recvbuf\fP, int\fI recvcount\fP,
|
||
|
MPI_Datatype\fI recvtype\fP, MPI_Comm\fI comm\fP)
|
||
|
|
||
|
.fi
|
||
|
.SH Fortran Syntax
|
||
|
.nf
|
||
|
INCLUDE 'mpif.h'
|
||
|
MPI_ALLGATHER(\fISENDBUF\fP,\fI SENDCOUNT\fP,\fI SENDTYPE\fP,\fI RECVBUF\fP,\fI RECVCOUNT\fP,\fI
|
||
|
RECVTYPE\fP,\fI COMM\fP,\fI IERROR\fP)
|
||
|
<type> \fISENDBUF\fP (*), \fIRECVBUF\fP (*)
|
||
|
INTEGER \fISENDCOUNT\fP,\fI SENDTYPE\fP,\fI RECVCOUNT\fP,\fI RECVTYPE\fP,\fI COMM\fP,
|
||
|
INTEGER \fIIERROR\fP
|
||
|
|
||
|
.fi
|
||
|
.SH INPUT PARAMETERS
|
||
|
.ft R
|
||
|
.TP 1i
|
||
|
sendbuf
|
||
|
Starting address of send buffer (choice).
|
||
|
.TP 1i
|
||
|
sendcount
|
||
|
Number of elements in send buffer (integer).
|
||
|
.TP 1i
|
||
|
sendtype
|
||
|
Datatype of send buffer elements (handle).
|
||
|
.TP 1i
|
||
|
recvbuf
|
||
|
Starting address of recv buffer (choice).
|
||
|
.TP 1i
|
||
|
recvcount
|
||
|
Number of elements received from any process (integer).
|
||
|
.TP 1i
|
||
|
recvtype
|
||
|
Datatype of receive buffer elements (handle).
|
||
|
.TP 1i
|
||
|
comm
|
||
|
Communicator (handle).
|
||
|
|
||
|
.SH OUTPUT PARAMETERS
|
||
|
.ft R
|
||
|
.TP 1i
|
||
|
recvbuf
|
||
|
Address of receive buffer (choice).
|
||
|
.ft R
|
||
|
.TP 1i
|
||
|
IERROR
|
||
|
Fortran only: Error status (integer).
|
||
|
|
||
|
.SH DESCRIPTION
|
||
|
.ft R
|
||
|
MPI_Neighbor_allgather is similar to MPI_Allgather, except that only the neighboring processes receive the result, instead of all processes. The neighbors and buffer layout is determined by the topology of \fIcomm\fP.
|
||
|
.sp
|
||
|
The type signature associated with sendcount, sendtype at a process must be equal to the type signature associated with recvcount, recvtype at any other process.
|
||
|
.fi
|
||
|
|
||
|
.sp
|
||
|
.SH NEIGHBOR ORDERING
|
||
|
For a distributed graph topology, created with MPI_Dist_graph_create, the sequence of neighbors
|
||
|
in the send and receive buffers at each process is defined as the sequence returned by MPI_Dist_graph_neighbors
|
||
|
for destinations and sources, respectively. For a general graph topology, created with MPI_Graph_create, the order of
|
||
|
neighbors in the send and receive buffers is defined as the sequence of neighbors as returned by MPI_Graph_neighbors.
|
||
|
Note that general graph topologies should generally be replaced by the distributed graph topologies.
|
||
|
|
||
|
For a Cartesian topology, created with MPI_Cart_create, the sequence of neighbors in the send and receive
|
||
|
buffers at each process is defined by order of the dimensions, first the neighbor in the negative direction
|
||
|
and then in the positive direction with displacement 1. The numbers of sources and destinations in the
|
||
|
communication routines are 2*ndims with ndims defined in MPI_Cart_create. If a neighbor does not exist, i.e., at
|
||
|
the border of a Cartesian topology in the case of a non-periodic virtual grid dimension (i.e.,
|
||
|
periods[...]==false), then this neighbor is defined to be MPI_PROC_NULL.
|
||
|
|
||
|
If a neighbor in any of the functions is MPI_PROC_NULL, then the neighborhood collective communication behaves
|
||
|
like a point-to-point communication with MPI_PROC_NULL in this direction. That is, the buffer is still part of
|
||
|
the sequence of neighbors but it is neither communicated nor updated.
|
||
|
|
||
|
.SH NOTES
|
||
|
.sp
|
||
|
The MPI_IN_PLACE option for \fIsendbuf\fP is not meaningful for this operation.
|
||
|
|
||
|
|
||
|
.SH ERRORS
|
||
|
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument.
|
||
|
.sp
|
||
|
Before the error value is returned, the current MPI error handler is
|
||
|
called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
|
||
|
may be changed with MPI_Comm_set_errhandler; 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.
|
||
|
|
||
|
.SH SEE ALSO
|
||
|
.ft R
|
||
|
.sp
|
||
|
MPI_Neighbor_allgatherv
|
||
|
MPI_Cart_create
|
||
|
MPI_Garph_create
|
||
|
MPI_Dist_graph_create
|
||
|
.br
|
||
|
MPI_Gather
|
||
|
|