Connectionists: Release of NEST 2.2.1 and PyNN 0.7.5
Yury V. Zaytsev
zaytsev at fz-juelich.de
Tue Feb 5 11:34:45 EST 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:
http://neuralensemble.org/PyNN/
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
http://www.nest-initiative.org/index.php/Software:Download
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)
http://dx.doi.org/10.3389/fninf.2012.00026
* Kunkel et al. Front. Neuroinform. (2012)
http://dx.doi.org/10.3389/fninf.2011.00035
* 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
details.
== 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
given.
- 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
OpenMP.
- 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`
(/doublevectortype).
- 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
vectors.
- 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
--enable-bluegene=l/p/q).
- 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
http://www.fz-juelich.de/inm/inm-6/
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 Connectionists
mailing list