Project Details
Multi-Opt - Multi-criterial Code Optimization for Embedded Hard Real-Time Systems
Applicant
Professor Dr. Heiko Falk
Subject Area
Computer Architecture, Embedded and Massively Parallel Systems
Term
from 2017 to 2022
Project identifier
Deutsche Forschungsgemeinschaft (DFG) - Project number 380772147
Key requirement of hard real-time systems is to meet timing constraints. However, embedded systems often have additional design constraints that are also not negligible due to technical limitations or financial budget. For example, program and data memories of real architectures are often very tight. Moreover, energy consumption is another important criterion for battery-powered, mobile embedded systems. Therefore, three critical design parameters, namely Worst-Case Execution Time (WCET), code size and energy consumption, have to be considered designing hard real-time systems.A properly designed system must comply with all resource constraints. If one or several design constraints are violated, the hardware platform can be modified in order to meet all resource constraints. Adapting hardware to achieve the necessary functionality of the system together with meeting all resource requirements usually leads to greatly increased costs. Furthermore, side effects of such hardware modifications are difficult to predict. Therefore, a more preferable approach is to optimize an embedded system’s software by a compiler trying to meet all design requirements.During the first funding period, the project focused on exploring compiler-based methods for optimizing WCET, code size and energy consumption. Considering them as optimization goals at compile-time leads to a multi-criterial optimization, since they cannot be perfectly optimized simultaneously. These criteria usually contradict each other, i.e., improving one of them can have a negative effect on others. It has been shown during the first funding period that population-based optimization heuristics are able to provide good results that successfully trade the different contradicting objectives. However, such multi-criterial optimizations are very time and memory consuming due to costly executions of required timing analyses in order to evaluate these objective functions. Instead of performing costly analyses each and every time that an optimization needs objectives' values, predicting the values of objective functions could help to improve the compiler's run-times.For these reasons, the present follow-up proposal aims to develop novel approaches based on a prediction of the objectives' values in order to support population-based optimizations at compile-time. The project will focus on the design of a framework allowing to predict objectives in order to decrease the run-times of multi-criterial optimizations relying on costly analyses. The aim is to design a framework based on mathematical prediction models that allows to optimize embedded software for multiple criteria simultaneously in both an effective and efficient manner.
DFG Programme
Research Grants