setuptime = startsw() if (name_declared("load_balance_phase") == 0) { execute("load_balance_phase=0") } {load_file("nrngui.hoc")} {load_file("netparmpi.hoc")} {load_file("../common/parlib.hoc")} // use 0 for normal round robin, // 1 to construct mcomplex.dat (or use mcomplex.hoc to construct) // 2 to construct splitcell balance info file ("splitbal.dat") // 3 for load balance using splitcell splitbal.nhost.dat file // 4 whole cell binfo with cx.nhost.dat load_balance(load_balance_phase) ncell = 528 pnm.ncell = ncell gid_distribute() objref con_mat con_mat = new Matrix(ncell, ncell, 2) cells_count = 0 obfunc createcell() { cells_count += 1 return par_create(cells_count-1, $s1) } proc nc_append() { con_mat.x[$1][$2] += 1 par_ncappend($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 {want_all_spikes()} mkhist(50) initNet() { cvode.cache_efficient(1) pc.spike_compress(3, 1) cvode.queue_mode(1,0) } setuptime = startsw() - setuptime //if (pnm.nhost == 1) { saveNet() } //tstop = 10 if (pnm.myid == 0) {print "SetupTime: ", setuptime} if (name_declared("mosinit")) { stop } prun() if (pnm.myid == 0) {print "RunTime: ", runtime} spike2file() //if (pnm.nhost == 1) { SpkMx() } {pnm.pc.runworker()} print "Maximum integration interval: ", mindelay() getstat() prhist() print_spike_stat_info() {pnm.pc.done()} perf2file() quit()