PyNN 0.8 beta 2 release notes¶
January 6th 2015
Welcome to the second beta release of PyNN 0.8!
For full information about what’s new in PyNN 0.8, see the PyNN 0.8 alpha 1 release notes and PyNN 0.8 beta 1 release notes.
NEST 2.4¶
The main new feature in this release is support for NEST 2.4. Previous versions of NEST are no longer supported.
Python 3¶
With the rewrite of PyNEST in NEST 2.4, PyNN now has two backend simulators (NEURON being the other) that support Python 3. There was really no longer any excuse not to add Python 3 support to PyNN, which turned out to be very straightforward.
Standardization of random distributions¶
Since its earliest versions PyNN has supported swapping in and out different random number generators, but until
now there has been no standardization of these RNGs; for example the GSL random number library uses “gaussian” where
NumPy uses “normal”. This limited the usefulness of this feature, especially for the NativeRNG
class, which
signals that random number generation should be passed down to the simulator backend rather than being done at the
Python level.
This has now, finally, been fixed. The names of random number distributions and of their parameters have now been standardized, based for the most part on the nomenclature used by Wikipedia. A quick example:
from pyNN.random import NumpyRNG, GSLRNG, RandomDistribution
rd1 = RandomDistribution('normal' mu=0.5, sigma=0.1, rng=NumpyRNG(seed=922843))
rd2 = RandomDistribution('normal' mu=0.5, sigma=0.1, rng=GSLRNG(seed=426482))
API changes¶
Population.record()
now has an optional sampling_interval argument, allowing recording at intervals larger than the integration time step.FixedNumberPostConnector
now has an option with_replacement, which controls how the post-synaptic population is sampled, and affects the incidence of multiple connections between pairs of neurons (“multapses”).- The default value of the min_delay argument to
setup()
is now “auto”, which means that the simulator should calculate the minimal synaptic delay itself. This change can lead to large speedups for NEST and NEURON code.
Other changes¶
- Reimplemented Izhikevich model for NEURON to allow current injection.
Connector
s that can generate multiple connections between a given pair of neurons (“multapses”) now work properly with the pyNN.nest backend.- Added a version of
CSAConnector
for the NEST backend that passes down the CSA object to PyNEST’sCGConnect()
function. This greatly speeds upCSAConnector
with NEST.- Added some new example scripts, deleted some of the more trivial, repetitive examples, and merged the several variants of the “VAbenchmarks” example into a single script.
- When data blocks from different MPI nodes are merged, the spike trains are now by default sorted by neuron ID. If this sorting proves to be too time-consuming we can in future expose sort/don’t sort as an option.
- Added
IF_cond_exp_gsfa_grr
standard model (integrate and fire neuron with spike frequency adaption and relative refractory period) to Brian backend, and fixed brokenHH_cond_exp
model.- Improvements to callback handling.
- Assorted bug fixes