﻿ReduceScatter(T) Method (T[], ReductionOperation(T), Int32[], T[] )

[This is preliminary documentation and is subject to change.]

A collective operation that first performs a reduction on the given values (see Reduce<(Of <(T>)>)(array<T>[]()[], ReductionOperation<(Of <(T>)>), Int32, array<T>[]()[]%) and then scatters the results by sending some elements to each process. 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, array<T>[]()[]%)). 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: 0.9.0.0 (0.9.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. The length of this array must equal to sum of the counts in counts.
op
Type: MPI..::.ReductionOperation<(Of <(T>)>)
The operation used to combine the elements in inValues. 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. The
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.