Optimise host-side event wrangling [8] (#369)
Optimize host-side postsynaptic event queues: * Have communicator store stage local postsynaptic events per cell instead of per cell group. * Pass (by reference) the relevant subrange of vectors of per-cell events to the cell group `enqueue_events` method. * Identify calls to cell group `enqueue_events` and `advance` with an integration epoch identification allowing the use of an efficient thread-safe data structure for the cell group event stores. * Perform merge of new events and currently stored events not for delivery in current epoch in parallel across cells in `mc_cell_group::enqueue_events`. * Store one event binner object per cell in `mc_cell_group` to avoid hash table lookup overheads in the `binning_kind::following` case, and simplifying the `event_binner` class. * Add convenience time comparison functional object `event_time_less`. Fixes #368.
Showing
- src/backends/gpu/multi_event_stream.hpp 10 additions, 8 deletionssrc/backends/gpu/multi_event_stream.hpp
- src/cell_group.hpp 21 additions, 2 deletionssrc/cell_group.hpp
- src/communication/communicator.hpp 46 additions, 23 deletionssrc/communication/communicator.hpp
- src/connection.hpp 4 additions, 4 deletionssrc/connection.hpp
- src/dss_cell_group.hpp 3 additions, 3 deletionssrc/dss_cell_group.hpp
- src/epoch.hpp 36 additions, 0 deletionssrc/epoch.hpp
- src/event_binner.cpp 6 additions, 16 deletionssrc/event_binner.cpp
- src/event_binner.hpp 2 additions, 9 deletionssrc/event_binner.hpp
- src/generic_event.hpp 15 additions, 0 deletionssrc/generic_event.hpp
- src/mc_cell_group.hpp 85 additions, 21 deletionssrc/mc_cell_group.hpp
- src/model.cpp 18 additions, 25 deletionssrc/model.cpp
- src/model.hpp 7 additions, 13 deletionssrc/model.hpp
- src/profiling/meter_manager.cpp 24 additions, 8 deletionssrc/profiling/meter_manager.cpp
- src/profiling/meter_manager.hpp 1 addition, 0 deletionssrc/profiling/meter_manager.hpp
- src/rss_cell_group.hpp 4 additions, 4 deletionssrc/rss_cell_group.hpp
- src/util/partition.hpp 2 additions, 0 deletionssrc/util/partition.hpp
- src/util/range.hpp 5 additions, 0 deletionssrc/util/range.hpp
- src/util/rangeutil.hpp 5 additions, 0 deletionssrc/util/rangeutil.hpp
- tests/ubench/CMakeLists.txt 1 addition, 0 deletionstests/ubench/CMakeLists.txt
- tests/ubench/event_binning.cpp 111 additions, 0 deletionstests/ubench/event_binning.cpp
Please register or sign in to comment