RUNTIME CODE GENERATION FOR INTERPRETED DOMAIN-SPECIFIC MODELING LANGUAGES

Domain-specific modeling languages (DSMLs) facilitate concise and succinct model descriptions. DSMLs are commonly realized by defining a custom grammar and executing models in an interpreter. This provides flexibility in language design as well as in the implementation of simulation algorithms. However, this type of implementation can lead to a negative impact on simulation performance in comparison to implementing models in general-purpose programming languages (GPL). To mitigate this problem, we propose using runtime code generation. This allows us to replace specific parts of a model at runtime by compiling generated GPL source code. In this paper, we demonstrate the potential benefit of this concept based on ML-Rules, a DSML for modeling and simulating biochemical reaction networks. Using code generation for arithmetic expressions in ML-Rules’ reaction rate functions, we were able to decrease the runtime by up to 40% in complex application scenarios.

[1]  Scott Oaks,et al.  Java Performance: The Definitive Guide , 2014 .

[2]  Danny Weyns,et al.  A Model Interpreter for Timed Automata , 2016, ISoLA.

[3]  Adelinde M. Uhrmacher,et al.  Plug'n Simulate , 2007, 40th Annual Simulation Symposium (ANSS'07).

[4]  Adelinde M. Uhrmacher,et al.  Semantics and Efficient Simulation Algorithms of an Expressive Multilevel Modeling Language , 2017, ACM Trans. Model. Comput. Simul..

[5]  Peter J. Clarke,et al.  An adaptive middleware design to support the dynamic interpretation of domain-specific models , 2015, Inf. Softw. Technol..

[6]  Adelinde M. Uhrmacher,et al.  ML-Space: Hybrid Spatial Gillespie and Particle Simulation of Multi-Level Rule-Based Models in Cell Biology , 2017, IEEE/ACM Transactions on Computational Biology and Bioinformatics.

[7]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[8]  D. Gillespie Exact Stochastic Simulation of Coupled Chemical Reactions , 1977 .

[9]  John A. Miller,et al.  Using Domain Specific Language for modeling and simulation: ScalaTion as a case study , 2010, Proceedings of the 2010 Winter Simulation Conference.

[10]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[11]  Antonín Steinhauser,et al.  DOs and DON'Ts of Conducting Performance Measurements in Java , 2015, ICPE.

[12]  Monika Heiner,et al.  Dictyostelium discoideum: Aggregation and Synchronisation of Amoebas in Time and Space , 2015 .

[13]  Heiko Behrens,et al.  Xtext: implement your language faster than the quick and dirty way , 2010, SPLASH/OOPSLA Companion.

[14]  Cosimo Laneve,et al.  Formal molecular biology , 2004, Theor. Comput. Sci..

[15]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[16]  Adelinde M. Uhrmacher,et al.  Hybrid Simulation of Dynamic Reaction Networks in Multi-Level Models , 2018, SIGSIM-PADS.

[17]  Adelinde M. Uhrmacher,et al.  Rule-based multi-level modeling of cell biological systems , 2011, BMC Systems Biology.

[18]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[19]  William S. Hlavacek,et al.  BioNetGen: software for rule-based modeling of signal transduction based on the interactions of molecular domains , 2004, Bioinform..

[20]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.