Coalescing linear synapses (#680)
Allow distinct point processes with the same linear dynamics to be combined if they reside in the same CV after discretization. * Add `linear` flag to `mechinfo` struct. * Add a linearity test to `modcc` that determines if a point process is a suitable candidate for coalescing: state and current updates must be linear, homogeneous functions of the state variables; state change on an event arrival (`net_receive`) must be independent of current state values. * Add `mechanism_state_table()` inquiry function to backend mechanism interface. * Add a field `multiplicity` to `fvm_mechanism_config` that accounts for merged synapse instances, and a corresponding `multiplicity` field in `mechanism::layout`. * Merge linear synapses of the same type in `fvm_build_mechanism_data` if they have the same parameters. * Add global mc_cell property `coalesce_synapses` which enables or disables the merging of linear synapses at run time. * Rename virtual `nrn_init()` interface funct...
Showing
- arbor/CMakeLists.txt 1 addition, 0 deletionsarbor/CMakeLists.txt
- arbor/backends/gpu/mechanism.cpp 24 additions, 2 deletionsarbor/backends/gpu/mechanism.cpp
- arbor/backends/gpu/mechanism.cu 28 additions, 0 deletionsarbor/backends/gpu/mechanism.cu
- arbor/backends/gpu/mechanism.hpp 9 additions, 0 deletionsarbor/backends/gpu/mechanism.hpp
- arbor/backends/gpu/mechanism_ppack_base.hpp 2 additions, 0 deletionsarbor/backends/gpu/mechanism_ppack_base.hpp
- arbor/backends/multicore/mechanism.cpp 21 additions, 1 deletionarbor/backends/multicore/mechanism.cpp
- arbor/backends/multicore/mechanism.hpp 9 additions, 0 deletionsarbor/backends/multicore/mechanism.hpp
- arbor/fvm_layout.cpp 70 additions, 12 deletionsarbor/fvm_layout.cpp
- arbor/fvm_layout.hpp 4 additions, 1 deletionarbor/fvm_layout.hpp
- arbor/fvm_lowered_cell_impl.hpp 11 additions, 4 deletionsarbor/fvm_lowered_cell_impl.hpp
- arbor/include/arbor/mc_cell.hpp 1 addition, 0 deletionsarbor/include/arbor/mc_cell.hpp
- arbor/include/arbor/mechanism.hpp 3 additions, 1 deletionarbor/include/arbor/mechanism.hpp
- arbor/include/arbor/mechinfo.hpp 2 additions, 0 deletionsarbor/include/arbor/mechinfo.hpp
- cmake/CompilerOptions.cmake 8 additions, 0 deletionscmake/CompilerOptions.cmake
- modcc/module.cpp 45 additions, 0 deletionsmodcc/module.cpp
- modcc/module.hpp 2 additions, 0 deletionsmodcc/module.hpp
- modcc/printer/cprinter.cpp 13 additions, 0 deletionsmodcc/printer/cprinter.cpp
- modcc/printer/cudaprinter.cpp 14 additions, 0 deletionsmodcc/printer/cudaprinter.cpp
- modcc/printer/infoprinter.cpp 2 additions, 1 deletionmodcc/printer/infoprinter.cpp
- test/unit-modcc/mod_files/test0.mod 0 additions, 0 deletionstest/unit-modcc/mod_files/test0.mod
Please register or sign in to comment