Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restarting simulations #873

Closed
halfflat opened this issue Sep 25, 2019 · 2 comments · Fixed by #1427
Closed

Restarting simulations #873

halfflat opened this issue Sep 25, 2019 · 2 comments · Fixed by #1427
Assignees
Labels
co-sim Related to co-simulation work / SGA3 T5.5 enhancement hpc Relevant primarily to HPC environments.

Comments

@halfflat
Copy link
Contributor

Ideally, we'd be able to run a simulation up to time t1, muck about with the simulator state in some well-defined ways, and then continue simulation up to time t2 > t1. Such functionality will potentially be useful also for check-pointing.

Currently, calling sim.run(t) will always reset the start time to zero.

Considerations include the correct handling of spikes that are 'in-flight'.

@halfflat halfflat self-assigned this Sep 25, 2019
@apeyser
Copy link
Contributor

apeyser commented Nov 5, 2019

Also very important for integration with external processes -- robotics, other simulators, data analysis.

@halfflat
Copy link
Contributor Author

halfflat commented Nov 5, 2019

Totally agree.

@brenthuisman brenthuisman added co-sim Related to co-simulation work / SGA3 T5.5 hpc Relevant primarily to HPC environments. labels Feb 4, 2021
halfflat added a commit that referenced this issue Mar 12, 2021
* Add start time to `epoch` struct, rename time fields to avoid confusion with tfinal parameter to `simulation_state::run()`. Default constructed epoch now has id -1.
* Replace `t_`, `epoch_`, `min_delay_` timekeeping in simulation_state with `epoch_` and `t_interval_`: `epoch_` holds most recently simulated interval.
* Split event_lane population out of exchange task.
* Document in code comments the sub-task dependencies in `simulation_state::run()`.
* Rewrite main simulation loop to abide by pre- and post-conditions that ensure correct behaviour from successive calls to
`simulation_state::run()`.
* Replace double buffer for `simulation::local_spikes_` with array, analogous to `event_lanes_`.
* Update cell groups, unit tests for new epoch interfaces.
* Remove `util::double_buffer` and test.
* Remove unnecessary includes in `mc_cell_group.hpp`.
* Add unit tests for simulation global spike callback and restart operations (i.e. successive calls to `simulation::run()`).
* Fix for `lif_cell_group::reset()` error leading to out of bounds access.

Fixes #873 and #1426.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co-sim Related to co-simulation work / SGA3 T5.5 enhancement hpc Relevant primarily to HPC environments.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants