Compiling Simulation Code
|Title||Compiling Simulation Code|
|Summary||Compile Acumen models to a high performance language.|
|Supervisor||Adam Duracz, Walid Taha|
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.
- How should the compiler be structured to make compilation to multiple target languages simple?
- How should the compiler be structured to make it easy to modify the compiler to accommodate changes in the source language?
- Which parts of the simulator should be emitted by the compiler and which parts implemented as a library in the target language?
- A communication protocol for transferring simulation results back to Acumen from the compiled model.
- An implementation of a compiler from the Acumen language to a lower-level language.
- An implementation of a compiler to an additional lower-level language (if there is time).
- Firm grasp of at least one programming language. Additionally, basic knowledge of Scala is a plus.
- Familiarity with performance optimization will definitely be valuable, but is not required.