Load balance is important for maximizing speedup when simulating neural networks
on parallel hardware.
With NEURON, load balance can be achieved by splitting cells into subtrees
that are solved on different processors with no change in accuracy, stability,
or computational effort; interprocessor communication costs are minimal.
Hines, M.L., Eichner, H. and Schuermann, F.
Neuron splitting in compute-bound parallel network simulations enables runtime scaling with twice as many processors.
Journal of Computational Neuroscience
DOI 10.1007/s10827-007-0073-3.
Preprint available as
splitcell.pdf
Complex models of individual neurons implemented with NEURON
can be distributed over multiple
processors to achieve speedup that is almost linear with the number of processors
(practical upper limit is ~16 processors).
This strategy can also be used for load balancing of network models
in which some cells are so large that their individual computation time
is much longer than the average processor computation time,
or when there are many more processors than cells.
Hines, M.L., Markram, H. and Schuermann, F.
Fully implicit parallel simulation of single neurons.
Journal of Computational Neuroscience
DOI 10.1007/s10827-008-0087-5.
Preprint available as
multisplit.pdf
Hines, M.L. and Carnevale, N.T. Translating network models to parallel hardware in NEURON. J. Neurosci. Methods in press. Preprint available as parallelizing_models_jnm2007_in_press.pdf
It shows how to revise network models so they will run and produce numerically identical results on either serial or parallel hardware. This allows model development and debugging to be done on readily available local resources, producing code that will run without modification on any single- or multicore PC or Mac, workstation cluster, or parallel supercomputer.