A Python package for simulator-independent specification of neuronal network models
In other words, you can write the code for a model once, using the PyNN API, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST and PCSIM).
The API has two parts, a low-level, procedural API, similar to that in PyNEST (functions create(), connect(), set(), record(), record_v()), and a high-level, object-oriented API (classes Population and Projection, which have methods like set(), record(), setWeights(), etc.).
The low-level API is good for small networks, and perhaps gives more flexibility. The high-level API is good for hiding the details and the book-keeping, and is intended eventually to have a one-to-one mapping with NeuroML.
The other thing that is required to write a model once and run it on multiple simulators is standard cell models. PyNN translates standard cell-model names and parameter names into simulator-specific names, e.g. standard model IF_curr_alpha is iaf_neuron in NEST and StandardIF in NEURON, while SpikeSourcePoisson is a poisson_generator in NEST and a NetStim in NEURON.
PyNN is a work in progress, but is already being used for several large-scale simulation projects. The current stable release of the API is 0.4, but if you wish to stay up to date with the latest features, you should use the version from the Subversion repository.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.