Cargando…

An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language

Domain-specific languages (DSLs) play an increasingly important role in the generation of high performing software. They allow the user to exploit domain knowledge for the generation of more efficient code on target architectures. Here, we describe a new code generation framework (NMODL) for an exis...

Descripción completa

Detalles Bibliográficos
Autores principales: Kumbhar, Pramod, Awile, Omar, Keegan, Liam, Alonso, Jorge Blanco, King, James, Hines, Michael, Schürmann, Felix
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7302241/
http://dx.doi.org/10.1007/978-3-030-50371-0_4
_version_ 1783547808003915776
author Kumbhar, Pramod
Awile, Omar
Keegan, Liam
Alonso, Jorge Blanco
King, James
Hines, Michael
Schürmann, Felix
author_facet Kumbhar, Pramod
Awile, Omar
Keegan, Liam
Alonso, Jorge Blanco
King, James
Hines, Michael
Schürmann, Felix
author_sort Kumbhar, Pramod
collection PubMed
description Domain-specific languages (DSLs) play an increasingly important role in the generation of high performing software. They allow the user to exploit domain knowledge for the generation of more efficient code on target architectures. Here, we describe a new code generation framework (NMODL) for an existing DSL in the NEURON framework, a widely used software for massively parallel simulation of biophysically detailed brain tissue models. Existing NMODL DSL transpilers lack either essential features to generate optimized code or capability to parse the diversity of existing models in the user community. Our NMODL framework has been tested against a large number of previously published user models and offers high-level domain-specific optimizations and symbolic algebraic simplifications before target code generation. NMODL implements multiple SIMD and SPMD targets optimized for modern hardware. When comparing NMODL-generated kernels with NEURON we observe a speedup of up to 20[Formula: see text], resulting in overall speedups of two different production simulations by [Formula: see text]. When compared to SIMD optimized kernels that heavily relied on auto-vectorization by the compiler still a speedup of up to [Formula: see text] is observed.
format Online
Article
Text
id pubmed-7302241
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-73022412020-06-18 An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language Kumbhar, Pramod Awile, Omar Keegan, Liam Alonso, Jorge Blanco King, James Hines, Michael Schürmann, Felix Computational Science – ICCS 2020 Article Domain-specific languages (DSLs) play an increasingly important role in the generation of high performing software. They allow the user to exploit domain knowledge for the generation of more efficient code on target architectures. Here, we describe a new code generation framework (NMODL) for an existing DSL in the NEURON framework, a widely used software for massively parallel simulation of biophysically detailed brain tissue models. Existing NMODL DSL transpilers lack either essential features to generate optimized code or capability to parse the diversity of existing models in the user community. Our NMODL framework has been tested against a large number of previously published user models and offers high-level domain-specific optimizations and symbolic algebraic simplifications before target code generation. NMODL implements multiple SIMD and SPMD targets optimized for modern hardware. When comparing NMODL-generated kernels with NEURON we observe a speedup of up to 20[Formula: see text], resulting in overall speedups of two different production simulations by [Formula: see text]. When compared to SIMD optimized kernels that heavily relied on auto-vectorization by the compiler still a speedup of up to [Formula: see text] is observed. 2020-05-26 /pmc/articles/PMC7302241/ http://dx.doi.org/10.1007/978-3-030-50371-0_4 Text en © Springer Nature Switzerland AG 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic.
spellingShingle Article
Kumbhar, Pramod
Awile, Omar
Keegan, Liam
Alonso, Jorge Blanco
King, James
Hines, Michael
Schürmann, Felix
An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title_full An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title_fullStr An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title_full_unstemmed An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title_short An Optimizing Multi-platform Source-to-source Compiler Framework for the NEURON MODeling Language
title_sort optimizing multi-platform source-to-source compiler framework for the neuron modeling language
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7302241/
http://dx.doi.org/10.1007/978-3-030-50371-0_4
work_keys_str_mv AT kumbharpramod anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT awileomar anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT keeganliam anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT alonsojorgeblanco anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT kingjames anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT hinesmichael anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT schurmannfelix anoptimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT kumbharpramod optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT awileomar optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT keeganliam optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT alonsojorgeblanco optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT kingjames optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT hinesmichael optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage
AT schurmannfelix optimizingmultiplatformsourcetosourcecompilerframeworkfortheneuronmodelinglanguage