Parallel network simulations with NEURON (Migliore et al 2006)

 Download zip file 
Help downloading and running models
Accession:64229
The NEURON simulation environment has been extended to support parallel network simulations. The performance of three published network models with very different spike patterns exhibits superlinear speedup on Beowulf clusters.
Reference:
1 . Migliore M, Cannia C, Lytton WW, Markram H, Hines ML (2006) Parallel network simulations with NEURON. J Comput Neurosci 21:119-29 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
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];
/
netmod
pardentategyrus
readme.html *
bgka.mod *
CaBK.mod *
ccanl.mod *
Gfluct2.mod *
gskch.mod *
hyperde3.mod *
ichan2.mod *
LcaMig.mod *
nca.mod *
tca.mod *
DG500_M7.hoc *
dgnetactivity.jpg *
dgnettraces.jpg *
init.hoc
initorig.hoc *
M2I10sp.txt
modstat *
mosinit.hoc *
parRI10sp.hoc
perfrun.hoc
RI10sp.hoc
test1.sh *
time *
                            
load_file("nrngui.hoc")
create acell_home_
access acell_home_

load_file("netparmpi.hoc")
objref pnm
load_file("perfrun.hoc")

ncell = 528
pnm = new ParallelNetManager(ncell)
objref wf
proc metis() {
if (pnm.nhost == 24) {
	wf = new File("soltesz.graph.part.24")
	wf.ropen()
	for i=0, ncell-1 {
		pnm.set_gid2node(i, wf.scanvar)
	}
	wf.close()
}
}
//metis()
pnm.round_robin()

objref con_mat
con_mat = new Matrix(ncell, ncell, 2)

cells_count = 0

obfunc createcell() {
	cells_count += 1
	return pnm.create_cell(cells_count-1, $s1)
}

proc nc_append() {
	con_mat.x[$1][$2] += 1
	pnm.nc_append($1, $2, $3, $4, $5)
}

func is_connected() {local c
        c = con_mat.getval($3+$4, $1+$2)
        return (c != 0)
}

load_file("parRI10sp.hoc")
nclist = pnm.nclist

setuptime = startsw()
pnm.want_all_spikes()
initNet()
setuptime = startsw() - setuptime

//if (pnm.nhost == 1) { saveNet() }

objref mxhist
mxhist = new Vector(25)
pnm.pc.max_histogram(mxhist)

//tstop = 10
if (pnm.myid == 0) {print "SetupTime: ", setuptime}
if (name_declared("mosinit")) { stop }
quit()
prun()
if (pnm.myid == 0) {print "RunTime: ", runtime}
//if (pnm.nhost == 1) { SpkMx() }

pnm.pc.runworker()

pnm.prstat(1)

{pnm.gatherspikes()}
getstat()
pnm.pc.done()

for i=0, mxhist.size-1 {
        printf("%d\t %d\n", i, mxhist.x[i])
}

spike2file()
perf2file()
quit()

Loading data, please wait...