scatter
Name | Type | Description | Optional |
---|---|---|---|
input |
?1 |
data to be sent to one of the data outputs |
no |
Name | Type | Description | Optional |
---|---|---|---|
selector |
?0 |
selector value (in the range 0 to N-1) |
yes |
out1 |
?1 |
output (selector == 0) |
no |
out2 |
?1 |
output (selector == 1) |
no |
… |
|||
outN |
?1 |
output (selector == N-1) |
no |
scatter
takes a data input that is to be sent to one of the N data outputs. It selects a data output round-robin, and outputs a selector
value indicating which output port the data item is being sent to, and outputs the data item to the selected output port. scatter
is intended for use in a balanced pair with a gather
operation. See the example SpecialNodes/scattergather. The purpose of scatter
/ gather
is to provide for concurrent evaluation of a number of instances of the same subcircuit. It is typically wired in this kind of configuration (taken from the SpecialNodes/scattergather example):
Four instances of MyCircuit
are sent inputs, round-robin, from scatter
, and the results are collated using gather
. When run on 4 threads, this circuit will have about 4 times the bandwidth of a single instance of MyCircuit
. For more about concurrency and performance, see Dataflow in Coreograph
.
see |