NEST 2.12.0
NEST 2.12.0 contains 1763 repository commits from 169 pull requests by 40 developers since v2.10.0.
New models, tests and examples
- Symmetric STDP model
vogels_sprekeler_synapse
(Vogels et al., 2011; #218) - Support for inhibitory STDP (#284)
- New neuron model
aeif_cond_beta_multisynapse
using GSL ODE solver (#439) - Generalized integrate-and-fire (GIF) neuron models
gif_psc_exp
,gif_psc_exp_multisynapse
,gif_cond_exp
,gif_cond_exp_multisynapse
(#261, #516, #579) weight_recorder
for recording weights of plastic synapses (#497)- Added current based adaptive exponential I&F neurons
aeif_psc_alpha
,aeif_psc_exp
(#513) - Implement the full NMDA model for
ht_neuron
(#491) - Added cubic milimeter microcircuit model for PyNEST (#451)
- New PyNEST example
sensitivity_to_perturbation.py
(#198) - New test and improvements for handling the
multiplicity
property ofEvent
s (#255) - Added sigmoid growth curve for structural plasticity (#476)
General improvements
- Support for two-dimensional parameter arrays in
Connect
(#465) - Added a
vim
syntax highlighing file (#253) - PyNEST raster plot example now uses pandas if available (#422)
- New environment variables
SLI_PATH
for adding to the SLI search path andNEST_MODULES
for loading modules on startup (#479) - New flag
supports_precise_spikes
for models supporting off-grid events (#475) Connect
now supports a new keywordsymmetric
to also add a reverse connection in a single run, synapses which require this now have therequires_symmetric
flag set (#315, #524)- Better support for Python 3 and improved build system support for Python-less builds (#313, #342, #452, #620, #631, #634)
- Cleaned up and more informative logging during
Simulate
(#269) do_tests.sh
prints out the error message in case a test fails (#515)
Documentation and example changes
- Extended documentation of SLI
regexec
function (#251) - Improve documentation of current filtering in
iaf_psc_exp
(#276) - Fix and clean up
hpc_benchmark.sli
example (#289) - Re-format all PyNEST code to be PEP8 compliant and use NumPy style docstrings (#263, #337)
- Add documentation on heterogenenous MPI environments (#335)
- Add information on how to contribute (#320)
- Added link to NEST Contributor Agreement to documentation index (#235)
- Added documentation for synaptic elements and growth curves (#219)
- Added more information about spike generation and precision (#364)
- Documentation of exact integration method used in current based models (#383)
- The toplevel
README.md
now contains all general information about NEST (#423) - Added documentation on using
gcc
on BlueGene/Q (#447) - Documentation improvement to
ht_neuron
and minor code prettification (#387) - Updates to Eclipse instructions (#444)
- Extended
README.md
s for testsuite and PyNEST (#503) - Added info on static linking against non-standard allocators on BG/Q (#489)
- Add information on filing bugs to contribution guidelines and development documentation (#548, #549)
- Added full user documentation in markdown (#292, #371)
- Move gap junction examples to more appropriate directory (#594)
- More information on conventions for naming models (#611)
- Extended gap junction documentation in markdown and SLI docstrings (#608, #623)
- Added information on spike exchange to documentation (#612)
- Updated installation documentation (#615)
- Converted NEST by example book chapter to Jupyter notebook and updated for 2.12.0 (#602)
- Replaced
iaf_neuron
in docstrings and examples byiaf_psc_alpha
(#626)
Performance
- Improve
GetConnections
performance up to 118 times (#490) - Improved performance of threaded connection generation for large networks up to 80 times (#485)
- Improved connection parameter skipping with connection rule
all_to_all
(#568)
Build system and continuous integration
- Rewrite build system to use CMake instead of autotools (#213, #234, #318, #326, #350)
- Add CMake option for colored
gcc
output (#378) - TravisCI now checks for PEP8 and counts compiler warnings (#296, #298)
- Reduce the number of build jobs from a whole matrix to only dependent jobs (#409, #640)
- Improved logging and more robust parsing of TravisCI log (#395, #413)
- Add automatic testing for MUSIC (#471)
- Better handling of precise spike times in
spike_detector
(#446)
Bug fixes
- Fixed shadowing of
connect()
function inSPBuilder
(#216) - Fix the hard coded decay of synaptic elements in the structural plasticity framework (#215)
- Fix for importing
readline
with Anaconda Python (#209) - Bug fix for
icpc
compiler (#232) - Syntax fixes for relative imports in Python 3 (#233)
- Fix uninitialized variables in multisynapse models (#283)
- Fix compilation on K computer (#288)
- Fix and document the usage of
nosetests
for the PyNEST testsuite (#321) - Topology now skips non-local potential targets correctly (#282)
- Properly handle precise times in
spike_generator
(#327) - Fix copyright header test to exclude backup files (#340)
- Remove PyNEST's link dependency on
libreadline
(#323) - Fix
MyModule
example build and install problems (#328) - Fixed order of setting parameters for synapse models (#333)
- Fix C++11 compilation error due to stream conversion (#389)
- Fix handling of params dictionary in Connect (#441)
- Improve numerical stability of some tests (#466)
- Record correct quantity for post-synaptic current in
iaf_psc_alpha
(#500) - Use correct unit (ms) for printing MUSIC acceptable latency (#535)
- Fixing encoding issues in PyNEST (#536)
- Fix conversion from heterogeneous to homogeneous connector when deleting last synapse of a type (#566)
- Fix refractoriness handling for adaptive exponential I&F neuron models and
hh_cond_exp_traub
(#575, #590) - Replace
operator<<
with regular function to avoid issues with K compiler (#587) - Fix bug in
sp_disconnect()
that could lead to heterogeneous connectors not being used any more during spike delivery (#597) - Fixed desynchronization of MPI processes due to waveform relaxation (#607)
- Fixed
get_targets()
for structural plasticity (#604) - Exception when structural plasticity and multiple threads are used (#629)
- Added check on threading in two PyNEST tests which require it (#642)
- V-bounded implementation for adaptive exponential I&F neuron and fix for Delta_T=0 (#474)
- Fix for usage of gap junctions without waveform relaxation (#655)
ConnectLayers
now connects thread siblings of devices properly (#666)
Under the hood
- Split and refactor NEST
Scheduler
andNetwork
classes into separate*Manager
classes according to their responsibility (#205) - Replaced internal C++ variable U0_ by E_L (#236)
- Improvements of the framework for iterative solutions (#273)
- Re-format all code files to have a maximal line width of 80 characters (#297)
- Move inline functions from
*.cpp
to*_impl.h
(#397) - Additional timers and local spike counter for profiling and performance measurements (#434)
- Removed
*_t
aliases for built-in C++ data types (#454) - Rename
Parameter
class in Topology toTopologyParameter
(#408) - Add vera++ config file to repository (#562)
- Removed plural forms of certain parameter names (#551)
- New help generator re-written in PyNEST replaces the old SLI generator (#464)
- Better handling of exceptions during update (#542)
Changed behavior and removed functionality
- Raise exceptions on incommensurate times (#265)
- Unified synaptic recordable names for current based models (#502)
- Added protection against probabilistic wiring to spike_detector (#560)
The long deprecated functions ConvergentConnect
, DivergentConnect
, RandomConvergentConnect
, RandomDivergentConnect
and FindConnections
were removed in favor of the new unified Connect
framework. See the documentation on connection management for details on how to convert your code.
Deprecated functions and models
The following models will be removed in the next major release:
iaf_neuron
, please useiaf_psc_alpha
insteadsubnet
,siblingcontainer
andproxynode
will be removed without replacementaeif_cond_alpha_RK5
, please use plainaeif_cond_alpha
instead
Due to the upcoming removal of the subnet
model and the concept of a hierarchical network storage, the following functions are also marked as deprecated and will be removed together with the subnet
model in the next major release:
LayoutNetwork
,GetNetwork
BeginSubnet
,EndSubnet
,ChangeSubnet
,CurrentSubnet
GetNodes
,GetLeaves
,GetChildren
GetLID
The remaining functionality of DataConnect
over normal Connect
will be integrated into the normal Connect
function. Thus DataConnect
is marked as deprecated and will be removed once Connect
has the same feature set.
For all deprecated models and functions, a corresponding message will be printed upon usage (#580).
Contributors since v2.10.0
- Alcazar, Jesus Garrido
- Bachmann, Claudia
- Blundell, Inga
- Bos, Hannah
- Breitwieser, Oliver
- Deepu, Rajalekshmi
- Diaz, Sandra
- Djurfeldt, Mikael
- Eppler, Jochen Martin
- Fardet, Tanguy
- Golosio, Bruno
- Graber, Steffen
- Hagen, Espen
- Hahne, Jan
- Ippen, Tammo
- Jordan, Jakob
- Kunkel, Susanne
- Lepperød, Mikkel Elle
- Mahmoudian, Sepehr
- Morrison, Abigail
- Muller, Eilif Benjamin
- Mørk, Håkon
- Peyser, Alexander
- Plesser, Hans Ekkehard
- Plotnikov, Dimitri
- Rao, Arjun
- Rothe, Hendrik
- Schenck, Wolfram
- Schmidt, Maximilian
- Schuecker, Jannis
- Schumann, Till
- Seeholzer, Alex
- Setareh, Hesam
- Shusharin, Alexey
- Sinha, Ankur
- Terhorst, Dennis
- Trensch, Guido
- Vennemo, Stine Brekke
- Vieites, Juan Hernando
- Weidel, Philipp
Citation
If you use this version of NEST, please cite it as Kunkel, Susanne et al. (2017). NEST 2.12.0. Zenodo. 10.5281/zenodo.259534. The full citation is available in different formats on Zenodo.