ExclusiveScan is a collective algorithm that performs partial reductions on data provided by
each process in the communicator. ExclusiveScan combines the values stored by each process into
partial results delivered to each process. The values are combined
in a user-defined way, specified via a delegate. If value1, value2, ..., valueN
are the values provided by the N processes in the communicator, the resulting value for the process with
rank P > 0 will be value1 op value2 op ... op valueP. The rank 0 process receives a default value.
ExclusiveScan is sometimes called an "exclusive" scan, because the result returned to each process
does not include the contribution of that process. For an "inclusive" scan (that does include the contribution
of the calling process in its result), use Scan<(Of <(T>)>)(T, ReductionOperation<(Of <(T>)>)).
Note that the results provided by ExclusiveScan are the same as those provided by Scan, except that
with ExclusiveScan, the process with rank i will receive the result that rank i-1 would have received from
Scan, i.e., ExclusiveScan gives the same results but shifted to the right.
Namespace:
MPIAssembly: MPI (in MPI.dll)
Version: 1.0.0.0 (1.0.0.0)
Syntax
| C# |
|---|
public T ExclusiveScan<T>( T value, ReductionOperation<T> op ) |
| Visual Basic (Declaration) |
|---|
Public Function ExclusiveScan(Of T) ( _ value As T, _ op As ReductionOperation(Of T) _ ) As T |
| Visual C++ |
|---|
public: generic<typename T> T ExclusiveScan( T value, ReductionOperation<T>^ op ) |
Parameters
- value
- Type: T
The value contributed by the calling process.
- op
- Type: MPI..::.ReductionOperation<(Of <(T>)>)
Operation used to combine two values from different processes. This operation must be associative.
Type Parameters
- T
- Any serializable type.