Difference between revisions of "Reduce"
From Mesham
Jump to navigationJump to search (Created page with '== Syntax == reduce[root,operation] == Semantics == All processes in the group will combine their values together at the root process and then the operation will be performed …') |
|||
| Line 5: | Line 5: | ||
== Semantics == | == Semantics == | ||
| − | All processes in the group will combine their values together at the root process and then the operation will be performed on them. | + | All processes in the group will combine their values together at the root process and then the operation will be performed on them. |
| + | |||
| + | == Supported operations == | ||
| + | |||
| + | {{ Template:ReductionOperations }} | ||
== Example == | == Example == | ||
| Line 12: | Line 16: | ||
var x:Int::allocated[multiple[]]; | var x:Int::allocated[multiple[]]; | ||
var p; | var p; | ||
| − | par p from 0 to 3 | + | par p from 0 to 3 { |
| − | |||
x:(x::reduce[1,"max"]; | x:(x::reduce[1,"max"]; | ||
x:=p; | x:=p; | ||
Revision as of 17:26, 12 January 2013
Syntax
reduce[root,operation]
Semantics
All processes in the group will combine their values together at the root process and then the operation will be performed on them.
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 |
Example
var t:Int::allocated[multiple[]];
var x:Int::allocated[multiple[]];
var p;
par p from 0 to 3 {
x:(x::reduce[1,"max"];
x:=p;
t:=x;
};
In this example, x is to be reduced, with the root as process 1 and the operation will be to find the maximum number. In the first assignment x:=p all processes will combine their values of p and the maximum will be placed into process 1's x. In the second assignment t:=x processes will combine their values of x and the maximum will be placed into process 1's t.