Cell splitting in neural networks extends strong scaling (Hines et al. 2008)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:97917
Neuron tree topology equations can be split into two subtrees and solved on different processors with no change in accuracy, stability, or computational effort; communication costs involve only sending and receiving two double precision values by each subtree at each time step. Application of the cell splitting method to two published network models exhibits good runtime scaling on twice as many processors as could be effectively used with whole-cell balancing.
Reference:
1 . Hines ML, Eichner H, Schürmann F (2008) Neuron splitting in compute-bound parallel network simulations enables runtime scaling with twice as many processors. J Comput Neurosci 25:203-10 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Generic;
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Methods;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu];
/
splitcell
nrntraub
mod
alphasyndiffeq.mod
alphasynkin.mod *
alphasynkint.mod *
ampa.mod
ar.mod *
cad.mod *
cal.mod *
cat.mod *
cat_a.mod *
gabaa.mod
iclamp_const.mod *
k2.mod *
ka.mod *
ka_ib.mod *
kahp.mod *
kahp_deeppyr.mod *
kahp_slower.mod *
kc.mod *
kc_fast.mod *
kdr.mod *
kdr_fs.mod *
km.mod *
naf.mod *
naf_tcr.mod
naf2.mod *
nap.mod *
napf.mod *
napf_spinstell.mod *
napf_tcr.mod *
par_ggap.mod *
pulsesyn.mod *
rampsyn.mod *
rand.mod *
ri.mod
traub_nmda.mod
                            
COMMENT
pulsesyn.mod 
For use to make pulses for the ectopic current injection into the
axons of the Traub et al 2005 model.  This replaces the role of the
curr_cellname currents in the FORTRAN code.

The point process is located in an axon compartment of the cell
receiving this (default) infrequent background stimulus.  A netstim is
set to the poisson probability desired and to this point process.

The variables amp (current amplitude in nanoamps when on) and
time_interval (milliseconds) (length of time to keep injected current
on for each event) are the only two variables that this point process
expects to be set before running the simulation.

Tom Morse, Michael Hines
ENDCOMMENT
NEURON {
	POINT_PROCESS PulseSyn
	RANGE time_interval,  i, amp, instantaneous_amp, on
	NONSPECIFIC_CURRENT i
}

UNITS {
	(nA) = (nanoamp)
	(mV) = (millivolt)
	(uS) = (microsiemens)
}

PARAMETER {
	time_interval = 0.4 (ms) <1e-9,1e9> : the time of one pulse
	amp = 0.4 (nA) : positive values depolarize the cell
}

ASSIGNED {
	i (nA)
	instantaneous_amp (nA)
	on (1) : state of Point Proc. 0 = off, 1 = on
}

INITIAL {
	instantaneous_amp = 0
	on = 0
}

BREAKPOINT {

	i = instantaneous_amp : in groucho.f the curr_cellname currents are
		: present in the diff eqs with the opposite sign
		: as the ampa and nmda therefore to be consistent
		: with this, e.g. the default value of 0.4 having the
		: same (excitatory) effect, the minus sign is included
		: in the net_receive equation marked with a (*)

}

NET_RECEIVE(weight (uS)) {
	if (flag>=1) {
		: self event arrived, terminate pulse
		instantaneous_amp = 0
		on = 0
	} else {
		: stimulus arrived, make or continue pulse
		if (on) {
			: if already processing a pulse then prolong the pulse
			net_move(t + time_interval)
		} else {
			net_send(time_interval, 1) : self event to terminate pulse
			on = 1
		}
		instantaneous_amp = - amp : see comment in BREAKPOINT.  (*)
	}
}