MPI_REDUCE(3)MPI_REDUCE(3)NAMEMPI_Reduce - Reduces values on all processes to a single value
SYNOPSIS
C:
#include <mpi.h>
int MPI_Reduce ( sendbuf, recvbuf, count, datatype,
op, root, comm )
void *sendbuf;
void *recvbuf;
int count;
MPI_Datatype datatype;
MPI_Op op;
int root;
MPI_Comm comm;
C++:
#include <mpi.h>
void Intracomm::Reduce(
const void* sendbuf,
void* recvbuf,
int count,
const Datatype& datatype,
const Op& op,
int root) const
Fortran:
INCLUDE "mpif.h" (or USE MPI)
<type> SENDBUF(*), RECVBUF(*)
INTEGER count, datatype, op, root, comm, ierror
CALL MPI_REDUCE(sendbuf, recvbuf, count, datatype, op, root, 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_REDUCE(3)MPI_REDUCE(3)DESCRIPTION
The MPI_Reduce routine reduces values on all processes to a single value.
This routine accepts the following parameters:
sendbuf Specifies the address of the send buffer (choice). You may
also pass in the argument MPI_IN_PLACE for the value of sendbuf
at the root. In such a case, the input data is taken at the
root from the receive buffer, where it will be replaced by the
output data.
count Specifies the number of elements in the send buffer (integer)
datatype Specifies the data type of elements of the send buffer (handle)
op Specifies the reduce operation (handle)
root Specifies the rank of the root process (integer)
comm Specifies the communicator (handle)
recvbuf Returns the address of the receive buffer (choice, significant
only at root)
ierror Specifies the return code value for successful completion,
which is in MPI_SUCCESS. MPI_SUCCESS is defined in the mpif.h
file.
NOTES
This implementation currently uses a simple tree algorithm.
Page 2