MPI_ALLGATHERV(3)MPI_ALLGATHERV(3)NAMEMPI_Allgatherv - Gathers data from all tasks and delivers it
SYNOPSIS
C:
#include <mpi.h>
int MPI_Allgatherv ( sendbuf, sendcount, sendtype,
recvbuf, recvcounts, displs,
recvtype, comm )
void *sendbuf;
int sendcount;
MPI_Datatype sendtype;
void *recvbuf;
int *recvcounts;
int *displs;
MPI_Datatype recvtype;
MPI_Comm comm;
C++:
#include <mpi.h>
void Intracomm::Allgatherv(
const void* sendbuf,
int sendcount,
const Datatype& sendtype,
void* recvbuf,
const int recvcounts[],
const int displs[],
const Datatype& recvtype) const
Fortran:
INCLUDE "mpif.h" (or USE MPI)
<type> SENDBUF(*), RECVBUF(*)
INTEGER sendcount, sendtype, recvcounts(*), displs(*),
recvtype, comm, ierror
CALL MPI_ALLGATHERV(sendbuf, sendcount, sendtype,
recvbuf, recvcounts(*), displs(*), recvtype,
comm, ierror)
STANDARDS
This release implements the MPI 1.2 standard, as documented by the MPI
Forum in the spring 1997 release of MPI: A Message Passing Interface
Standard.
Page 1
MPI_ALLGATHERV(3)MPI_ALLGATHERV(3)
The MPI_IN_PLACE option as defined in the MPI 2.0 standard is also
supported in this implementation.
DESCRIPTION
The MPI_Allgatherv routine gathers data from all tasks and delivers it to
all. This routine accepts the following parameters:
sendbuf Specifies the starting address of the send buffer
(choice). You may also pass in the argument MPI_IN_PLACE
for the value of sendbuf at all processes. This causes
sendcount and sendtype to be ignored, and the input data
of each process is assumed to be in the area where that
process would receive its own contribution to the receive
buffer. Please note that using the MPI_IN_PLACE option in
Fortran causes the receive buffer to become a send-and-
receive buffer, so a binding that includes INTENT must be
marked as INOUT, not OUT.
sendcount Specifies the number of elements in the send buffer
(integer).
sendtype Specifies the data type of the send buffer elements
(handle).
recvcounts Specifies the integer array (of length group size,
specified in comm) containing the number of elements that
are received from each process.
displs Specifies the integer array (of length group size,
specified in comm). Entry i specifies the displacement
(relative to recvbuf ) at which to place the incoming data
from process i.
recvtype Specifies the data type of the receive buffer elements
(handle).
comm Specifies the communicator (handle).
recvbuf Returns the address of the receive buffer (choice).
ierror Specifies the return code value for successful completion,
which is in MPI_SUCCESS. MPI_SUCCESS is defined in the
mpif.h file.
Page 2