Abstract

Advances in experimental techniques and computational power allowing researchers to gather anatomical and electrophysiological data at unprecedented levels of detail have fostered the development of increasingly complex models in computational neuroscience. Large-scale, biophysically detailed cell models pose a particular set of computational challenges, and this has led to the development of a number of domain-specific simulators. At the other level of detail, the ever growing variety of point neuron models increases the implementation barrier even for those based on the relatively simple integrate-and-fire neuron model. Independently of the model complexity, all modeling methods crucially depend on an efficient and accurate transformation of mathematical model descriptions into efficiently executable code. Neuroscientists usually publish model descriptions in terms of the mathematical equations underlying them. However, actually simulating them requires they be translated into code. This can cause problems because errors may be introduced if this process is carried out by hand, and code written by neuroscientists may not be very computationally efficient. Furthermore, the translated code might be generated for different hardware platforms, operating system variants or even written in different languages and thus cannot easily be combined or even compared. Two main approaches to addressing this issues have been followed. The first is to limit users to a fixed set of optimized models, which limits flexibility. The second is to allow model definitions in a high level interpreted language, although this may limit performance. Recently, a third approach has become increasingly popular: using code generation to automatically translate high level descriptions into efficient low level code to combine the best of previous approaches. This approach also greatly enriches efforts to standardize simulator-independent model description languages. In the past few years, a number of code generation pipelines have been developed in the computational neuroscience community, which differ considerably in aim, scope and functionality. This article provides an overview of existing pipelines currently used within the community and contrasts their capabilities and the technologies and concepts behind them.

Highlights

  • All brains are composed of a huge variety of neuron and synapse types

  • Given the multitude of programming paradigms and architectural designs used on modern central processing unit (CPU), general purpose GPU (GPGPU), and FPGA-based systems and their complexity, it is impossible for a novice programmer in the field of neuroscience to write efficient code manually

  • Even though all code generation pipelines presented in this article try to reduce the users’ load, they differ considerably when it comes to which aspects they simplify for the user

Read more

Summary

INTRODUCTION

All brains are composed of a huge variety of neuron and synapse types. In computational neuroscience we use models for mimicking the behavior of these elements and to gain an understanding of the brain’s behavior by conducting simulation experiments in neural simulators. A simple but instructive example is the integrate-and-fire neuron model, which describes the dynamics of the membrane potential V in the following way: when V is below the spiking threshold θ , which is typically at around −50 mV, the time evolution is governed by a differential equation of the type:. Model driven development (MDD; France and Rumpe, 2007) aims at closing this gap by using abstract models for the description of domain problems and code generation for creating executable software systems (Kleppe et al, 2003). There is no lack of neural simulation environments that are able to simulate models efficiently and accurately, each specializing on networks of different size and complexity Some of these simulators (e.g., NEST, Gewaltig and Diesmann 2007) have included optimized neural and synaptic models written in low-level code without support for more abstract, mathematical descriptions.

TOOLS AND CODE GENERATION
Code Generation Pipeline
Numerical Integration
Myriad
NESTML
Model Notation
38 Dimension
Code Generation Pipelines
60 ENDVERBATIM
SpineML
SpiNNaker
Main Modeling Focus
2.10. TVB-HPC
2.10.3. Code Generation Pipeline
26 TEMPORARIES
34 INSTRUCTIONS
HARDWARE AND SOFTWARE PLATFORMS
Classical Processors and Accelerators
Neuromorphic Hardware
Collaboration Platforms
Summary
CONCLUSION
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.