ode solver in parallel NEURON

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

Moderator: hines

Post Reply
ubartsch
Posts: 34
Joined: Thu May 19, 2005 11:02 am
Location: CTCN, University of Plymouth
Contact:

ode solver in parallel NEURON

Post by ubartsch »

Hi,
I have a more general question on the ode solver in the ParalleNetManger environment in NEURON.

I have "parallelised" a network model and I am quite sure that all parameter in the serial and the parallel version are identical.

When I simulate the network using the parallel environment (running on a serial machine though!) the first 10 spikes (~50 ms) are very similar to the serial version, but after that the the two network trajectories diverge somehow, i.e. spike times of the neurons are different between the serial and the parallel version.
(In fact the the first 50 msec of the serial version are identical to the parallel version if I do NOT use the cvode in the serial version!)

Whereas if I repeat the parallel simulation I get exactly the same results for every parallel run. (The network I am using might show chaotic behaviour so, I wanted to make sure these differences are not due to minimal differences in initial conditions.)

For those who are interested can hava a look at a figure at picasa (use magnification tool to details in the figure):
http://picasaweb.google.com/ubartsch/Ne ... 1069324194
http://picasaweb.google.com/ubartsch/Ne ... 1069324178

My question is:
Is there a general difference between the serial and the parallel solver (apart from implementation) and can the divergence of the network trajectories (serial vs parallel code) be explained by this difference?
(set_max_step doesnt seem to have any effect on the result.)

And why is the simulation using the fixed step integration (no cvode) more similar to the parallel version?

Many thanks for a hint!
Cheers
Ullrich
ubartsch
Posts: 34
Joined: Thu May 19, 2005 11:02 am
Location: CTCN, University of Plymouth
Contact:

corrections

Post by ubartsch »

Hi,
a bit extra information:
I did not use the cv ode in the parallel version hence the similarity of the serial version to the parallel version in the first 50 ms.
So if I test the serial fixed step against the parallel fixed step, the result is exctly the same for the first 50 ms.
Accordingly, using cvode in both versions produces similar results in both versions for the first 50 ms.

But could the difference in the network trajectories (serial vs parallel, see above) be due to the different implementation of solvers or would you expect exactly the same results?

Cheers
Ullrich
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Post by ted »

The numerical methods are independent of whether NEURON is simulating a serial or
distributed (parallel) implementation of a model. The results should be identical regardless
of whether they are generated by the purely serial implementation or by the parallel
implementation running on any number of processors from 1 to arbitrarily large N. Either
there is a bug in your implementation, or you may have discovered a bug in NEURON. If
you have reached the point where you want us to look at it, please zip up just the essential
files needed to reproduce the problem, and send them to
ted .dot. carnevale .at. yale .dot. edu
It may also be helpful to know what version of NEURON you are using, and which OS.
ubartsch
Posts: 34
Joined: Thu May 19, 2005 11:02 am
Location: CTCN, University of Plymouth
Contact:

Post by ubartsch »

Hi,
I use Neuron 5.9.10 on an AMD 64bit machine running SUSE Linux 10.1.

I guess a bug in my implementation is much more likely than a Neuron bug so I keep on checking, if I don't find anything I'll send the files.

Many thanks again, Ted!

Cheers
Ullrich
Post Reply