morphoorg/morpho

Toolbox: run-queues for multiple internal variable sets

Opened this issue · 0 comments

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!!!