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 |