Page 1 of 1

parallel simulations of networks

Posted: Fri May 27, 2005 10:55 am
by ted
On 12/1/2004 Ulf Knoblich <knoblich@csail.mit.edu> asked:
we're thinking about simulating a large network of "biological" neurons
(as opposed to "artificial" ones), i.e. neurons with membrane currents
etc. Has anyone ever tried to distribute computations over a cluster
using NEURON, e.g. running a few neurons on each CPU, simulating
the whole network of neurons with the network of CPUs?

large scale network with gap junctions

Posted: Fri May 27, 2005 10:57 am
by ted
On 12/1/2004 Maciej Lazarewicz <mlazarew@seas.upenn.edu> wrote:
A year or so ago, with help of Dr. Hines, we started to develop the
NEURON code capable of using multiple processors for simulations
of large single cell models or network of cells connected by gap junctions.

We got the first working implementation, which still require a lot of work
to be able to be used by end users. The problem is that the undergraduate
students involved in this project had graduated and got jobs in industry.
This project is technical and pretty time consuming, therefore I can not
continue it by myself.

If there is someone willing to collaborate with me and Dr. Hines on this
project, I will be very glad to do so.

This project requires knowledge of C/C++ language. I will be more then
happy to share all our work we have done and provide any necessary
help. We have a few clusters that we can use.

local variable time step integration for large nets

Posted: Fri May 27, 2005 11:00 am
by ted
On 12/2/2004 Bill Lytton <billl@neurosim.downstate.edu> wrote:
Mike Hines has developed a local variable time step method which
offers substantial speed ups for network simulations. Different neurons
have different integrators which allow them to simulate forward at their
own rates. He and I have a recent paper on this which I'd be happy to
send you if you're interested.

This method is not easily adaptable to distributed computing however
since it's so hard to load balance -- one section of the network may
require all of the computing power at one time while another requires it
at another time. This means that CPUs would be idle in WAIT unless
sections of network were assessed and redistributed repeatedly.

NEOSIM

Posted: Fri May 27, 2005 11:05 am
by ted
On 12/3/2004 Nigel Goddard <Nigel.Goddard@ed.ac.uk> wrote:
You might be able to use the NEOSIM parallel simulator
(http://www.neosim.org). It allows you to construct a network and run it
on a parallel machine, where each neuron is specified as a NEURON
model. NEOSIM handles delivering spikes from one neuron to another
and makes sure they don't get out of sync. The NEURON code handles
each individual neuron. Best to contact Fred Howell (fwh@inf.ed.ac.uk) to
find out the latest state of NEOSIM and its support for NEURON models.

Re: local variable time step integration for large nets

Posted: Tue Aug 23, 2005 11:22 am
by pcoskren
ted wrote:On 12/2/2004 Bill Lytton <billl@neurosim.downstate.edu> wrote:
Mike Hines has developed a local variable time step method which
offers substantial speed ups for network simulations. Different neurons
have different integrators which allow them to simulate forward at their
own rates. He and I have a recent paper on this which I'd be happy to
send you if you're interested.

This method is not easily adaptable to distributed computing however
since it's so hard to load balance -- one section of the network may
require all of the computing power at one time while another requires it
at another time. This means that CPUs would be idle in WAIT unless
sections of network were assessed and redistributed repeatedly.
I would be very interested in a copy of the paper. While I agree that such a method, adapted to a distributed environment, may lead to idle processors, that may not be a problem in cases where simulation time is the main concern. Every iteration through the network (where let's be fuzzy about what an "iteration" is) would only take as long as the most expensive-to-calculate neuron. That would still be much faster, in all but pathological cases, than calculating all the neurons in sequence. One case where the cost of an idle processor wouldn't matter much is on a multiprocessor desktop machine, where the idle time could be used for whatever other tasks the user is up to, such as posting to the NEURON forum. :-)

Posted: Tue Aug 23, 2005 11:45 am
by ted
Go to "Publications about NEURON"
http://www.neuron.yale.edu/neuron/bib/nrnpubs.html
and get
Lytton, W. and Hines, M. Independent variable timestep integration of
individual neurons for network simulations. Neural Computation, in press.
Preprint available as NC2913.pdf

Posted: Tue Aug 23, 2005 2:11 pm
by hines
The latest alpha version:
http://www.neuron.yale.edu/ftp/neuron/v ... .53.tar.gz
supports parallel network simulations. Further information can be found at:
http://www.neuron.yale.edu/neuron/stati ... NetManager
This has been implemented using the MPICH implementation of MPI and information about how to build NEURON with the --with-mpi configuration option is at:
http://www.neuron.yale.edu/neuron/stati ... n.html#MPI