Toolbox: run-queues for multiple internal variable sets
Opened this issue · 0 comments
guiguem commented
User issue description:
As currently implemented, the following config file will run Pystan, posterioriDistrib and timeSeries
processors-toolbox:
processors:
- type: morpho:PyStanSamplingProcessor
name: analyzer
- type: APosterioriDistribution
name: posterioriDistrib
- type: TimeSeries
name: timeSeries
connections:
- signal: "analyzer:results"
slot: "posterioriDistrib:data"
- signal: "analyzer:results"
slot: "timeSeries:data"
If one wants to add another simulation to be plots like:
processors-toolbox:
processors:
- type: morpho:PyStanSamplingProcessor
name: analyzer1
- type: morpho:PyStanSamplingProcessor
name: analyzer2
- type: APosterioriDistribution
name: posterioriDistrib
- type: TimeSeries
name: timeSeries
connections:
- signal: "analyzer1:results"
slot: "posterioriDistrib:data"
- signal: "analyzer2:results"
slot: "posterioriDistrib:data"
- signal: "analyzer1:results"
slot: "timeSeries:data"
- signal: "analyzer2:results"
slot: "timeSeries:data"
this would create two sets of plots instead of combining the data.
Issues origin:
The issue is that the toolbox add the processors in the queue as their are mentioned in the connections.
The chain would be analyzer1 -> posterioriDistrib -> analyzer2 -> posterioriDistrib etc
, instead of analyzer1 -> analyzer2 -> posterioriDistrib etc
.
Solutions:
- implement our own idea: we could have a field in the connection dictionary which means
don't get run now
- Katydid does not have this issue and they are using queues. However Katydid does not have the need for such features (the combination of data inside one processor) as far as I know. Maybe this implementation can solve this though: need more thinking...
- another more clever idea!!!