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?
parallel simulations of networks
Moderator: wwlytton
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
large scale network with gap junctions
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.
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.
Last edited by ted on Fri May 27, 2005 11:01 am, edited 1 time in total.
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
local variable time step integration for large nets
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.
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.
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
NEOSIM
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.
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
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. :-)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.
-
- Site Admin
- Posts: 6384
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
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
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
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
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