Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
language:langs:dflow [2023/04/09 19:43]
rajit [Clusters and Ordering]
language:langs:dflow [2023/04/09 19:46]
rajit [Clusters and Ordering]
Line 207: Line 207:
 Furthermore, suppose that the ''c'' output is passed to another process where it is transformed to a new value, and it is this new value that is provided on channel ''e'' that is part of this dataflow block.  Furthermore, suppose that the ''c'' output is passed to another process where it is transformed to a new value, and it is this new value that is provided on channel ''e'' that is part of this dataflow block. 
  
-When optimizing the dataflow block, one may decide to group the control for the two dataflow elements. However, doing so would result in deadlock, because the combined dataflow block would wait for inputs to arrive on ''a'', ''b'', ''d'', and ''e''  //before producing an output on ''c''//+When optimizing the dataflow block, one may decide to group the control for the two dataflow elements. However, doing so would result in deadlock, because the combined dataflow block would wait for inputs to arrive on ''a'', ''b'', ''d'', and ''e''  //before producing an output on ''c''//It is not possible to determine that ''e'' in fact depends on ''c'' without a full analysis of the entire ACT program.  
 + 
 +To simplify optimizations, the dataflow language also supports the ''order'' directive as the first item in the dataflow block. The same example above would be specified: 
 +<code act> 
 +dataflow { 
 +  order { 
 +     c < e 
 +   } 
 +   a + b -> c;  
 +   d + e -> out 
 + } 
 +</code>