Open mstimberg opened 11 years ago
Another inefficiency:
Incidentally I was running the pure Python version of Brian on the tests, without the C++ spikequeue and it is incredibly slow. I guess we should improve this at some point.
This is fairly important for a 2.0 release I think. I don't remember what the current status of work on this is. Have we solved some or all of the problems?
Only the scalar inefficiency is fixed, the other two still remain. I don't think they are show-stoppers, though, the first one only affects multiple pre (or multiple post) pathways, a feature not used very often. The second is an inefficiency for multiple runs, but the unnecessary computation that is done involves a single pass over all synapses, this should be less than the time it takes to simulate a single time step.
OK!
Currently, there are two inefficiencies in the
SpikeQueue
implementations (both C++ and Python):SpikeQueue
-- if several pre or post pathways exist, this information is redundant across pathwaysprepare
stage before a run, the integer delays and "neurons to synapses" data structures are re-created from scratch every time, even if nothing changed.