setuptime = startsw()
{load_file("nrngui.hoc")}
{load_file("param.hoc")}
objref pnm
{load_file("netparmpi.hoc")}
pnm = new ParallelNetManager(0)
{load_file("lptiter.hoc")}
nthread = 1
objref pc
pc = new ParallelContext()
if (pnm.nhost == 1) { execute1("{nthread=pc.nthread(4) cvode.cache_efficient(1) }", 0) }
{load_file("net.hoc")}
mknet()
{load_file("stimodors.hoc")}
create_stim()
{load_file("perfrun.hoc")}
{load_file("netparmpi.hoc")}
{load_file("loadbal.hoc")}
objref lb
lb = new LoadBalance()
tdat_.x[6] = lb.cpu_complexity() // actual to compare to cxcpu
if (nthread > 1) { lb.thread_partition(1) }
if (nthread > 1) { pc.thread_busywait(1) }
{load_file("weightsave.hoc")}
{want_all_spikes()}
objref fih_progress
if (pc.id == 0) fih_progress = new FInitializeHandler(2, "cvode.event(100, \"progress()\")")
proc progress() {
print t
cvode.event(t + 100, "progress()")
}
// weight_snapshots(filename, starttime, interval_between_snapshots)
objref wout
wout=new String()
sprint(wout.s, "%s", prj_path)
if (strcmp(wt_output_file, "") == 0) {
sprint(wout.s, "%s/%s", wout.s, "weight")
for ii = 0, stim_odor_ids.size() - 1 {
sprint(wout.s, "_%s%d-%.2f", wout.s, stim_odor_ids.x[ii], stim_odor_mags.x[ii])
}
sprint(wout.s, "%s/%s", wout.s, ".dat")
} else {
sprint(wout.s, "%s/%s", wout.s, wt_output_file)
}
weight_snapshots(wout.s, ws_start, ws_interval)
objref filepath
if (strcmp(wt_input_file, "") != 0) {
filepath=new String(prj_path)
sprint(filepath.s, "%s/%s", filepath.s, weight_dir)
sprint(filepath.s, "%s/%s", filepath.s, wt_input_file)
if (read_weights_normalized) {
weight_initialize_normalized(filepath.s)
} else {
weight_initialize(filepath.s)
}
}
setuptime = startsw() - setuptime
if (pc.id == 0) printf("setuptime=%g\n", setuptime)
if (pnm.myid == -1) {
printf("cxcpu=%g tdat_.x[6]=%g\n", cxcpu, tdat_.x[6])
topology()
//for j=0,1 for i=0, lb.mt[j].count-1 {lb.mt[j].select(i) lb.mt[j].selected(tstr) printf("%s %g\n", tstr, lb.m_complex_[j].x[i])}
}
runtime = startsw()
//if (pc.nhost > 1) {
prun(tstop)
spike2file()
if (pc.id == 0) printf("runtime=%g\n", runtime)
{pc.runworker()}
getstat()
print_spike_stat_info()
{pc.done() quit()}
//}