SpikeFun - Biological Neural Network Simulator
http://www.dimkovic.com/node/1
http://www.dimkovic.com/distrib/SpikeFun_Latest.zip
http://www.dimkovic.com/node/1
http://www.dimkovic.com/distrib/SpikeFun_Latest.zip
SpikeFun is a small simulator of the biological neuron networks, which I am writing as a hobby and which is implementing Eugene Izhikevich’s phenomenological model of spiking neurons, AMPA, NMDA and GABA synaptic receptor kinetics as well as long-term and short-term synaptic plasticity. SpikFun is using information obtained from Diffusion Spectrum Imaging (DSI) for guiding of pyramidal neuron axons through the white matter. Neurons have multiple compartments and axonal bifurcations (where applicaple).
SpikeFun is currently in a very early phase of development so expect lots of updates in the near future.
Please note that SpikeFun is very resource intensive - especially in terms of memory bandwidth (for example: even mild bumps in DDR3 speed would significantly speed-up the simulation). Current speed limits are mostly due to the memory I/O (e.g. ~0.25x real-time for a simulation of 32768 multi-compartment neurons and 1.8 million synapses on the modern Intel Xeon E5 2690 with DDR3 RAM operating @2133 MHz) . I plan to implement support for heterogeneous architectures (CPU + GPU) as well as support for Intel's FMA instructions (for 2013 CPUs) in the near future.
In order to perform system performance testing, SpikeBenchmark is
using DigiCortex engine which is simulating mammalian cortex (to be
more precise: thalamocortical system). Neuron modeling is
phenomenological and biophysically accurate to the level of spike
responses.
As large-scale biological simulation such as this is extremely CPU and
even more so memory intensive, SpikeBenchmark can be used as a good
tool for system performance measurement, especially regarding memory
bandwidth and, to some extent, CPU floating point calculation
performance.
There are 4 default benchmarks offered by SpikeBenchmark:
- [1] Small-scale simulation (32768 neurons, ~1.8 million
synapses): recommended for benchmarking desktop PCs
[2] Small-scale simulation benchmark (same as 1) with maximum
memory bandwidth tested (basically running the simulation in
‘silent’ state with no active neurons): recommended for
benchmarking of the memory subsystem of the desktop PC
[3] Large-scale simulation benchmark (262144 neurons, ~37 million
synapses): recommended for benchmarking servers/workstations.
Please note: this preset requires at least 6 GB of RAM
[4] Large-scale simulation benchmark (same as 3) with maximum
memory bandwidth tested (basically running the simulation in
‘silent’ state with no active neurons): recommended for
benchmarking of the memory subsystem of the server/workstation
system. Please note: this preset requires at least 6 GB of RAM
SpikeBenchmark is also able to measure and log consumed memory
bandwidth on Intel(r) Sandy Bridge EP (‘Jaketown’CPUs. During the
benchmark, CPU power draw as well as IPC rate will be logged on
supported Intel(r) CPUs, using hardware performance monitoring unit
(PMU).
Some notes:
For CPUs without AVX support, 32-bit builds are typically ~5-10% faster than 64-bit builds
For CPUs with AVX support, 64-bit builds are typically ~10% faster than 32-bit builds
64-bit builds require 64-bit Windows™ OS to run and allow simulations that require more than 4 GB of RAM
AVX support requires AVX-aware OS (Windows 7 SP1, Windows Server 2008 R2 SP1 or with hotfix 2517374)
SpikeFun can also run on Linux using Wine adaptation layer (OpenGL compatibility might vary). AVX support requires Linux Kernels 2.6.30 or later
SpikeFun requires CPUs with at least SSE3 instruction set (such as Intel Pentium™ 4 or compatible CPUs)
OpenGL visualizations require GPU supporting OpenGL 2.0 (including shaders)