Page 1 of 1

Presyns vs InputPresyns

Posted: Wed Sep 11, 2024 1:32 pm
by vomel
Hello,

I am running network simulations with CoreNEURON and I am currently testing the impact of assigning cells to processes using different distribution strategies. Looking at the CoreNEURON's output, every parameter (number of cells, compartments, synapses, spikes, etc., as well as SPIKE EXCHANGE, CONFIGURATION, etc.) is the same for different assignment strategies, except for the number of input presyns and the final solver time. Here is a sample output for two strategies:

Strategy 1:

Solver Time : 230.424

Simulation Statistics
Number of cells: 2500
Number of compartments: 7500
Number of presyns: 2500
Number of input presyns: 2500
Number of synapses: 564557
Number of point processes: 564557
Number of transfer sources: 0
Number of transfer targets: 0
Number of spikes: 335000
Number of spikes with non negative gid-s: 335000

Strategy 2:

Solver Time : 232.373

Simulation Statistics
Number of cells: 2500
Number of compartments: 7500
Number of presyns: 2500
Number of input presyns: 30
Number of synapses: 564557
Number of point processes: 564557
Number of transfer sources: 0
Number of transfer targets: 0
Number of spikes: 335000
Number of spikes with non negative gid-s: 335000

Here the time difference is small, but this effect scales with the number of cells, so that one strategy becomes significantly faster than the other one.

From what I could find, it looks like InputPresyn is the optimized version of Presyn used by CoreNeuron. I am wondering if there is a way to keep the number of input presyns equal across assignment strategies for fair comparison. And more generally, should I try forcing them to be equal, or should the different number of input presyns be expected – in this case, how exactly does CoreNEURON decide on the number of input presyns?

Re: Presyns vs InputPresyns

Posted: Mon Sep 16, 2024 12:39 pm
by hines
Different numbers of InputPresyn are expected. InputPresyn is a memory
optimized version of PreSyn and does not need to act as a threshold
detector as it receives a spike from a PreSyn that was generated on
another MPI rank. The number of InputPresyn on a rank is equal to the number of distinct gid (global identifier) NetCon sources which are not owned by that rank.