Difference between revisions of "Scatter"

From Mesham
Jump to navigationJump to search
m
m (4 revisions imported)
 
(One intermediate revision by the same user not shown)
Line 9: Line 9:
 
== Example ==
 
== Example ==
  
  var x:array[Int,3]::allocated[multiple[]];
+
  function void main() {
var r:array[Int,12]::allocated[multiple[]];
+
    var x:array[Int,3]::allocated[multiple[]];
var p;
+
    var r:array[Int,12]::allocated[multiple[]];
par p from 0 to 3
+
    var p;
{
+
    par p from 0 to 3 {
    x:(x::scatter[3,1]);
+
      x:(x::scatter[3,1]);
    x:=r;
+
      x:=r;
 +
    };
 
  };
 
  };
  

Latest revision as of 15:44, 15 April 2019

Syntax

scatter[elements,root]

Semantics

Will send a number of elements (equal to elements) from the root process to all other processes.

Example

function void main() {
   var x:array[Int,3]::allocated[multiple[]];
   var r:array[Int,12]::allocated[multiple[]];
   var p;
   par p from 0 to 3 {
      x:(x::scatter[3,1]);
      x:=r;
   };
};

In this example, three elements of array r, on process 1, are scattered to each other process and placed in their copy of r.

Since: Version 0.41b