Difference between revisions of "Gather"

From Mesham
Jump to navigationJump to search
(Created page with '== Syntax == gather[elements,root] == Semantics == Gather a number of elements (equal to ''elements'') from each process and send these to the root process. == Example == …')
 
m
Line 20: Line 20:
  
 
[[Category:Type Library]]
 
[[Category:Type Library]]
[[Category:Composite Types]]
+
[[Category:Compound Types]]
 
[[Category:Primitive Communication Types]]
 
[[Category:Primitive Communication Types]]

Revision as of 17:52, 12 January 2013

Syntax

gather[elements,root]

Semantics

Gather a number of elements (equal to elements) from each process and send these to the root process.

Example

var x:array[Int,12] :: allocated[single[on[2]]];
var r:array[Int,3] :: allocated[multiple[]];
var p;
par p from 0 to 3
{
   (x::gather[3,2]):=r;
};

In this example, the variable x is allocated on the root process (2) only. Whereas r is allocated on all processes. In the assignment all three elements of r are gathered from each process and sent to the root process (2) and then placed into variable x in the order defined by the source's PID.