parallel save/restore state
Posted: Wed Nov 25, 2009 9:49 pm
I'm using Michael Hines' parallel version of the Traub model with 7.1, which roughly looks like
When I restore in parallel mode I get the following on each of the nodes:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
[mumbler:04219] *** Process received signal ***
[mumbler:04219] Signal: Aborted (6)
[mumbler:04219] Signal code: (-6)
[mumbler:04219] [ 0] /lib/libpthread.so.0 [0x7f91425ec190]
[mumbler:04219] [ 1] /lib/libc.so.6(gsignal+0x35) [0x7f91422a14b5]
[mumbler:04219] [ 2] /lib/libc.so.6(abort+0x180) [0x7f91422a4f50]
[mumbler:04219] [ 3] /usr/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x115) [0x7f9142ad8cc5]
[mumbler:04219] [ 4] /usr/lib/libstdc++.so.6 [0x7f9142ad70f6]
[mumbler:04219] [ 5] /usr/lib/libstdc++.so.6 [0x7f9142ad7123]
[mumbler:04219] [ 6] /usr/lib/libstdc++.so.6 [0x7f9142ad721e]
[mumbler:04219] [ 7] /usr/lib/libstdc++.so.6(_Znwm+0x7d) [0x7f9142ad76ad]
[mumbler:04219] [ 8] /usr/lib/libstdc++.so.6(_Znam+0x9) [0x7f9142ad7769]
[mumbler:04219] [ 9] /home/evan/neuron/x86_64/lib/libnrniv.so.0(_ZN9SaveState4readEP6OcFilej+0x1ae) [0x7f914593426e]
[mumbler:04219] [10] /home/evan/neuron/x86_64/lib/libnrniv.so.0 [0x7f9145932935]
[mumbler:04219] [11] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(call_ob_proc+0x233) [0x7f9145e1e5b3]
[mumbler:04219] [12] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_object_component+0x4d7) [0x7f9145e1fd97]
[mumbler:04219] [13] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [14] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_call+0x149) [0x7f9145e1b3a9]
[mumbler:04219] [15] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [16] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_call+0x149) [0x7f9145e1b3a9]
[mumbler:04219] [17] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [18] /home/evan/neuron/x86_64/lib/liboc.so.0 [0x7f9145bcc141]
[mumbler:04219] [19] /home/evan/neuron/x86_64/lib/liboc.so.0(hoc_main1+0xc7) [0x7f9145bcd257]
[mumbler:04219] [20] /home/evan/neuron/x86_64/bin/nrniv(ivocmain+0x21f) [0x4022af]
[mumbler:04219] [21] /home/evan/neuron/x86_64/bin/nrniv(main+0x4c) [0x401e2c]
[mumbler:04219] [22] /lib/libc.so.6(__libc_start_main+0xfd) [0x7f914228cabd]
[mumbler:04219] [23] /home/evan/neuron/x86_64/bin/nrniv [0x401c29]
[mumbler:04219] *** End of error message ***
TIA,
evan.
Code: Select all
prun("savefile.dat")
proc prun() {
pc.setup_transfer()
pnm.set_maxstep(10)
runtime=startsw()
tdat_.x[0] = pnm.pc.wait_time
stdinit()
restorestate($s1)
pnm.psolve(tstop)
tdat_.x[0] = pnm.pc.wait_time - tdat_.x[0]
runtime = startsw() - runtime
tdat_.x[1] = pnm.pc.step_time
tdat_.x[2] = pnm.pc.send_time
tdat_.x[3] = pc.vtransfer_time(0) // for gaps
tdat_.x[4] = pc.vtransfer_time(1) // for splitcells
// printf("%d wtime %g\n", pnm.myid, waittime)
savestate($s1)
}
proc savestate() {local i localobj s, ss, f, rl
s = new String()
sprint(s.s, $s1)
f = new File(s.s)
ss = new SaveState()
ss.save()
ss.fwrite(f, 0)
rl = new List("Random")
f.printf("Random %d\n", rl.count)
for i=0, rl.count-1 {
f.printf("%d\n", rl.object(i).seq())
}
f.close
}
proc restorestate() {local i localobj s, ss, f, rl
s = new String()
sprint(s.s, $s1)
f = new File(s.s)
ss = new SaveState()
ss.fread(f, 0)
rl = new List("Random")
print rl.count
if (f.scanvar() != rl.count) {
execerror("Random count unexpected", "")
}
for i=0, rl.count-1 {
rl.object(i).seq(f.scanvar())
}
f.close
ss.restore()
}
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
[mumbler:04219] *** Process received signal ***
[mumbler:04219] Signal: Aborted (6)
[mumbler:04219] Signal code: (-6)
[mumbler:04219] [ 0] /lib/libpthread.so.0 [0x7f91425ec190]
[mumbler:04219] [ 1] /lib/libc.so.6(gsignal+0x35) [0x7f91422a14b5]
[mumbler:04219] [ 2] /lib/libc.so.6(abort+0x180) [0x7f91422a4f50]
[mumbler:04219] [ 3] /usr/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x115) [0x7f9142ad8cc5]
[mumbler:04219] [ 4] /usr/lib/libstdc++.so.6 [0x7f9142ad70f6]
[mumbler:04219] [ 5] /usr/lib/libstdc++.so.6 [0x7f9142ad7123]
[mumbler:04219] [ 6] /usr/lib/libstdc++.so.6 [0x7f9142ad721e]
[mumbler:04219] [ 7] /usr/lib/libstdc++.so.6(_Znwm+0x7d) [0x7f9142ad76ad]
[mumbler:04219] [ 8] /usr/lib/libstdc++.so.6(_Znam+0x9) [0x7f9142ad7769]
[mumbler:04219] [ 9] /home/evan/neuron/x86_64/lib/libnrniv.so.0(_ZN9SaveState4readEP6OcFilej+0x1ae) [0x7f914593426e]
[mumbler:04219] [10] /home/evan/neuron/x86_64/lib/libnrniv.so.0 [0x7f9145932935]
[mumbler:04219] [11] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(call_ob_proc+0x233) [0x7f9145e1e5b3]
[mumbler:04219] [12] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_object_component+0x4d7) [0x7f9145e1fd97]
[mumbler:04219] [13] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [14] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_call+0x149) [0x7f9145e1b3a9]
[mumbler:04219] [15] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [16] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_call+0x149) [0x7f9145e1b3a9]
[mumbler:04219] [17] /home/evan/neuron/x86_64/lib/libnrnoc.so.0(hoc_execute+0x56) [0x7f9145e16ef6]
[mumbler:04219] [18] /home/evan/neuron/x86_64/lib/liboc.so.0 [0x7f9145bcc141]
[mumbler:04219] [19] /home/evan/neuron/x86_64/lib/liboc.so.0(hoc_main1+0xc7) [0x7f9145bcd257]
[mumbler:04219] [20] /home/evan/neuron/x86_64/bin/nrniv(ivocmain+0x21f) [0x4022af]
[mumbler:04219] [21] /home/evan/neuron/x86_64/bin/nrniv(main+0x4c) [0x401e2c]
[mumbler:04219] [22] /lib/libc.so.6(__libc_start_main+0xfd) [0x7f914228cabd]
[mumbler:04219] [23] /home/evan/neuron/x86_64/bin/nrniv [0x401c29]
[mumbler:04219] *** End of error message ***
TIA,
evan.