Page 1 of 1
exp() out of range with parallel network
Posted: Mon Nov 29, 2010 11:53 am
by jackfolla
Dear all,
I have parallelized a network of neurons.
When I call my parallel version with 1 proc, I have the same results than the serial version.
Code: Select all
time cell
11.2 1
11.2 2
11.2 3
11.2 4
12.925 0
But, when I call my parallel version with more procs, the following warnings occur:
Code: Select all
exp(715.745) out of range, returning exp(700)
exp(715.745) out of range, returning exp(700)
exp(766.723) out of range, returning exp(700)
exp(766.723) out of range, returning exp(700)
No more errno warnings during this execution
with these results:
Code: Select all
time cell
11.2 2
11.2 4
13.4 0
11.925 1
11.925 3
Probably it depends by arg of exp() function in some files .mod?
Re: exp() out of range with parallel network
Posted: Wed Dec 01, 2010 10:35 am
by ted
You're dealing with two different problems, and they have different causes:
--numerical overflow, which as you suspect is probably from something in a mod file that is an exponential function of membrane potential
--simulation results that depend on the number of processors
Of these, the second one is most serious, because it tells you that the actual network that is being simulated depends on the number of processors. In other words, the actual computational model that is generating simulation results depends on the number of processors. Conceptual clarity requires that there be a close match between your conceptual model (also called "hypothesis") and the computational model (the embodiment of your hypothesis in a form suitable for computational simulation). If simulation results depend on the number of processors, conceptual clarity is destroyed and your parallelized code is not useful for gaining insight into your conceptual model. Fixing this problem should be the focus of your attention.
If your original serial implementation did not produce numerical overflow error messages, a correct parallelization of that code shouldn't either.
Re: exp() out of range with parallel network
Posted: Thu Dec 02, 2010 6:59 am
by jackfolla
Dear Ted,
the network consists of neurons Ca1-Ca3.
Using only Ca1 neurons, the error does not occur (even with multiple processors):
consequently, I deduced that the warnings are generated by a few mistakes in the template (or file .mod) for the neuron Ca3.
For now I put on stand-by this issue.
Now, I want to know how to use together "Multisplit" and "Translating network models to parallel hardware in NEURON".
Is possibile this approach?
Thanks.
Re: exp() out of range with parallel network
Posted: Thu Dec 02, 2010 10:00 am
by ted
jackfolla wrote:Using only Ca1 neurons, the error does not occur (even with multiple processors)
That does not bear on the issue of whether or not the parallelization (conversion from serial implementation to parallel implementation) is correct. The fact that overflow occurs with the parallelized code, but not with the original serial code, is evidence that the parallelization is incorrect, until proven otherwise. Wnat evidence is there that the parallelization _is_ correct? Have you compared the spike times generated by the serial and parallel implementations and found them to be identical?
Now, I want to know how to use together "Multisplit" and "Translating network models to parallel hardware in NEURON".
Then you need to read
Hines, M.L., Markram, H. and Schuermann, F.
Fully implicit parallel simulation of single neurons.
Journal of Computational Neuroscience 25:439-448, 2008
which is available from
http://www.neuron.yale.edu/neuron/nrnpubs