7.1 Introduction
7.2 Autonomic Computing and Application Autotuning
-
The flexibility to express the application requirements as a constrained multi-objective optimization problem, addressing an arbitrary number of EFPs and software-knobs. Moreover, the application might change the requirements at runtime.
-
The capability to adapt the application reactively and proactively, where the user might observe the application behaviour continuously, periodically or sporadically. Moreover, the reaction policies are not only related to the throughput, but they are agnostic about the observed EFP.
-
To minimize the integration effort, we employ the concept of separation of concerns. In particular, application developers define extra-functional aspects in a configuration file and the methodology is capable to generate an easy-to-use interface to wrap the target region of code.
7.3 The mARGOt Autotuning Framework
7.3.1 Problem Definition
7.3.2 Application-Knowledge
7.3.3 Interaction with the Application
7.3.4 Runtime Application-Knowledge Learner
7.4 Experimental Results
7.4.1 Evaluation of the Reactive Adaptation
7.4.2 Evaluation of the Proactive Adaptation
Approach | Error (%) | Simulations 50th percentile | Simulations 75th percentile | Simulations 95th percentile |
---|---|---|---|---|
Baseline | 3 | 1000 | 3000 | 3000 |
6 | 300 | 1000 | 1000 | |
Adaptive | 3 | 632 | 754 | 1131 |
6 | 153 | 186 | 283 |