Enable simulation resume/restart. (#1427)
* 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 `simulat...
Showing
- arbor/benchmark_cell_group.cpp 2 additions, 5 deletionsarbor/benchmark_cell_group.cpp
- arbor/benchmark_cell_group.hpp 0 additions, 2 deletionsarbor/benchmark_cell_group.hpp
- arbor/epoch.hpp 31 additions, 16 deletionsarbor/epoch.hpp
- arbor/include/arbor/schedule.hpp 4 additions, 3 deletionsarbor/include/arbor/schedule.hpp
- arbor/include/arbor/util/expected.hpp 8 additions, 10 deletionsarbor/include/arbor/util/expected.hpp
- arbor/include/arbor/util/extra_traits.hpp 17 additions, 0 deletionsarbor/include/arbor/util/extra_traits.hpp
- arbor/include/arbor/util/unique_any.hpp 8 additions, 14 deletionsarbor/include/arbor/util/unique_any.hpp
- arbor/lif_cell_group.cpp 3 additions, 2 deletionsarbor/lif_cell_group.cpp
- arbor/mc_cell_group.cpp 3 additions, 3 deletionsarbor/mc_cell_group.cpp
- arbor/mc_cell_group.hpp 0 additions, 5 deletionsarbor/mc_cell_group.hpp
- arbor/simulation.cpp 210 additions, 176 deletionsarbor/simulation.cpp
- arbor/spike_source_cell_group.cpp 1 addition, 4 deletionsarbor/spike_source_cell_group.cpp
- arbor/spike_source_cell_group.hpp 0 additions, 1 deletionarbor/spike_source_cell_group.hpp
- arbor/util/double_buffer.hpp 0 additions, 70 deletionsarbor/util/double_buffer.hpp
- test/unit/CMakeLists.txt 1 addition, 1 deletiontest/unit/CMakeLists.txt
- test/unit/test_double_buffer.cpp 0 additions, 58 deletionstest/unit/test_double_buffer.cpp
- test/unit/test_mc_cell_group.cpp 1 addition, 1 deletiontest/unit/test_mc_cell_group.cpp
- test/unit/test_simulation.cpp 174 additions, 0 deletionstest/unit/test_simulation.cpp
- test/unit/test_spike_source.cpp 4 additions, 4 deletionstest/unit/test_spike_source.cpp
Please register or sign in to comment