Compiling Simulation Code

Jump to: navigation, search
Title Compiling Simulation Code
Summary Compile Acumen models to a high performance language.
Supervisor Adam Duracz, Walid Taha
Level Master
Status Open

Generate PDF template


Computer simulation is used as a way of accelerating the design of systems, by reducing the need to build physical prototypes. Realistic simulation models have a higher chance of yielding accurate simulation results, by allowing the designer to include more aspects of the real system in the model. However, when the number of variables in the model grows, the time it takes to complete a simulation can become a problem.

This project is about improving the performance of simulations of models written in the Acumen language, by compiling the models to a lower-level language such as Scala, Java, C/C++ or X10.

Research Questions

  1. How should the compiler be structured to make compilation to multiple target languages simple?
  2. How should the compiler be structured to make it easy to modify the compiler to accommodate changes in the source language?
  3. Which parts of the simulator should be emitted by the compiler and which parts implemented as a library in the target language?

Expected Outcomes

  1. A communication protocol for transferring simulation results back to Acumen from the compiled model.
  2. An implementation of a compiler from the Acumen language to a lower-level language.
  3. An implementation of a compiler to an additional lower-level language (if there is time).


  1. Firm grasp of at least one programming language. Additionally, basic knowledge of Scala is a plus.
  2. Familiarity with performance optimization will definitely be valuable, but is not required.


  1. Taha, Walid, et al. "A Core Language for Executable Models of Cyber Physical Systems” pdf.
  2. Zhu, Yun, et al. "Mathematical equations as executable models of mechanical systems" Proceedings of the 1st ACM/IEEE International Conference on Cyber-Physical Systems. ACM, 2010 pdf.