MPI_ALLREDUCE(3)MPI_ALLREDUCE(3)NAMEMPI_Allreduce - Combines values from all processes and distributes the
result back to all processes
SYNOPSIS
C:
#include <mpi.h>
int MPI_Allreduce ( sendbuf, recvbuf, count,
datatype, op, comm )
void *sendbuf;
void *recvbuf;
int count;
MPI_Datatype datatype;
MPI_Op op;
MPI_Comm comm;
C++:
#include <mpi.h>
void Intracomm::Allreduce(
const void* sendbuf,
void* recvbuf,
int count,
const Datatype& datatype,
const Op& op) const
Fortran:
INCLUDE "mpif.h" (or USE MPI)
<type> SENDBUF(*), RECVBUF(*)
INTEGER count, datatype, op,
comm, ierror
CALL MPI_ALLREDUCE(sendbuf, recvbuf, count,
datatype, op, 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.
The MPI_IN_PLACE option as defined in the MPI 2.0 standard is also
supported in this implementation.
Page 1
MPI_ALLREDUCE(3)MPI_ALLREDUCE(3)DESCRIPTION
The MPI_Allreduce routine combines values from all processes and
distributes the result back to all processes. 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. In such cases, the input data is
taken at each process from the receive buffer, where it will be
replaced by the output data. 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.
count Specifies the number of elements in the send buffer (integer)
datatype Specifies the data type of elements in the send buffer (handle)
op Specifies the operation (handle)
comm Specifies the communicator (handle)
recvbuf Returns the starting 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