867.nest_s
Neuroscience simulator for spiking neural network models
The Neural Simulation Tool - NEST - is developed and maintained by The NEST Initiative, whose President, Hans Ekkehard Plesser github.com/heplesser, served as the primary contact for SPEC CPU 2026.
The NEural Simulation Tool (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. It is used in computational neuroscience to model and study behavior of large networks of neurons and in neuromorphic computing as a reference for correctness and performance. The models describe single neuron and synapse behavior and their connections. Different mechanisms of plasticity can be used to investigate artificial learning and help shed light on the fundamental principles of how the brain works.
NEST is ideal for simulating networks of spiking neurons of any size, and scales from laptops to high-performance computing systems involving thousands of compute nodes. Such simulations try to follow the logic of an electrophysiological experiment. NEST allows users to create neuron models and devices, connect neurons to devices, specify synapse properties and simulate the network for a given number of milliseconds.
The NEST Simulator's development is coordinated and guided by the NEST Initiative e.V., a non-profit organization promoting scientific collaboration in computational neuroscience.
NEST has a programmable user interface that interprets a high level scripting language called SLI. All of the inputs used in the SPEC CPU benchmark are written in the SLI language. The simulation language has functions to
SLI is a stack-oriented programming language with postfix notation. The syntax is simple: Numbers, arrays, or character strings are put on a stack. Functions take their arguments from the stack and return their results back to it. Further information can be found at Scholarpedia's description of SLI.
The scripts were taken from the examples directory of the NEST Github repository, and they represent various types of neuron/synapse models and simulations. The scripts stimulate the models and save the output. A savvy user can write their own scripts based on the neuron and synapse connection models listed in the documentation.
Detailed information about each script:
| Scenario | Notes | Sizes |
| ArtificialSynchrony | Artificial synchrony can be introduced by discrete-time simulation of neuronal networks, because they typically constrain spike times to a grid determined by the computational step size as shown by Hansel et al (Neural Comput 10:467, 1998, doi: 10.1162/089976698300017845. Here, we simulate an all-to-all network of 128 excitatory integrate-and-fire neurons with alpha-shaped post-synaptic currents to demonstrate this effect. | refrate |
| balancedneuron | A single neuron is driven by excitatory and inhibitory random background input. The inhibitory background input rate is adjusted using bisection until the test neuron fires with the same rate as the excitatory background population. Then, the script records the membrane potential of the test neuron for a short period and computes and prints the mean and standard deviation of the test neuron's membrane potential. | train |
| BrodyHopfield | This models spike synchronization behavior of integrate-and-fire neurons in response to a subthreshold oscillation as discussed by Brody and Hopfield (Neuron 37:843, 2003, doi:10.1016/S0896-6273(03)00120-X). All neurons receive the same weak 35Hz AC input current, while each neuron receives a different DC bias current and gaussian noise current. | test |
| brunel | Creates a sparsely coupled network of excitatory and inhibitory neurons (Brunel, J Comput Neurosci 8:183, 2000, doi:10.1023/A:1008925309027). Connections within and across both populations are created at random with fixed in-degree. Neurons are modeled as leaky integrate-and-fire neurons with current-injecting synapses (alpha functions). The brunel-2000 model does not have any Poisson generators and drives neurons by injecting fixed, identical input current to all neurons, initializes the membrane potential of all neurons to random values, and thus does not consume any random numbers during simulation. | train |
| cuba | A network very similar to the Brunel network based on Brette et al (J Comput Neurosci 23:349, 2007, doi:10.1007/s10827-007-0038-6). Both neuron populations receive Poisson spike trains as background input. The spike output of 1000 neurons areis recorded. Neurons are modeled as leaky integrate-and-fire neurons with voltage-jump synapses (cuba_ps), current-injecting synapses with exponential synapses (cuba), and synapses undergoing activity-dependent weight changes (cuba_stdp). | train (cuba, cuba_ps), refrate (cuba_stdp) |
| microcircuit | A model of the circuitry found below 1 mm2 of cortical surface, composed of four excitatory and four inhibitory neuron populations. The model is a popular reference for both correctness and performance (Senk et al, 2025, doi:10.48550/arXiv.2505.21185). | refspeed |
| hpc_benchmark | A variant of the Brunel model configured to support model scaling. The number of incoming connections per neuron is fixed and independent of network size. Produces a balanced random network of neurons in which the excitatory-excitatory connections exhibit weight changes (STDP with multiplicative depression and power-law potentiation). At default network size, mutual equilibrium is obtained between the activity dynamics (low rate in asynchronous irregular regime) and the synaptic weight distribution (unimodal). | refspeed |
| structural_plasticity | Represents a neural network with a dynamic structure, i.e., connections are formed and deleted during the simulation. Simulates a network with two populations, 80% excitatory, 20% inhibitory, initially without connections and relies on structural plasticity to generate the connectivity. It uses Gaussian growth curves with different parameters for excitatory and inhibitory synaptic elements. | refrate |
The full online documentation for the NEST Simulator can be found at nest-simulator.readthedocs.io/en/stable/index.html.
Some workloads output voltage/frequency readings at fixed intervals. Others dump out log files that allow plotting of neuron metrics through simulation time. The refspeed multithreaded workloads output a report file showing total neuron spikes across the entire simulation. Each workload has outputs commensurate to the way the benchmark is executed for that scenario, and these are all verified within a small relative tolerance.
C++
The SPECrate version is single-threaded. The SPECspeed version uses OpenMP for parallelism.
NEST makes use of std::isnan, and as such, support for infinite math is required.
Older compilers may need to set "EXTRA_LIBS = -lstdc++fs"
NEST is distributed under the GNU General Public License v2 or later. Submodules are distributed under compatible licenses as described below.
The NEST source is available at github.com/nest/nest-simulator, and is distributed under the GPL v2 or later. The SPEC CPU sources began with commit hash bf55cc4a on June 9, 2024, off of the version 3.7 official release of NEST. All of the SLI input scripts are also distributed under the GPL v2 or later.
randutils.hpp is available at gist.github.com/imneme/randutils.hpp, and is distributed under the MIT License, courtesy of Melissa E. O'Neill.
spec_random_distributions.h is sampled from the LLVM project, which is distributed under the Apache License v2.0 with LLVM Exceptions.
rxspencer is Harry Spencer's regular expression library, obtained via https://github.com/garyhouston/rxspencer with modifications detailed there, and modified by SPEC for compatibility with modern C/C++ function definition syntax. It uses its own license.
Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)