Difference between revisions of "Gather"

From Mesham
Jump to navigationJump to search
m
m
Line 18: Line 18:
  
 
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.  
 
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.  
 +
 +
''Since: Version 0.41b''
  
 
[[Category:Type Library]]
 
[[Category:Type Library]]
 
[[Category:Compound Types]]
 
[[Category:Compound Types]]
 
[[Category:Primitive Communication Types]]
 
[[Category:Primitive Communication Types]]

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

Since: Version 0.41b