Reduce is a collective algorithm that combines the values supplied by each process in the leaf group into a single value available at the designated root process. This particular variant of Reduce<(Of <(T>)>)(T, ReductionOperation<(Of <(T>)>), Int32) applies to each of the elements of the provided arrays. Each process must provide arrays of the same length, and the values at each array index are combined in a user-defined way, specified via a delegate. If value1, value2, ..., valueN are the ith values provided by the N processes in the communicator, the ith result will be the value value1 op value2 op ... op valueN. The resulting array is only available to the root process. If all processes need the result of the reduction, use Allreduce<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>), array<T>[]()[]%).

Namespace:  MPI
Assembly:  MPI (in MPI.dll)
Version: (


public T[] Reduce<T>(
	T[] values,
	ReductionOperation<T> op,
	int root
Visual Basic (Declaration)
Public Function Reduce(Of T) ( _
	values As T(), _
	op As ReductionOperation(Of T), _
	root As Integer _
) As T()
Visual C++
generic<typename T>
array<T>^ Reduce(
	array<T>^ values, 
	ReductionOperation<T>^ op, 
	int root


Type: array< T >[]()[]
The local values that will be combined with the values provided by other leaf group processes.
Type: MPI..::.ReductionOperation<(Of <(T>)>)
The operation used to combine two values. This operation must be associative.
Type: System..::.Int32
On leaf group processes, the rank of the process that is the root of the reduction operation, to which this routine will return the result of the reduction operation. On the root process, should be Root. On non-root processes in the root group, should be Null.

Type Parameters

Any serializable type.

Return Value

On the root, an array that contains the result of elementwise reduction on the values arrays provided by each process. On all other processes, null.

See Also