Code Generation in Computational Neuroscience: A Review of Tools and Techniques

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 m...

Full description

Bibliographic Details
Main Authors: Inga Blundell, Romain Brette, Thomas A. Cleland, Thomas G. Close, Daniel Coca, Andrew P. Davison, Sandra Diaz-Pier, Carlos Fernandez Musoles, Padraig Gleeson, Dan F. M. Goodman, Michael Hines, Michael W. Hopkins, Pramod Kumbhar, David R. Lester, Bóris Marin, Abigail Morrison, Eric Müller, Thomas Nowotny, Alexander Peyser, Dimitri Plotnikov, Paul Richmond, Andrew Rowley, Bernhard Rumpe, Marcel Stimberg, Alan B. Stokes, Adam Tomkins, Guido Trensch, Marmaduke Woodman, Jochen Martin Eppler
Format: Article
Language:English
Published: Frontiers Media S.A. 2018-11-01
Series:Frontiers in Neuroinformatics
Subjects:
Online Access:https://www.frontiersin.org/article/10.3389/fninf.2018.00068/full
_version_ 1811215505052139520
author Inga Blundell
Romain Brette
Thomas A. Cleland
Thomas G. Close
Daniel Coca
Andrew P. Davison
Sandra Diaz-Pier
Carlos Fernandez Musoles
Padraig Gleeson
Dan F. M. Goodman
Michael Hines
Michael W. Hopkins
Pramod Kumbhar
David R. Lester
Bóris Marin
Bóris Marin
Abigail Morrison
Abigail Morrison
Abigail Morrison
Eric Müller
Thomas Nowotny
Alexander Peyser
Dimitri Plotnikov
Dimitri Plotnikov
Paul Richmond
Andrew Rowley
Bernhard Rumpe
Marcel Stimberg
Alan B. Stokes
Adam Tomkins
Guido Trensch
Marmaduke Woodman
Jochen Martin Eppler
author_facet Inga Blundell
Romain Brette
Thomas A. Cleland
Thomas G. Close
Daniel Coca
Andrew P. Davison
Sandra Diaz-Pier
Carlos Fernandez Musoles
Padraig Gleeson
Dan F. M. Goodman
Michael Hines
Michael W. Hopkins
Pramod Kumbhar
David R. Lester
Bóris Marin
Bóris Marin
Abigail Morrison
Abigail Morrison
Abigail Morrison
Eric Müller
Thomas Nowotny
Alexander Peyser
Dimitri Plotnikov
Dimitri Plotnikov
Paul Richmond
Andrew Rowley
Bernhard Rumpe
Marcel Stimberg
Alan B. Stokes
Adam Tomkins
Guido Trensch
Marmaduke Woodman
Jochen Martin Eppler
author_sort Inga Blundell
collection DOAJ
description 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.
first_indexed 2024-04-12T06:23:42Z
format Article
id doaj.art-6657c2605a21493cb6f000276f957472
institution Directory Open Access Journal
issn 1662-5196
language English
last_indexed 2024-04-12T06:23:42Z
publishDate 2018-11-01
publisher Frontiers Media S.A.
record_format Article
series Frontiers in Neuroinformatics
spelling doaj.art-6657c2605a21493cb6f000276f9574722022-12-22T03:44:13ZengFrontiers Media S.A.Frontiers in Neuroinformatics1662-51962018-11-011210.3389/fninf.2018.00068374555Code Generation in Computational Neuroscience: A Review of Tools and TechniquesInga Blundell0Romain Brette1Thomas A. Cleland2Thomas G. Close3Daniel Coca4Andrew P. Davison5Sandra Diaz-Pier6Carlos Fernandez Musoles7Padraig Gleeson8Dan F. M. Goodman9Michael Hines10Michael W. Hopkins11Pramod Kumbhar12David R. Lester13Bóris Marin14Bóris Marin15Abigail Morrison16Abigail Morrison17Abigail Morrison18Eric Müller19Thomas Nowotny20Alexander Peyser21Dimitri Plotnikov22Dimitri Plotnikov23Paul Richmond24Andrew Rowley25Bernhard Rumpe26Marcel Stimberg27Alan B. Stokes28Adam Tomkins29Guido Trensch30Marmaduke Woodman31Jochen Martin Eppler32Forschungszentrum Jülich, Institute of Neuroscience and Medicine (INM-6), Institute for Advanced Simulation (IAS-6), JARA BRAIN Institute I, Jülich, GermanySorbonne Université, INSERM, CNRS, Institut de la Vision, Paris, FranceDepartment of Psychology, Cornell University, Ithaca, NY, United StatesMonash Biomedical Imaging, Monash University, Melbourne, VIC, AustraliaDepartment of Automatic Control and Systems Engineering, University of Sheffield, Sheffield, United KingdomUnité de Neurosciences, Information et Complexité, CNRS FRE 3693, Gif sur Yvette, FranceForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, GermanyDepartment of Automatic Control and Systems Engineering, University of Sheffield, Sheffield, United KingdomDepartment of Neuroscience, Physiology and Pharmacology, University College London, London, United KingdomDepartment of Electrical and Electronic Engineering, Imperial College London, London, United Kingdom0Department of Neurobiology, School of Medicine, Yale University, New Haven, CT, United States1Advanced Processor Technologies Group, School of Computer ScienceUniversity of Manchester, Manchester, United Kingdom2Blue Brain Project, EPFLCampus Biotech, Geneva, Switzerland1Advanced Processor Technologies Group, School of Computer ScienceUniversity of Manchester, Manchester, United KingdomDepartment of Neuroscience, Physiology and Pharmacology, University College London, London, United Kingdom3Centro de Matemática, Computação e CogniçãoUniversidade Federal do ABC, São Bernardo do Campo, BrazilForschungszentrum Jülich, Institute of Neuroscience and Medicine (INM-6), Institute for Advanced Simulation (IAS-6), JARA BRAIN Institute I, Jülich, GermanyForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, Germany4Faculty of Psychology, Institute of Cognitive NeuroscienceRuhr-University Bochum, Bochum, Germany5Kirchhoff-Institute for PhysicsUniversität Heidelberg, Heidelberg, Germany6Centre for Computational Neuroscience and Robotics, School of Engineering and InformaticsUniversity of Sussex, Brighton, United KingdomForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, GermanyForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, Germany7RWTH Aachen University, Software EngineeringJülich Aachen Research Alliance, Aachen, Germany8Department of Computer ScienceUniversity of Sheffield, Sheffield, United Kingdom1Advanced Processor Technologies Group, School of Computer ScienceUniversity of Manchester, Manchester, United Kingdom7RWTH Aachen University, Software EngineeringJülich Aachen Research Alliance, Aachen, GermanySorbonne Université, INSERM, CNRS, Institut de la Vision, Paris, France1Advanced Processor Technologies Group, School of Computer ScienceUniversity of Manchester, Manchester, United KingdomDepartment of Automatic Control and Systems Engineering, University of Sheffield, Sheffield, United KingdomForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, Germany9Institut de Neurosciences des SystèmesAix Marseille Université, Marseille, FranceForschungszentrum Jülich, Simulation Lab Neuroscience, Jülich Supercomputing Centre, Institute for Advanced Simulation, Jülich Aachen Research Alliance, Jülich, GermanyAdvances 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.https://www.frontiersin.org/article/10.3389/fninf.2018.00068/fullcode generationsimulationneuronal networksdomain specific languagemodeling language
spellingShingle Inga Blundell
Romain Brette
Thomas A. Cleland
Thomas G. Close
Daniel Coca
Andrew P. Davison
Sandra Diaz-Pier
Carlos Fernandez Musoles
Padraig Gleeson
Dan F. M. Goodman
Michael Hines
Michael W. Hopkins
Pramod Kumbhar
David R. Lester
Bóris Marin
Bóris Marin
Abigail Morrison
Abigail Morrison
Abigail Morrison
Eric Müller
Thomas Nowotny
Alexander Peyser
Dimitri Plotnikov
Dimitri Plotnikov
Paul Richmond
Andrew Rowley
Bernhard Rumpe
Marcel Stimberg
Alan B. Stokes
Adam Tomkins
Guido Trensch
Marmaduke Woodman
Jochen Martin Eppler
Code Generation in Computational Neuroscience: A Review of Tools and Techniques
Frontiers in Neuroinformatics
code generation
simulation
neuronal networks
domain specific language
modeling language
title Code Generation in Computational Neuroscience: A Review of Tools and Techniques
title_full Code Generation in Computational Neuroscience: A Review of Tools and Techniques
title_fullStr Code Generation in Computational Neuroscience: A Review of Tools and Techniques
title_full_unstemmed Code Generation in Computational Neuroscience: A Review of Tools and Techniques
title_short Code Generation in Computational Neuroscience: A Review of Tools and Techniques
title_sort code generation in computational neuroscience a review of tools and techniques
topic code generation
simulation
neuronal networks
domain specific language
modeling language
url https://www.frontiersin.org/article/10.3389/fninf.2018.00068/full
work_keys_str_mv AT ingablundell codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT romainbrette codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT thomasacleland codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT thomasgclose codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT danielcoca codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT andrewpdavison codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT sandradiazpier codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT carlosfernandezmusoles codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT padraiggleeson codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT danfmgoodman codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT michaelhines codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT michaelwhopkins codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT pramodkumbhar codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT davidrlester codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT borismarin codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT borismarin codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT abigailmorrison codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT abigailmorrison codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT abigailmorrison codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT ericmuller codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT thomasnowotny codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT alexanderpeyser codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT dimitriplotnikov codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT dimitriplotnikov codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT paulrichmond codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT andrewrowley codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT bernhardrumpe codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT marcelstimberg codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT alanbstokes codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT adamtomkins codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT guidotrensch codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT marmadukewoodman codegenerationincomputationalneuroscienceareviewoftoolsandtechniques
AT jochenmartineppler codegenerationincomputationalneuroscienceareviewoftoolsandtechniques