Nest Simulator Versions Save

The NEST simulator

v3.1

2 years ago

NEST 3.1 is the result of 460 commits by 17 developers since NEST 3.0 which was released on 2021-06-10.

This release contains many bug fixes and improvements, especially in the Python setup where support for Python environments was improved.

The PyNEST API was extended to support a more intuitive way of setting and retrieving kernel parameters. Where you previously had nest.SetKernelStatus({"resolution": 0.2}) in your simulation script, you can now just write nest.resolution = 0.2. Kernel attributes now come with their own docstrings and even tab-completion works for them! Additionally, PyNEST functions are now directly linked to the API reference throughout the documentation.

The testsuite now handles MPI tests more consistently and uses pytest for all Python tests.

Enhancements

Normal

Bug fixes

Critical

High

Normal

Maintenance

Critical

High

Normal

v2.20.2

2 years ago

NEST 2.20.2 is the result of 15 commits by 7 developers since NEST 2.20.1 which was released on 2020-12-02.

This release contains mainly bug fixes and backports. Most notably it brings support for detailed timers (#2086, which allows more consistent comparisons between benchmark results obtained with this and later versions.

In particular it contains

v2.14.1

2 years ago

NEST 2.14.1 is the result of 14 commits by 6 developers since NEST 2.14.0 which was released on 2017-10-20.

This patch release contains an optimization for the Potjans & Diesmann (2014) model and adds builtin detailed timers and corresponding documentation, which allows more consistent comparisons between benchmark results obtained with this and later versions.

v3.0

2 years ago

NEST 3.0 is the result of 5043 commits by 47 developers since NEST 2.20.0 which was released on 2020-01-28.

With the release of NEST 3.0, we introduce a ton of new features to improve how you create and manage simulations.

NEST 3.0 introduces a more direct approach to accessing neuron and device properties and to interacting with synapses. You can now read and write properties of nodes and connections with the functions get() and set() or by direct member access (e.g., neuron.V_m = -55.0). Parameter objects make mathematical and probabilistic functions available to pick neuron properties, create spatial positions, define connection probabilities, and much more. In addition, it is now way easier to perform operations such as slicing, iterating, and tests for equality on collections of neurons and synapses.

NEST 3.0 replaces the old random number generator library with a new one based on the C++ Standard Library. The new library also provides generators from the Random 123 library, including crypotgraphic generators. Most notably, you can now much more easily seed all generators and change the type of random number generator you are using.

We have improved how recordings from simulations are handled, making the infrastructure more modular and extensible. In addition to the previously supported recording methods, a new backend for SIONlib is now available. The interface for stimulation devices can now handle data from external sources, such as other simulators.

The Topology Module is no longer a separate module; it is integrated within PyNEST, and now referred to as support for spatially-structured networks.

NEST Server is a novel backend to NEST that allows to run simulations via a RESTful API. Instead of directly importing nest into your Python session, the code that controls the simulation is sent over HTTP to NEST Server in this use-case.

Enhancements

Critical

High

Normal

Bug fixes

Critical

High

Normal

Maintenance

Critical

High

Normal

The list contains 322 PRs.

v2.20.0

4 years ago

WARNING: This version of NEST is affected by issue #1394, which can lead to incorrect simulation results under certain circumstances. Please double-check all simulation results obtained with this version and if in doubt, re-run using a different split between MPI processes and threads. The description of the issue contains more details and will be updated when new information becomes available.


NEST 2.20.0 is the result of 454 commits in 77 pull requests by 25 developers since NEST 2.18.0 which was released on June 7, 2019.

This release wraps up the 2.x series of NEST and contains many improvements and bug fixes. Highlights are the addition of the generalized leaky integrate-and-fire neuron models by the Allen Institute, STDP synapses with nearest-neighbor spike pairing schemes and improved documentation, available on Read The Docs. Following is a list of all merged pull requests:

Enhancements

Models

Installation

Documentation

Kernel

Infrastructure

PyNEST

Bug fixes

Models

Documentation

Kernel

Infrastructure

Maintenance

Models

Installation

Documentation

Kernel

Infrastructure

PyNEST

v2.18.0

4 years ago

WARNING: This version of NEST is affected by issue #1394, which can lead to incorrect simulation results under certain circumstances. Please double-check all simulation results obtained with this version and if in doubt, re-run using a different split between MPI processes and threads. The description of the issue contains more details and will be updated when new information becomes available.


NEST 2.18.0 is the result of 116 pull-requests (1128 commits) by 31 developers since NEST 2.16.0 which was released on 2018-08-21.

This release provides a number of new neuron and plasticity models and additional functionality. It improves memory allocation and performance during network construction. It includes a number of bug fixes and is the first release that can be installed via aptitude and in an Conda environment directly from conda-forge.

Enhancements

Model

Installation

Documentation

Kernel

Infrastructure

Pynest

Bug-Fixes

Model

Installation

Interpreter

Documentation

Kernel

Infrastructure

Pynest

Maintenance

Model

Installation

Interpreter

Documentation

Kernel

Infrastructure

Pynest

v2.16.0

5 years ago

WARNING: This version of NEST is affected by issue #1394, which can lead to incorrect simulation results under certain circumstances. Please double-check all simulation results obtained with this version and if in doubt, re-run using a different split between MPI processes and threads. The description of the issue contains more details and will be updated when new information becomes available.


NEST 2.16.0 is the result of 89 merged pull requests by 39 developers since NEST 2.14.0 which was released on 20th of October 2017.

This release contains many bug fixes and improvements. Most notably it brings a new infrastructure for the storage of connections, which reduces the memory consumption and network build times (Jordan et al., 2018). and extends the rate model framework for novel use-cases (Senden et al., 2018).

Enhancements

Models

Installation

Documentation

Kernel

Infrastructure

PyNEST

Fixed Bugs

Models

Installation

Documentation

Kernel

Infrastructure

PyNEST

Maintenance

Models

Installation

Interpreter

Documentation

Kernel

Infrastructure

PyNEST

Contributors since NEST 2.14.0

  • Alberto Antonietti
  • Rajalekshmi Deepu
  • Moritz Deger
  • Sandra Diaz
  • Jochen Martin Eppler
  • Jesús Garrido
  • Steffen Graber
  • Espen Hagen
  • Jan Hahne
  • Tammo Ippen
  • Jakob Jordan
  • Chrisitan Keup
  • Itaru Kitayama
  • Jeyashree Krishnan
  • Tobias Kühn
  • Susanne Kunkel
  • Mikkel Elle Lepperød
  • Charl Linssen
  • Jessica Mitchell
  • Håkon Mørk
  • Abigail Morrison
  • Yannick Nodem
  • Luciano Paz
  • Alexander Peyser
  • Hans Ekkehard Plesser
  • Jari Pronold
  • Luis Riquelme
  • Dimitri Rodarie
  • Maximilian Schmidt
  • Jannis Schuecker
  • Mario Senden
  • Alex Serenko
  • Alexey Shusharin
  • Ankur Sinha
  • Sebastian Spreizer
  • Dennis Terhorst
  • Stine Brekke Vennemo
  • Philipp Weidel
  • Barna Zajzon

Citation

If you use this version of NEST, please cite it as Linssen, Charl et al. (2018). NEST 2.16.0. Zenodo. 10.5281/zenodo.1400175. The full citation is available in different formats on Zenodo.

v2.14.0

6 years ago

NEST v2.14.0 contains 705 repository commits by 33 developers since v2.12.0.

This release is mainly a bug fix release, but also contains some new features, most notably a framework for the simulation of rate neurons (Hahne et al., 2017).

New features

  • Multimeter now supports offset for recording (#669, #670)
  • Topology now supports elliptical masks and a function to obtain GIDs inside masked areas (#664)
  • Currents generated by stimulating devices can now be recorded (#658, #663, #720, #730, #733)
  • Split Simulate into Prepare, Run and Cleanup (#650, #692, #778, #803)
  • New static synapse benoulli_synapse with probabilistic transmission (#747)
  • The global id can now be removed from the filename of recording devices (#760)

Documentation, tests and web resources

  • Better download page for NEST website (#689)
  • Make help and helpdesk more robust when used from Python and Jupyter notebooks (#688)
  • Revised content in the [Introduction to PyNEST}(http://nest-simulator.org/introduction-to-pynest/) (#661)
  • Installation documentation now points out that install path should be absolute (#561, #701)
  • Topology tests are now automatically run (#302, #705)
  • Small fixes for spelling errors (#729)
  • Added example script for structural plasticity (#753)
  • Updated testsuite readme file (#752)
  • Properly set the environment variables for do_tests.sh (#819)

Bug fixes

  • Throw exception when connecting fails (#693)
  • Fix NumPy test for quantal_stp_synapse (#680, #681)
  • Fix crash with wrong data types in SetDefaults for connections (#545, #704)
  • music_event_out_proxy now also works correctly in multi-threaded simulations (#696, #710)
  • Fixed bug in CopyModel related to the delivery of secondary events (#708, #711)
  • GetConnections work correctly now also for _hpc synapses (#714, #521)
  • ResetKernel now properly ensures that off_grid_spiking is reset (#716)
  • Name insertion is now done in thread-serial contexts only and all plain strings for property handling are replaced with Name objects (#719, #722, #724)
  • Fix OSX clang compilation problems and warnings (#74, #732, #729)
  • Fix possible deadlock in neuron update loop in multi-threaded code (#718, #734)
  • Moved check_synapse_params to specific synapse classes and add tests for synapse parameter check (#735, #736, #739)
  • Files starting with .# are now excluded from help generation (#802)
  • Time in step_current_generator is now internally represented in steps (#740, #815)
  • iaf_psc_exp_ps now handle simultaneous spikes independently (#368, #810)
  • Module installation is now prohibited after CopyModel (#746, #804)
  • Fix execution of MPI-enabled tests for structural plasticity (#791, #799)
  • Compile-time variable CMAKE_NEST_PREFIX now uses absolute path (#749, #783, #796)
  • Fix bad_alloc exception (#644, #787)
  • Prohibit DataConnect in multi-threaded mode as correct connectivity cannot be guaranteed here (#776)
  • Skip test_crash_or_die.sli if NDEBUG is set as this does not work (#272, #770)
  • Fix usage of precision in spin_detector and documentation (#767)
  • Fix PyNEST helper functions to make them work again (#688, #766)
  • Allow compilation with FCC by removing const qualifier (#755)
  • Environment variables are now properly set for do_tests.sh (#816, #819)
  • Fixed various typos in PyNEST documentation (#816)
  • Ensure number of vacant synaptic elements is always >= 0 (#818)

Under the hood

  • Changed all files to comply to code style checks. Especially all single line conditionals and loops are now enclosed in curly brackets (#691)
  • Remove duplicate constructors for long & double from Time units (#699)
  • Support for custom connector models (#683, #686)
  • Avoid divisions/calulcation of steps in the Time class (#685, #706)
  • Secondary events now contain a time stamp (#707, #709)
  • CPPCHECK is activated in the continuous integration by ignored for now (#668)
  • Removes binary_neuron_impl.h in favor of code in binary_neuron.h (#813)
  • Change in GetStructrualPlasticityStatus format (#775)
  • Remove patching of Python's warning function (#662, #769)
  • Moved sanity check for structural plasticity vacant elements to decay function (#827)
  • Fixes for using a relative install prefix (#828)
  • Properly reduce primary_end_ marker for heterogeneous connections (#832, #834)
  • Fix problem with iaf_psc_delta_canon in connection with test_dcgen_vs_I_e.sli (#822)
  • Refactor ConnectionGenerator Interface and improve documentation (#206, #309, #483)

Build system and continuous integration

  • Skipped SLI tests are now marked as skipped, not success (#713)
  • Skip help generation without Python or Python versions prior to 2.7.8 (#678, #715, #748, #751)
  • Circumvent negative max_width in Travis log parser (#731)
  • Ensure correct options for sed are used on BSD-based systems (#713, #744)
  • Fix typo in check_code_style.sh, which lead to aborting the continuous integration run in some cases (#814)
  • PyNEST test result parsing is now not confused anymore by NEST output (#762, #788)
  • Use the minimal image trusty in TravisCI with recommended group option (#757, #785)

Contributors since 2.12.0

  • Shailesh Appukuttan
  • Milena M. Carvalho
  • David Dahmen
  • Rajalekshmi Deepu
  • Sandra Diaz
  • Jochen Martin Eppler
  • Tanguy Fardet
  • Steffen Graber
  • Jan Hahne
  • Michael Hoff
  • Tammo Ippen
  • Jakob Jordan
  • David Kappel
  • Itaru Kitayama
  • Susanne Kunkel
  • Sepehr Mahmoudian
  • Jessica Mitchell
  • Håkon Mørk
  • Abigail Morrison
  • Eric Müller
  • Alexander Peyser
  • Hans Ekkehard Plesser
  • Maximilian Schmidt
  • Jannis Schuecker
  • Martin Schulze
  • Till Schumann
  • Ankur Sinha
  • Dennis Terhorst
  • Guido Trensch
  • Hünkar Can Tunç
  • Stine Brekke Vennemo
  • Philipp Weidel
  • Barna Zajzon

Citation

If you use this version of NEST, please cite it as Peyser, Alexander et al. (2017). NEST 2.14.0. Zenodo. 10.5281/zenodo.882971. The full citation is available in different formats on Zenodo.

v2.12.0

7 years ago

DOI License

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 of Events (#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 and NEST_MODULES for loading modules on startup (#479)
  • New flag supports_precise_spikes for models supporting off-grid events (#475)
  • Connect now supports a new keyword symmetric to also add a reverse connection in a single run, synapses which require this now have the requires_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.mds 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 by iaf_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 in SPBuilder (#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 and Network 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 to TopologyParameter (#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 use iaf_psc_alpha instead
  • subnet, siblingcontainer and proxynode will be removed without replacement
  • aeif_cond_alpha_RK5, please use plain aeif_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.