Configuration-driven Software Optimization - TEL - Thèses en ligne
Theses Year : 2023

Configuration-driven Software Optimization

Optimisation de logiciels par leur configuration

Abstract

The field of software engineering is rapidly evolving, exposing practitioners to a growing collection of tools, languages, frameworks, and paradigms. Thus, designing a new software system consists in selecting components from this collection, which is akin to creating a configuration. Currently, the criterion to configure such systems often revolves around ease of development, which leads to oversized, power-hungry bloatware. This paradigm is not aligned with frugal or environmental concerns. Thus, this dissertation looks into the ability to leverage the configuration of software systems to optimize their performance. In particular, a specific focus is made on the energy consumption and the size of software systems. A prerequisite to optimizing a system is to understand its current performance. To gain a comprehensive understanding, this dissertation begins with a thorough analysis of a configurable software system, considering multiple performance indicators. This analysis reveals that different configurations indeed yield varying performances, and these variations can be attributed to specific options. Leveraging insights gained from performance analysis enables the creation of high-performance configurations for this system. Furthermore, certain performance indicators proved correlated across configurations. Consequently, the optimization objective can be simplified by ignoring redundant performance indicators. The creation of optimized configurations of this system was performed manually, which is only possible for small configuration spaces. To address larger configuration spaces, we propose an algorithm that outlines how to evaluate the performance of each option and subsequently improves a given configuration based on this performance data. However, optimizing a configuration by selecting high-performance options brought out limitations, as options can interact with each other: in some situations, pairing high-performance options may result in subpar performances. Similarly, low-performance options can prove unexpectedly efficient when paired together. We thus designed the algorithm to leverage such interactions. Applying this algorithm to a large set of configurations showed that most of them can reach near-optimal performances, with only a limited set of modifications. However, performance constraints are not limited to a single performance indicator. Depending on the context, the energy consumption of a system may not be the single most impactful indicator to optimize for environmental concerns. Thus, the optimization algorithm must be generalized to accommodate multiple performance indicators. This improved algorithm is validated on a pair of performance indicators: the execution time and the software size. The key finding from this validation is that half of the assessed configurations can reach a local optimum by adjusting just one setting. To automate configuration optimization, this algorithm is implemented as an open-source tool called the ICO tool suite.
Le domaine du génie logiciel évolue rapidement, exposant les développeurs à une collection d’outils, langages, framework et paradigmes en constante croissance. Ainsi, concevoir un nouveau logiciel consiste à sélectionner des composants de cette collection, processus qui peut être assimilé à la création d’une configuration. Le critère pour configurer de tels systèmes est souvent la facilité de développement, ce qui peut conduire à des obésiciels surdimensionnés et consommateurs en énergie, loin des considérations frugales et environnementales. Cette dissertation s’intéresse donc à la possibilité d’utiliser la configuration des logiciels pour optimiser leur performance. Une attention spécifique est portée à la consommation énergétique et la taille de ces logiciels. Un prérequis pour optimiser un système est de comprendre sa performance actuelle. Pour mieux appréhender ce sujet, cette dissertation commence par une analyse approfondie d’un logiciel configurable, au travers de plusieurs indicateurs de performance. Cette analyse a montré dans quelle mesure la configuration d’un système affecte ses performances, et quel impact chaque option a sur ses performances. Cette compréhension de la performance a permis de créer des configurations très performantes pour ce logiciel. Enfin, différents indicateurs de performance se sont avérés corrélés. Par conséquent, les objectifs d’optimisation peuvent être simplifiés en ignorant certains indicateurs redondants. Ces configurations à haute performance ont été créées manuellement, ce qui n’est possible qu’avec un petit espace de configuration. Un algorithme a donc été créé pour automatiser ce processus, et ainsi l’adapter aux plus grands espaces de configuration. Cependant, optimiser une configuration en sélectionnant des options à haute performance n’est pas suffisant, car les options interagissent entre elles: par exemple, dans certaines situation, deux options à haute performance peuvent sous-performer quand elles sont associées. L’algorithme d’optimisation a donc été adapté pour prendre en compte ces comportements et en tirer profit. L’application de cet algorithme a un large ensemble de configurations a montré que la plupart d’entre elles atteignent une performance presque optimale, avec seulement un nombre limité de modifications. Cependant, les contraintes de performance ne se limitent pas à un seul indicateur. La consommation énergétique d’un logiciel n’est pas toujours l’indicateur le plus impactant à optimiser. L’algorithme d’optimisation a donc été généralisé pour supporter l’optimisation de plusieurs indicateurs simultanément. Cet algorithme généralisé a été validé sur un couple d’indicateurs de performance: le temps d’exécution et la taille d’un logiciel. Cette validation a montré que la moitié des configurations analysées peut atteindre leur optimum local respectif en ajustant une seule option. Dans son état actuel, l’algorithme a été publié sous la forme d’un outil open-source nommé ICO.
Fichier principal
Vignette du fichier
Thesis_guegain.pdf (4.68 Mo) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

tel-04350545 , version 1 (18-12-2023)
tel-04350545 , version 2 (19-01-2024)

Identifiers

  • HAL Id : tel-04350545 , version 1

Cite

Edouard Guégain. Configuration-driven Software Optimization. Software Engineering [cs.SE]. Université de lille, 2023. English. ⟨NNT : ⟩. ⟨tel-04350545v1⟩
96 View
207 Download

Share

More