000262432 001__ 262432
000262432 005__ 20190415234649.0
000262432 022__ $$a1662-5196
000262432 02470 $$a000449250100001$$2isi
000262432 0247_ $$a10.3389/fninf.2018.00068$$2doi
000262432 037__ $$aARTICLE
000262432 245__ $$aCode Generation in Computational Neuroscience: A Review of Tools and Techniques
000262432 269__ $$a2018-11-05
000262432 260__ $$c2018-11-05
000262432 336__ $$aReviews
000262432 520__ $$aAdvances 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.
000262432 650__ $$aMathematical & Computational Biology
000262432 650__ $$aNeurosciences
000262432 650__ $$aMathematical & Computational Biology
000262432 650__ $$aNeurosciences & Neurology
000262432 6531_ $$acode generation
000262432 6531_ $$asimulation
000262432 6531_ $$aneuronal networks
000262432 6531_ $$adomain specific language
000262432 6531_ $$amodeling language
000262432 6531_ $$aspiking neurons
000262432 6531_ $$aneural models
000262432 6531_ $$anetwork
000262432 6531_ $$asimulations
000262432 6531_ $$aspecification
000262432 6531_ $$aenvironment
000262432 6531_ $$ainterface
000262432 6531_ $$alanguage
000262432 6531_ $$asolvers
000262432 700__ $$aBlundell, Inga
000262432 700__ $$aBrette, Romain
000262432 700__ $$aCleland, Thomas A.
000262432 700__ $$aClose, Thomas G.
000262432 700__ $$aCoca, Daniel
000262432 700__ $$aDavison, Andrew P.
000262432 700__ $$aDiaz-Pier, Sandra
000262432 700__ $$aMusoles, Carlos Fernandez
000262432 700__ $$aGleeson, Padraig
000262432 700__ $$aGoodman, Dan F. M.
000262432 700__ $$aHines, Michael
000262432 700__ $$aHopkins, Michael W.
000262432 700__ $$aKumbhar, Pramod
000262432 700__ $$aLester, David R.
000262432 700__ $$aMarin, Boris
000262432 700__ $$aMorrison, Abigail
000262432 700__ $$aMueller, Eric
000262432 700__ $$aNowotny, Thomas
000262432 700__ $$aPeyser, Alexander
000262432 700__ $$aPlotnikov, Dimitri
000262432 700__ $$aRichmond, Paul
000262432 700__ $$aRowley, Andrew
000262432 700__ $$aRumpe, Bernhard
000262432 700__ $$aStimberg, Marcel
000262432 700__ $$aStokes, Alan B.
000262432 700__ $$aTomkins, Adam
000262432 700__ $$aTrensch, Guido
000262432 700__ $$aWoodman, Marmaduke
000262432 700__ $$aEppler, Jochen Martin
000262432 773__ $$q68$$j12$$tFrontiers in Neuroinformatics
000262432 8560_ $$fdace.stiebrina@epfl.ch
000262432 909C0 $$zBlumer, Eliane$$0252553$$yApproved$$pBBP-CORE$$xU11230$$mdace.stiebrina@epfl.ch
000262432 909CO $$particle$$ooai:infoscience.epfl.ch:262432$$preview
000262432 961__ $$afantin.reichler@epfl.ch
000262432 973__ $$aEPFL$$sPUBLISHED$$rREVIEWED
000262432 980__ $$aARTICLE
000262432 981__ $$aoverwrite