Multi-Criterial Code Optimization for Embedded Hard Real-Time Systems (Multi-Opt)
|Name||Multi-Criterial Code Optimization for Embedded Hard Real-Time Systems|
(in German: Multikriterielle Code-Optimierung für Eingebettete Harte Echtzeitsysteme)
|Role of TUHH||Applicant|
|Funds Donor||Deutsche Forschungsgemeinschaft (DFG)|
Embedded hard real-time systems often have to meet additional design constraints beyond their worst-case timing constraints. Systems operated on battery power have a limited amount energy available and should thus be as energy-efficient as possible. In addition, instruction, data and main memories of typical embedded processor architectures are also frequently severely limited due to technical limitations or given financial budgets. While designing embedded systems, these additional criteria also have to be considered, besides the system's real-time constraints.
In order to achieve a correctly designed system, it has to meet all of the imposed resource constraints. If a system violates one or several design constraints, either the hardware platform must be modified or the resource demand of the software must be lowered. Modifying the hardware usually comes with an increase in costs and hardly predictable side effects. For example, exchanging the system's micro-controller in order to reduce power consumption will lead to changes in temporal behavior. Reducing the resource demand of the software by simply removing parts of the code is also not easily possible without compromising the correct functional behavior of the system.
As a result, this project aims at optimizing embedded software systems at the compiler level with respect to multiple different design requirements. While translating source code to executable code, the compiler will aim to generate optimized code that finally fulfills all constraints with respect to multiple design criteria. However, current compilers are not able to achieve this, because multi-criterial system design is a highly volatile process. The optimization goals interfere with or may even directly contradict each other. Therefore, as part of this proposal, new optimization methods will be researched, implemented end evaluated for existing embedded hardware architectures. We focus on three of the most important criteria that embedded system designers are facing: Worst-Case Execution Time (WCET), code size and energy consumption.
Multi-Opt Publications of the Embedded Systems Design Group
|Title: Predicting Worst-Case Execution Times During Multi-Criterial Function Inlining. <em>In Proceedings of the 7th International Conference on Machine Learning, Optimization, and Data Science (LOD)</em>|
|Written by: Kateryna Muts and Heiko Falk|
|in: October (2021).|
|how published: 21-75 MF21a LOD|
Note: kmuts, hfalk, multiopt, ESD, WCC
Abstract: In the domain of hard real-time systems, the Worst-Case Execution Time (WCET) is one of the most important design criteria. Safely and accurately estimating the WCET during a static WCET analysis is computationally demanding because of the involved data flow, control flow, and microarchitecture analyses. This becomes critical in the field of multi-criterial compiler optimizations that trade the WCET with other design objectives. Evolutionary algorithms are typically exploited to solve a multi-objective optimization problem, but they require an extensive evaluation of the objectives to explore the search space of the problem. This paper proposes a method that utilizes machine learning to build a surrogate model in order to quickly predict the WCET instead of costly estimating it using static WCET analysis. We build a prediction model that is independent of the source code and assembly code features, so a compiler can utilize it to perform any compiler-based optimization. We demonstrate the effectiveness of our model on multi-criterial function inlining, where we aim to explore trade-offs between the WCET, code size, and energy consumption at compile time.