| Literature DB >> 28775687 |
Ruben A Tikidji-Hamburyan1, Vikram Narayana1, Zeki Bozkus2, Tarek A El-Ghazawi1.
Abstract
Numerical simulations of brain networks are a critical part of our efforts in understanding brain functions under pathological and normal conditions. For several decades, the community has developed many software packages and simulators to accelerate research in computational neuroscience. In this article, we select the three most popular simulators, as determined by the number of models in the ModelDB database, such as NEURON, GENESIS, and BRIAN, and perform an independent evaluation of these simulators. In addition, we study NEST, one of the lead simulators of the Human Brain Project. First, we study them based on one of the most important characteristics, the range of supported models. Our investigation reveals that brain network simulators may be biased toward supporting a specific set of models. However, all simulators tend to expand the supported range of models by providing a universal environment for the computational study of individual neurons and brain networks. Next, our investigations on the characteristics of computational architecture and efficiency indicate that all simulators compile the most computationally intensive procedures into binary code, with the aim of maximizing their computational performance. However, not all simulators provide the simplest method for module development and/or guarantee efficient binary code. Third, a study of their amenability for high-performance computing reveals that NEST can almost transparently map an existing model on a cluster or multicore computer, while NEURON requires code modification if the model developed for a single computer has to be mapped on a computational cluster. Interestingly, parallelization is the weakest characteristic of BRIAN, which provides no support for cluster computations and limited support for multicore computers. Fourth, we identify the level of user support and frequency of usage for all simulators. Finally, we carry out an evaluation using two case studies: a large network with simplified neural and synaptic models and a small network with detailed models. These two case studies allow us to avoid any bias toward a particular software package. The results indicate that BRIAN provides the most concise language for both cases considered. Furthermore, as expected, NEST mostly favors large network models, while NEURON is better suited for detailed models. Overall, the case studies reinforce our general observation that simulators have a bias in the computational performance toward specific types of the brain network models.Entities:
Keywords: brain network simulators; comparative study; computational neuroscience; conductance-based model; phenomenological model; spiking neural networks
Year: 2017 PMID: 28775687 PMCID: PMC5517781 DOI: 10.3389/fninf.2017.00046
Source DB: PubMed Journal: Front Neuroinform ISSN: 1662-5196 Impact factor: 4.081
Figure 1Frequency of software usage. (A) Total number of public records for three top most popular simulators and NEST in the ModelBD. Full list of considered software in Others and number of records in the ModelBD are given in the Table S1 in Supplementary Material. (B) Number of citations for each selected software. For NEURON and NEST, the numbers of citations are taken from official website. For GENESIS and BRIAN, this number was obtained as a number of articles which cite a key publication(s) of each simulator (see main text, Materials and Methods section, for more details). (C) Number of records in the ModelDB for each selected software published in the last 3 years.
Neural models range.
| NEURON | NEST | BRIAN | GENESIS | |
|---|---|---|---|---|
| Neuron model without dynamics | M | M | Y | M |
| Neuron model with simplified and discontinuous dynamics | M | M | Y | M |
| Neuron model with simplified and continues dynamics | M | M | Y | M |
| Single compartment, conductance-based model—temporal integration (point neuron) | YG | M | Y | Y |
| Can conductance-based descriptions of ion channels be added to the neuron model? | YG/M | m | Y | M |
| Neuron model with simplify morphology (2-compartment model) | YG | M | Y | M |
| Full spatial reconstruction of individual neuron morphology cable property spatial-temporal integration (multicompartment model) | YG | M:E | Y | Y |
| Extracellular/intracellular chemical kinetics | M | m | Y | Y |
| Can new ion be added to existing model | YG/M | m | Y | M |
| Radial diffusion | M | M:E | Y | Y |
| Longitudinal diffusion | M | M:E | N | N |
| Currents in external medium | M | N | Y:E | M:E |
| New model of chemical synapse | M | m | Y | M |
| New model of electrical synapse | M | m | Y | M |
| New model of learning rule | m | M | Y | M |
YG can be done in GUI without programming; Y can be done in script without writing modules; N cannot be done; M can be implemented through external modules; Y:E or M:E can be implemented in script or through external modules but requires extensive additional knowledge outside of the presumed user ability, such as numerical methods, physics, and partial differential equations (in some sense Y:E ≈ M:E ≈ N); and m cannot be implemented as an independent module but may be done through code modification.
Computational architecture.
| NEURON | NEST | BRIAN | GENESIS | |
|---|---|---|---|---|
| Language for network description | SLI: NL(HOC) or Py | SLI: NL(SLI) or Py | SLI: Python | SLI: NL(G) or Py |
| Language for neuron description | SLI: NL(HOC) or Py | Compiler: C++ | SLI in Py | SLI: NL |
| Compiler: NL(NMODL) | ||||
| Languages for modules | Compiler: NL(NMODL) | Compiler: C++ | Compiler NL In-line compilation | Compiler: C |
SLI, script language interpreter; NL, native, software specific language; Py, Python. Note that NEST native script language is also called SLI. To avoid confusion, we mark the names of native languages as NL (Language name).
Computational efficiency and parallelization.
| NEURON | NEST | BRIAN | GENESIS | |
|---|---|---|---|---|
| Are code compiled into high optimized dynamical library, to achieve maximum of computational performance on given hardware? | Y | Y | Y | Y |
| Does simulator/module language provide routines for tabulating right-side of differential equations and speed up computations? | Y | N | N | Y |
| Does the architecture allow to separate models for synapses, neuron, and learning rules to optimize amount of computations? | Y | N | Y | Y |
| Can user add high-level scripts into the main simulation cycle (for debugging purpose as an example)? | Y | N | Y | Y |
| “Embarrassingly” parallel computations, example: Parameters fitting | Y | N | N | Y |
| Truly distributed computations through MPI for neuron-to-neuron communication | Y | Y | N | Y |
| Truly distributed computations through MPI for gap junctions | Y | Y | N | N |
| Distributed computations for complex multicompartment neuron on several clusters nodes through MPI | Y | N | N | ? |
| Use the advantage of biological delays to hide slow node-to-node MPI communications in event-based simulations | Y | Y | N | ? |
| Multithread parallel computation for parallelization on single node/computer | Y | Y | Y | ? |
| p-threads | OpenMP | OpenMP or GPU (limited) | ||
Usability and support.
| NEURON | NEST | BRIAN | GENESIS | |
|---|---|---|---|---|
| GUI support (What can be done in GUI?) | C M T R P | P | N | R P |
| Inter-users/users-developers communication | Online Forum | Mail-list | Mail-list Google-group | Mail-list |
| Online documentation | More than 200 pages, including known bugs | Sparse | Detailed | Detailed |
| Online tutorial | Y | Y | Y | Y |
| Book | Y | N | N | Y |
| Years of development | >20 | 10 | 9 | >20 |
C, create a single neuron template, M, create a module and fit parameters to an experimental data, T, create a network, R, run a simulation, P, plot graphs. Y, Yes, N, No.
Figure 2Case Study 1. (A) Raster diagrams of Standard Pyramidal—InterNeuron Gamma oscillations (PING) in network of 4,000 excitatory (black dots) and 1,000 inhibitory (red dots) leaky integrate-and-fire neurons and 500 Poisson spike generators (blue dots). Each dot is a spike of particular neuron within a population. First, 200 ms of 1 s run is shown. Diagrams were obtained from simulation on BRIAN (A1), NEURON (A2), and NEST (A3) software. (B) Evaluation of performance for studied software. B1 is a time required to build model, and B2 is a time required to simulate 1 s of model time. (C) Analysis of code complexity: number of lines (C1) and number of characters (C2) in modules and Python code for each software.
Figure 3Case Study 2. (A) Raster diagrams of Standard PostInhibitory Rebound—InterNeuron Gamma oscillations (PIR-ING) in network of 400 Hodgkin–Huxley (black dots). Each dot is a spike of particular neuron within a population. Diagram was obtained from simulation on BRIAN (A1), NEURON (A2), and NEST (A3) software. Same analysis of performance (B) and code complexity (C) as in Figure 2.