Difference between revisions of "Allreduce"
From Mesham
Jump to navigationJump to searchm |
m (6 revisions imported) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 9: | Line 9: | ||
== Example == | == Example == | ||
| − | var x:Int::allocated[multiple[]]; | + | function void main() { |
| − | + | var x:Int::allocated[multiple[]]; | |
| − | + | var p; | |
| − | + | par p from 0 to 3 { | |
| − | + | (x::allreduce["min"]):=p; | |
| + | }; | ||
}; | }; | ||
Latest revision as of 15:44, 15 April 2019
Syntax
allreduce[operation]
Semantics
Similar to the reduce type, but the reduction will be performed on each process and the result is also available to all.
Example
function void main() {
var x:Int::allocated[multiple[]];
var p;
par p from 0 to 3 {
(x::allreduce["min"]):=p;
};
};
In this case all processes will perform the reduction on p and all processes will have the minimum value of p placed into their copy of x.
Since: Version 0.41b
Supported operations
| Operator | Description |
|---|---|
| max | Identify the maximum value |
| min | Identify the minimum value |
| sum | Sum all the values together |
| prod | Generate product of all values |