Allreduce

From Mesham
Jump to navigationJump to search

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