Software:About NEST

From NEST Initiative
Jump to: navigation, search

Contents

What is NEST?

NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons.

NEST is ideal for networks of spiking neurons of any size, for example:

  1. Models of information processing e.g. in the visual or auditory cortex of mammals,
  2. Models of network activity dynamics, e.g. laminar cortical networks or balanced random networks,
  3. Models of learning and plasticity.

Learn more about NEST, its developers and its history on YouTube:

>> NEST:: documented (short version)

>> NEST:: documented (long version)

How do I use NEST?

You can use NEST either as a module for the interpreted programming language Python (PyNEST) or as a stand alone application (nest). PyNEST provides a set of commands to the Python interpreter which give you access to NEST's simulation kernel. With these commands, you describe and run your network simulation. You can also complement PyNEST with PyNN, a simulator-independent set of Python commands to formulate and run neural simulations. While you define your simulations in Python, the actual simulation is executed within NEST's highly optimized simulation kernel which is written in C++.

A NEST simulation tries to follow the logic of an electrophysiological experiment that takes place inside a computer with the difference, that the neural system to be investigated must be defined by the experimenter.

The neural system is defined by a possibly large number of neurons and their connections. In a NEST network, different neuron and synapse models can coexist. Any two neurons can have multiple connections with different properties. Thus, the connectivity can in general not be described by a weight or connectivity matrix but rather as an adjacency list.

To manipulate or observe the network dynamics, the experimenter can define so-called devices which represent the various instruments (for measuring and stimulation) found in an experiment. These devices write their data either to memory or to file.

NEST is extensible and new models for neurons, synapses, and devices can be added.

To get started with NEST, please see the Documentation Page for Tutorials.

Why should I use NEST?

  1. NEST provides over 50 neuron models many of which have been published. Choose from simple integrate-and-fire neurons with current or conductance based synapses, over the Izhikevich or AdEx models, to Hodgkin-Huxley models.
  2. NEST provides over 10 synapse models, including short-term plasticity (Tsodyks & Markram) and different variants of spike-timing dependent plasticity (STDP).
  3. NEST provides many examples that help you getting started with your own simulation project.
  4. NEST offers convenient and efficient commands to define and connect large networks, ranging from algorithmically determined connections to data-driven connectivity.
  5. NEST lets you inspect and modify the state of each neuron and each connection at any time during a simulation.
  6. NEST is fast and memory efficient. It makes best use of your multi-core computer and compute clusters with minimal user intervention.
  7. NEST runs on a wide range of UNIX-like systems, from MacBooks to BlueGene supercomputers.
  8. NEST has minimal dependencies. All it really needs is a C++ compiler. Everything else is optional.
  9. NEST developers are using agile continuous integration-based workflows in order to maintain high code quality standards for correct and reproducible simulations.
  10. NEST has one of the largest and most experienced developer communities of all neural simulators. NEST was first released in 1994 under the name SYNOD and has been extended and improved ever since.
  11. NEST is open source software and is licensed under the GNU General Public License v2 or later.

Please cite NEST and tell us about your work

If you have used NEST for your work either directly or via PyNN, please cite it in your publications as:

Gewaltig M-O & Diesmann M (2007) NEST (Neural Simulation Tool) Scholarpedia 2(4):1430.

Here is suitable BibTeX entry:

@ARTICLE{Gewaltig:NEST,
  author = {Marc-Oliver Gewaltig and Markus Diesmann},
  title = {NEST (NEural Simulation Tool)},
  journal = {Scholarpedia},
  year = {2007},
  volume = {2},
  pages = {1430},
  number = {4}
}

If you tell us about your publications that used NEST, we will add it to our publication list, thus making it visible to potential readers. Send us your reference or even a reprint, using our contact form or sending a mail to info at nest-initiative dot org.

NEST logo for your poster or presentation

If you like NEST, why not show it on your poster or on your slides?

Nest-simulated-logo.png

System requirements

NEST requires an ISO 98 conforming C++ compiler and a moderately complete implementation of the C++ standard library.

We regularly build NEST with the following compilers:

  • GCC 4.2 and later
  • Intel C++ compiler (v11 works, there are some problems with v12 and v13)
  • IBM xlcxx

on a range of systems including:

  • Linux boxes
  • OSX 10.6 and 10.7
  • BlueGene/P and BlueGene/Q

To use NEST's Python interface PyNEST or PyNN, we recommend Python 2.7 along with NumPy / SciPy and matplotlib. Some neuron models and a wide range of random number generators require the GNU Scientific Library.

Personal tools
Namespaces

Variants
Actions
Software
Initiative
Impressum
Tools