ARA on Steroids: Fly faster with Profiling and Caching.
- Typ der Arbeit: Bachelorarbeit
- Status der Arbeit: reserviert
- Projekte: AHA
- Betreuer: Gerion Entrup, Daniel Lohmann
'Prepare ship for light speed.', 'No, no, light speed is too slow!', 'Light speed to slow?', 'Yes, we have to gonna go right to ... ludricous speed!', 'LUDRICOUS SPEED?? Sir, we've never gone that far, before. I don't know, if this ship can take it.', 'What's the matter, Colonal Sandurz? Chicken...?', 'Prepare ship (ugh), prepare ship for ludicrous speed!' -- Spaceballs
ARA is a whole-system compiler to optimizes the system with global knowledge. It consists of two parts. In a first step it takes a (real-time) system's source code as input and statically analyzes it to retrieve global knowledge. Equipped with this knowledge, it then synthesize an optimized system image in a second step. Possible optimizations are speed or memory usage improvements. ARA focuses on usage and interactions between application and underlying operating system.
Currently, in terms of speed it comes to its limits, when the analyzed system gets bigger. Your goal with this thesis is to make ARA fast, really fast!
This includes a few subtasks:
- Construct maximal atomic basis blocks, a specific control flow structure that massively reduce further traversal costs.
- Profile ARA. What are the exact bottlenecks?
- Introduces caches, where they gain a real benefit.
- Measure your improvements.
Since ARA is written in C++ and Python, a good knowledge of these languages is beneficial.
Topics covered by this thesis:
profiling, static analysis, LLVM, C++, Python
ARA: Automatic Instance-Level Analysis in Real-Time Systems
Proceedings of the 15th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '19)2019.
Best Paper Award
Levels of Specialization in Real-Time Operating Systems
Proceedings of the 14th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '18)2018Best Paper Award.