Network and simulation limits¶
NEST’s kernel encodes target neuron identifiers, synapse types, thread IDs, and MPI ranks into a compact 64-bit integer. The number of bits allocated to each field sets hard limits on the size of a simulation. Some limits are fixed; others depend on the target-bits-split compile option.
Configuring limits at compile time¶
The -Dtarget-bits-split CMake option controls how the 64-bit target
identifier is partitioned between synapse types, threads, and MPI ranks. Two
presets are available:
CMake flag |
Preset name |
Use case |
Description |
|---|---|---|---|
|
|
Default |
More synapse types and threads; fewer MPI ranks |
|
|
Large HPC clusters |
More MPI ranks and threads; fewer synapse types |
See CMake Options for NEST for the full list of build options.
Maximum number of synapse types¶
The syn_id field width controls how many distinct synapse models a single
simulation can use simultaneously.
Preset |
Bits for |
Max synapse types |
|---|---|---|
|
9 |
511 |
|
6 |
63 |
The limit applies to the number of distinct models registered with the kernel, not the total number of synaptic connections.
Maximum threads and MPI ranks¶
Thread IDs (tid) and MPI ranks each occupy their own bitfield.
Preset |
Bits for threads ( |
Max threads per MPI process |
|---|---|---|
|
9 |
511 |
|
10 |
1 023 |
Preset |
Bits for ranks |
Max MPI processes |
|---|---|---|
|
18 |
262 143 |
|
20 |
1 048 575 |
Note
Use the hpc preset when you need more than 262 143 MPI ranks or more
than 511 threads. The trade-off is that the hpc preset supports only
63 synapse types instead of 511.
Maximum number of nodes¶
The node ID field is 61 bits wide regardless of the target-bits-split preset. One value is reserved as a disabled sentinel, so the maximum node ID accessible in a simulation is \(2^{61} - 2\) (approximately 2.3 × 1018).
Delay constraints¶
Delays in NEST are stored as integer multiples of the simulation resolution \(h\). Two bitfields impose hard upper bounds:
Minimum delay (``min_delay``)
The lag field is 14 bits wide. The minimum delay across all connections in the network must satisfy:
For example, with the default resolution \(h = 0.1\,\text{ms}\), the minimum delay must be less than 1 638.4 ms.
Maximum delay (``max_delay``)
The delay field is 21 bits wide. The maximum delay across all connections must satisfy:
For example, with \(h = 0.1\,\text{ms}\), the maximum delay must be less than 209 715.2 ms (≈ 209 s).
These constraints are enforced at simulation time. NEST raises an error if a connection delay violates either bound.
Note
These delay limits are rarely a practical constraint at typical resolutions, but become relevant when using very small \(h\) values or very long axonal delays.
Summary table¶
The table below collects all kernel limits for quick reference.
Quantity |
Limit ( |
Limit ( |
|---|---|---|
Synapse types |
511 |
63 |
Threads per MPI process |
511 |
1 023 |
MPI processes (ranks) |
262 143 |
1 048 575 |
Nodes (neurons + devices) |
\(2^{61} - 2\) (both presets) |
\(2^{61} - 2\) (both presets) |
Min delay |
\(< 16\,384 \cdot h\) (both presets) |
\(< 16\,384 \cdot h\) (both presets) |
Max delay |
\(< 2\,097\,152 \cdot h\) (both presets) |
\(< 2\,097\,152 \cdot h\) (both presets) |