exp() out of range with parallel network

General issues of interest both for network and
individual cell parallelization.

Moderator: hines

Post Reply
jackfolla
Posts: 48
Joined: Wed Jul 07, 2010 7:42 am

exp() out of range with parallel network

Post 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?
ted
Site Admin
Posts: 5784
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: exp() out of range with parallel network

Post 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.
jackfolla
Posts: 48
Joined: Wed Jul 07, 2010 7:42 am

Re: exp() out of range with parallel network

Post 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.
ted
Site Admin
Posts: 5784
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: exp() out of range with parallel network

Post 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
Post Reply