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 [2020/12/22 10:17]
rajit [Deterministic and non-deterministic merge]
language:langs:dflow [2021/06/02 12:04]
rajit [Examples]
Line 120: Line 120:
 </code> </code>
 For each output generated, the control channel ''c'' will produce a 0 or 1 token depending on the choice made by the arbiter. For each output generated, the control channel ''c'' will produce a 0 or 1 token depending on the choice made by the arbiter.
 +
 +===== Sink =====
 +
 +A dataflow sink simply receives and discards a token from a channel. Sinks are not needed in general, since the channel that corresponds to the sink can be optimized away by an implementation. However, sinks can be useful when a particular process is re-used in a context when one of its outputs is not used. The syntax is the following:
 +<code>
 +dataflow {
 +   c -> *
 +}
 +</code>
 +The values received on ''c'' are discarded by the sink.
  
 ====== Examples ====== ====== Examples ======
Line 147: Line 157:
 } }
 </code> </code>
 +
 +====== Clusters and Ordering ======
 +
 +It can be convenient to group dataflow elements into clusters. The syntax for grouping dataflow elements is:
 +
 +<code>
 +dataflow {
 +   ...
 +   dataflow_cluster {
 +      a + b -> c;
 +      a - b -> d
 +   }
 +   ...
 +}
 +</code>
 +
 +