 
  
  
  
  
The functions in this section perform a global reduce operation (such
as sum, max, logical AND, etc.) across all the members of a group.
The reduction operation can be either one of a predefined list of
operations, or a user-defined operation.
The global reduction functions come in several flavors: a reduce that
returns the result of the reduction at one node, an all-reduce that
returns this result at all nodes, and a scan (parallel prefix)
operation.  In addition, a reduce-scatter operation combines the
functionality of a reduce and of a scatter operation.  In order to
improve performance, the functions can be passed an array of
values; one call will perform a sequence of element-wise
reductions on the arrays of values.
Figure  gives a pictorial representation of these
operations.
 gives a pictorial representation of these
operations.
 
Figure: Reduce functions illustrated for a group of three
processes.  In each case, each row of boxes represents data items in
one process.  Thus, in the reduce, initially each process has three
items; after the reduce the root process has three sums.