-
Notifications
You must be signed in to change notification settings - Fork 61
Steering
What would constitute a reasonable 'common ground' for the steering of neuron simulators? What operations would Arbor would support? And how would we implement these?
At minimum:
- stop simulation.
In increasing order of ambition:
- change sampling behaviour,
- rollback to a time point,
- apply structural or state changes to a subset of the simulated network.
Actions and edits will only be able to be applied at certain points in simulation time, as coordination across multiple ranks will require a collective communication. Having an action-exchange communication directly before or after spike exchange might be a good spot.
As these communications will typically be performed asynchronously with respect to cell state integration, their execution will have to be performed for a particular future epoch (that depends, for example, on the spike exchange next to the action exchange). The context in which the action was requested will necessarily precede that epoch; actions will likely need to be associated with a previously evaluated time point (e.g. epoch).
State-changing actions may then require that the simulation be rolled back to this point of context before the delta is applied. This in turn can lead to multiple outputs of the simulation for the same simulation time point, requiring that we add some sort of revision tag to on-line output (sampling, spikes) in order to disambiguate.
Note: maintaining state for rollback purposes requires infrastructure similar to that needed for both simulation snapshotting and relaxation-scheme based integration for gap junctions.
Options for entry points:
- Callback called periodically at spike-exchange time.
- Thread-safe interface on the
simulation
object, able to be invoked from other user threads or sampling callbacks. - An asynchronous mode for
simulation::run()
that returns a control object for the purposes of steering control.
- Toward Rigorous Parameterization of Underconstrained Neural Network Models Through Interactive Visualization and Steering of Connectivity Generation: https://www.frontiersin.org/articles/10.3389/fninf.2018.00032/full