Reduce

From Mesham
Revision as of 18:24, 13 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.

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