[Comp-neuro] Release of NEST 2.2.1 and PyNN 0.7.5

Yury V. Zaytsev zaytsev at fz-juelich.de
Tue Feb 5 17:34:45 CET 2013

Dear colleagues,

We are very happy to announce the simultaneous release of NEST 2.2.1 and
PyNN 0.7.5.

PyNN is a simulator-independent language for building neuronal network
models developed by the NeuralEnsemble community:


NEST is a fast and efficient simulator for networks of spiking neurons
developed by NEST Initiative, distributed under the terms of the GNU
General Public License version 2 (or later) and can be downloaded from


Additionally, we made Ubuntu-based live media available (both in ISO and
OVA formats), suitable, for example, for importing into VirtualBox or
burning to a DVD.

NEST, NEURON, Brian, PyNN and other software comes pre-installed, which
is useful for trying out NEST without installing it on your computer,
especially for Windows and Mac OS X users.

NEST 2.2.1 is primarily a bugfix release following NEST 2.2.0, released
in December, 2012, resolving several bugs in the build system, PyNEST,
topology module and built-in models. NEST 2.2.1 has been verified to be
compatible with the latest released PyNN 0.7.5. Below we briefly present
the major new features in NEST 2.2.x series.

== Features ==

NEST 2.2.0 contains substantial improvements and many new features. The
most important ones are:

  1. Better speed, scaling, and memory footprint
  2. Support for connection set algebra (CSA)
  3. Data driven network generation

=== Better speed, scaling, and memory footprint ===

Many of NEST's major data structures have been re-written to improve
speed, scalability and memory footprint.

The most significant changes concern the simulation kernel and the way
it represents networks internally. As a result, NEST has a considerably
lower memory consumption and improved scaling, in particular when using
a large number of cores. The full details and theory behind these
changes are published in two papers:

* Helias et al. Front. Neuroinform. (2012)
* Kunkel et al. Front. Neuroinform. (2012)

* Many connect functions now use OpenMP to connect neurons in parallel.
* OpenMP has also replaced Pthreads as a default for multi-threaded
  simulations, yielding better scaling.
* SLI, the built-in simulation language interpreter of NEST, is now up
  to 5 times faster.
* The topology library has been re-written, greatly improving its speed
  and reducing memory requirements.

=== Support for connection set algebra (CSA) ===

NEST 2.2.0 supports the Connection Set Algebra by Mikael Djurfeldt
( http://dx.doi.org/10.1007/s12021-012-9146-1 ). The Connection Set
Algebra is a powerful notation that allows to formulate complex network
architectures in a concise manner.

=== Data driven network generation ===

NEST 2.2.0 has a new function `DataConnect` which allows the efficient
connection and parametrization of connections from connection data.
`DataConnect` will efficiently create and parameterize synapses.

The new function `GetConnections` allows to efficiently retrieve the
afferent and efferent connections of a neuron or the connections between
groups of neurons. The combination of `GetConnections` and `DataConnect`
allows users to retrieve, save, and restore the synaptic state of a
network. This is particularly useful in models with synaptic plasticity
and learning.

=== Topology library ===

The topology library supports the creation of spatially organized
networks, e.g. for models of the visual system. NEST 2.2.0 supports
3-dimensional networks, where neurons are placed in a volume rather than
on a sheet. There is also a new API to add user defined connection
kernels. Please refer to the updated user manual and examples for more

== Detailed list of changes ==

* Kernel and PyNEST changes
  - Major improvements to the memory consumption and scaling properties
    of the simulation kernel as described in Helias et al. (2012) and
    Kunkel et al. (2012).
  - NEST now supports the connection generator interface, an interface
    allowing external modules to generate connectivity, see
    http://software.incf.org/software/libneurosim .
  - Support for the Connection Set Algebra (CSA) by Mikael Djurfeldt has
    been added, see http://software.incf.org/software/csa and
    http://dx.doi.org/10.3389/conf.fninf.2011.08.00085 .
  - The new command `GetConnections` allows the fast retrieval of
    connections and will replace the slow and memory intensive
    `FindConnections`; `FindConnections` is deprecated and will be
    removed in future releases.
  - The new command `DataConnect` allows to efficiently create network
    connections from data, e.g. when synapse parameters are explicitly
  - Connection objects are now represented as Python lists or NumPy
    arrays; code which relies on the old connection dictionaries will
    have to be changed.
  - The function `GetNodes` has been removed, one has to explicitly use
    either `GetLocalNodes`, or `GetGlobalNodes`.
  - Support for node addresses has been removed and with it the
    functions `GetAddress` and `GetGID`.
  - Threading support for OpenMP has been added and is the default now.
  - Many connect routines and node calibration are now parallel, using
  - New function `CGConnect` for connecting neurons using connection
    generators (see doc/conngen.txt).
  - New function `abort`, which terminates NEST and all its MPI
    processes without deadlocks.
* Topology module changes
  - Major rewrite which resulted in improved performance and reduced
    memory requirements for freely placed neurons.
  - Topology now supports 3-dimensional layers.
  - New API for adding your own kernel functions.
  - 'Nested' layer layout (subnets within subnets) is no longer
    supported; this was previously discouraged for performance reasons.
  - Composite layers (layers with multiple nodes per position) no longer
    contain subnets.
  - Semantics of `GetElement` have changed, in particular a list of GIDs
    is returned for a composite layer, where previously a single subnet
    GID would be returned.
  - `GetPosition`, `Displacement` and `Distance` now only work for nodes
    local to the current MPI process.
  - See the updated Topology User Manual for details.
* SLI Interpreter improvements
  - The SLI Interpreter has been optimized for speed and memory; in
    particular handling and lookup of names is much faster now.
  - SLI now supports fixed size vectors of doubles and integers. The new
    types are called `IntVector` (/intvectortype) and `DoubleVector`
  - NumPy arrays are automatically converted to SLI vectors to conserve
    memory and CPU time.
  - SLI has new functions `arange`, `zeros` and `ones` to easily create
  - The vector types support all common math operations.
  - New functions `DictQ` and `SubnetQ` to test the argument types for
    being a dictionary or a subnet, respectively.
* Miscellaneous changes
  - The installation prefix should now be given explicitly, since
    installing to the default `/usr/local` is strongly discouraged.
  - Substantial documentation updates; a large number of broken
    documentation cross-references has been resolved.
  - Fixed numerical instabilities of the AdEx models (`aeiaf_cond_exp`
    and `aeiaf_cond_alpha`).
  - New significantly faster binomial random number generator replaced
    the previous implementation in librandom (#390).
  - New wrapper for the GSL binomial random deviate generator under the
    name `gsl_binomial`.
  - Support for IBM BlueGene and K supercomputers (configure with
  - The command `setenvironment` has been removed; this functionality
    was broken on Mac OS X for quite some time.
  - Much improved test coverage for SLI, PyNEST and MPI in particular.
  - Many new SLI and PyNEST examples and updates for the existing ones.
  - Code quality of NEST and all examples is continuously monitored now
    using CI ( http://dx.doi.org/10.3389/fninf.2012.00031 ).

== Known issues ==

* The simulation progress indicator does not work with OpenMP and some
  error messages are unreadable.

* On multiarch systems (i.e. 64-bit Red Hat Linux) one has to manually
  move all PyNEST-related files from $PREFIX/lib/python2.6/site-packages
  to $PREFIX/lib64/python2.6/site-packages; this will be resolved in
  next releases. This also breaks `make installcheck`.

As always, please send bug reports to the NEST user mailing list.

Happy simulating!

Beautiful greetings on behalf of the NEST Initiative,

Dipl.-Phys. Yury V. Zaytsev

Institute of Neuroscience and Medicine (INM-6)
Functional Neural Circuits Group
Jülich Research Center


Office: +49 2461 61-9466
Fax # : +49 2461 61-9460

Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt

More information about the Comp-neuro mailing list