scatter

SpecialNodes scatter

input ports:
Name Type Description Optional

input

?1

data to be sent to one of the data outputs

no

output ports:
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):

SpecialNodes scatter2

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 Dataflow in Coreograph