Parallel Computing with MPI

Getting Started

The first step is to get to the place where you can run the “hello world” level program test0.hoc by launching in a terminal window with

mpiexec -n 4 nrniv -mpi test0.hoc

and see the output

I am 1 of 4
I am 3 of 4
I am 0 of 4
I am 2 of 4


The NEURON setup installer has already pu all the required sofware on your machine to use MPI.

  1. Start a bash terminal window.
  2. Launch the program (mpiexec command above) in the directory containing test0.hoc (or give a full pathto test0.hoc).

Mac OS X and Linux

Unfortunately MPI can’t be a part of the binary installation because I don’t know if, which, or where MPI was installed on your machine. So you have to install MPI yourself, check that it works, and build NEURON from the sources with the configure option ‘–with-paranrn’. See the “installing and testing MPI” section of the Hines and Carnevale (2008) paper, “Translating network models to parallel hardware in NEURON”, J. Neurosci. Meth. 169: 425-465. The paper is reprinted in your handout booklet. Or see the ModelDB entry

Going Further

The ring model from the above ModelDB entry is a good next step. See also the documentation for the ParallelContext class, especialy the subset of methods gathered under the ParallelNetwork heading. A large portion of the ParallelNetManager wrapper is better off done directly from the underlying ParallelContext though it can be mined for interesting pieces. A good place to find the most recent idioms is the NEURON implementation of the Vogels and Abbott model found in the Brette et al. ModelDB entry. However, to run in parallel, the NetCon delay between cells needs to be set greater than zero.