PyNN is maintained on

The modeling ambitions of the FACETS consortium are possible only if the software complexity barrier can be made to retreat:

A large-scale bottom-up model of the early visual system (retina->LGN->V1) built automatically from databases of biological measurements and recordings, which passes a battery of known functional benchmarks, is a daunting software task which cannot be achieved by an up-scaling of presently standard focused modeling approaches.

Adding to this the requirement that the resulting model should have an implementation path to the FACETS Neuromorphic hardware platform, puts the FACETS consortium in the hot-spot to reinvent computational neuroscience modeling practices, and we're doing it!

We looked to computer science and trends in modern programming language design and adoption to find a strategy for getting past the software complexity barrier: The Python programming language.

While most popular neuroscience simulation tools, such as NEURON or NEST, have invested scarce programmer resources to implement custom interpreter environments, Python could meet the needs of all neuroscience simulation tools, unify them under a single programming language, expose them to a vast repertoire of modules not limited to scientific programming, and generally accelerate neuroscience software tool development by drastically reducing duplication across simulation communities.

For this reason, FACETS has catalyzed Python adoption in the field through direct support of programmers implementation Python interfaces to NEURON, NEST, PCSIM and Neuromorphic hardware, by organizing annual "CodeJam" meetings to support and encourage Python adoption external to FACETS, and by supporting the establishment of the website, a "Python in Neuroscience" platform for collaborative software development.

And then there is PyNN: Assuming all simulators can be controlled from Python, their programming interfaces (APIs), the languages used by the modeler to provide an implementation of their ideas, can be unified. PyNN provides both such a unified API, and a simulator agnostic modeling abstraction layer to encapsulate and greatly simplify the large-scale spiking neural network modeling work needed to implement the FACETS vision model. For an overview of the PyNN architecture, see the figure.

For neuromorphic hardware, PyNN is a technology breakthrough: For the first time, neuromorphic hardware experiments can be developed using the same programming interface as for a software simulator, greatly improving usability for computational neuroscientists, and models running on the hardware can be easily cross-checked and verified using a software simulator.

Entering the latter stages of the FACETS project, the Python and PyNN technologies are the foundation to push back the software complexity barrier that FACETS vision modeling objectives can be achieved.


19 Feb 2010