A collective operation that first performs a reduction on the given values (see Reduce<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>), Int32) from one group and then scatters the results by sending some elements to each process of the other group. The reduction will be performed on the entire array of values (like the array form of Reduce<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>), Int32)). Then, the array will be scattered, with process i receiving counts[i] elements. The process with rank 0 will receive the first counts[0] elements, the process with rank 1 will receive the next counts[1] elements, and so on.

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

Syntax

C#
public void ReduceScatter<T>(
	T[] inValues,
	ReductionOperation<T> op,
	int[] counts,
	ref T[] outValues
)
Visual Basic (Declaration)
Public Sub ReduceScatter(Of T) ( _
	inValues As T(), _
	op As ReductionOperation(Of T), _
	counts As Integer(), _
	ByRef outValues As T() _
)
Visual C++
public:
generic<typename T>
void ReduceScatter(
	array<T>^ inValues, 
	ReductionOperation<T>^ op, 
	array<int>^ counts, 
	array<T>^% outValues
)

Parameters

inValues
Type: array< T >[]()[]
An array of values that will be reduced. This array must be the same length at every process within a group.
op
Type: MPI..::.ReductionOperation<(Of <(T>)>)
The operation used to combine the elements in values. This operation must be associative.
counts
Type: array< System..::.Int32 >[]()[]
An array whose ith element states the number of elements from the reduced result that will be returned to the process with rank i. This array should be the same at every process within a group (though the count values within the array need not be the same). The sum of all counts for one group must be the same as the sume of all counts for the other group.
outValues
Type: array< T >[]()[] %
An array of length counts[Rank] containing the reduced results destined for the calling process.

Type Parameters

T
Any serializable type.

See Also