Reduce

From Mesham
Revision as of 17:27, 12 January 2013 by Polas (talk | contribs)
Jump to navigationJump to search

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.

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.

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