https://github.com/iraikov/network_benchmark
An implementation of of a spiking neural network based on the exact integration method of Brette et al.
https://github.com/iraikov/network_benchmark
Last synced: 7 months ago
JSON representation
An implementation of of a spiking neural network based on the exact integration method of Brette et al.
- Host: GitHub
- URL: https://github.com/iraikov/network_benchmark
- Owner: iraikov
- License: gpl-3.0
- Created: 2019-10-01T17:49:45.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-10-01T17:52:43.000Z (about 6 years ago)
- Last Synced: 2025-01-30T16:28:41.387Z (8 months ago)
- Language: C++
- Size: 259 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# network_benchmark
An implementation of of a spiking neural network based on the algorithms described in the following paper:
Exact simulation of integrate-and-fire models with synaptic conductances. Brette, R. (2006).
Neural Computation 18(8): 2004-2027.
In this implementation, tau_e = tau_i = 5 ms. This is an intrinsic
limitation of the method described in the paper mentioned above.This repository contains the following files:
- conf.h: parameters of the simulation.
- ./include/data/spike.hh: defines a class for spike events.
- ./include/data/Ncq.hh: defines a priority queue class for spikes
- ./include/data/spike.hh: defines a class for spike events.
- ./include/data/util.hh: definitions of numerical solver routines
- ./include/neuron/neuron.hh: definitions of spike sources in the network (neurons and Poisson spike sources)
- ./include/neuron/network.hh: definition of the network class
- ./src/data/Ncq.cpp: implementation of spike priority queue
- ./src/data/util.cpp: implementations of solver routines
- ./src/neuron/neuron.cpp: implementations of spike sources classes
- ./src/neuron/network.cpp: implementations of network class
- ./src/driver/network_driver.cpp: runs the simulation and writes the output spike times to a file[Code API documentation](api.md)
## Configuration
The network model is configured via parameters specified in file ./include/conf.hh:
- EXT_INPUTS: number of external inputs
- EXT_RATE: average firing rate of external inputs
- NEURONS: number of neurons
- AVERAGE_SYNAPSES: average number of synapses per neuron
- AVERAGE_EXT_SYNAPSES: average number of synapses per external source
- INHIBITORY_PROPORTION: proportion of inhibitory neurons- REFRACT_ : length of the refractory period [ms]
- DELAY_ 1.0 : length of the delay
- Taum: membrane time constant [ms]
- Dge_: excitatory synaptic weight
- Dgi_: inhibitory synaptic weight## Building
Please select your target platform by running one of the following commands:
make PLATFORM=gnu.linux
## Running
To run the network simulator, run the following command:
./build/network_driver [OPTIONS]
Options:
-h Print help
-t TSTOP Simulation until TSTOP ms
-o PATH Write spike times to PATH
-s SEED Random number generator seed