Difference between revisions of "Compiling Simulation Code"
From CERES
(Created page with "{{StudentProjectTemplate |Title=Compiling Simulation Code |Summary=Compile programs written in the simulation language Acumen to a lower-level language for high performance. |...") |
|||
| (2 intermediate revisions by one user not shown) | |||
| Line 1: | Line 1: | ||
{{StudentProjectTemplate | {{StudentProjectTemplate | ||
|Title=Compiling Simulation Code | |Title=Compiling Simulation Code | ||
| − | |Summary=Compile | + | |Summary=Compile Acumen models to a high performance language. |
| − | |Author=Adam Duracz | + | |Author= |
| − | | | + | |Supervisor=Adam Duracz, Walid Taha, |
| + | |Level=Master | ||
| + | |Status=Open | ||
}} | }} | ||
| + | = Description = | ||
| + | |||
| + | 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 [http://acumen-language.org/ Acumen] language, by compiling the models to a lower-level language such as Scala, Java, C/C++ or X10. | ||
| + | |||
| + | == Research Questions == | ||
| + | |||
| + | # 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? | ||
| + | |||
| + | == Expected Outcomes == | ||
| + | |||
| + | # 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). | ||
| + | |||
| + | = Prerequisites = | ||
| + | |||
| + | # 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. | ||
| + | |||
| + | = References = | ||
| + | |||
| + | # Taha, Walid, et al. "A Core Language for Executable Models of Cyber Physical Systems” [http://sigbed.seas.upenn.edu/archives/2011-06/Taha.pdf pdf]. | ||
| + | # 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 [http://ames.tamu.edu/Walid_paper.pdf pdf]. | ||
Latest revision as of 18:11, 18 October 2016
| Title | Compiling Simulation Code |
|---|---|
| Summary | Compile Acumen models to a high performance language. |
| Keywords | |
| TimeFrame | |
| References | |
| Prerequisites | |
| Author | |
| Supervisor | Adam Duracz, Walid Taha |
| Level | Master |
| Status | Open |
Description
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
- 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?
Expected Outcomes
- 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).
Prerequisites
- 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.