MPI_EXSCAN(sendbuf, recvbuf, count, datatype, op, comm) | |
IN sendbuf | starting address of send buffer (choice) |
OUT recvbuf | starting address of receive buffer (choice) |
IN count | number of elements in input buffer (non-negative integer) |
IN datatype | data type of elements of input buffer (handle) |
IN op | operation (handle) |
IN comm | intracommunicator (handle) |
int MPI_Exscan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
MPI_EXSCAN(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, COMM, IERROR
{ void MPI::Intracomm::Exscan(const void* sendbuf, void* recvbuf, int count, const MPI::Datatype& datatype, const MPI::Op& op) const (binding deprecated, see Section Deprecated since MPI-2.2
) }
If comm is an intracommunicator,
MPI_EXSCAN is used to perform a prefix reduction on data distributed
across the group.
The value in recvbuf on the process with rank 0 is undefined, and recvbuf is not signficant on process 0.
The value in recvbuf on the process with rank 1 is defined as
the value in sendbuf on the process with rank 0.
For processes with rank i > 1, the operation returns, in the
receive buffer of the
process with rank i, the reduction of the values in the send buffers
of processes with ranks 0,...,i-1 (inclusive).
The type of operations
supported, their semantics, and the constraints on send and receive
buffers, are as for MPI_REDUCE.
The ``in place'' option for intracommunicators is specified by passing MPI_IN_PLACE in the sendbuf argument.
In this case, the input data is taken from the receive buffer, and replaced by the output data.
The receive buffer on rank 0 is not changed by this operation.
This operation is invalid for intercommunicators.
2.2
The exclusive scan is more general than the inclusive scan.
Any inclusive scan operation can be
achieved by using the exclusive scan and then locally combining the
local contribution. Note that for non-invertable operations such as
MPI_MAX, the exclusive scan cannot be computed with the
inclusive scan.
2.2 ( End of rationale.)
Rationale.
Up: Scan
Next: Example using MPI_SCAN
Previous: Inclusive Scan
Return to MPI-2.2 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-2.2 of September 4, 2009
HTML Generated on September 10, 2009