Optimisation : conversation avec Clément Quinton
Partons à la découverte de l'optimisation avec Clément Quinton, maître de conférences à l'Université de Lille, membre du Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL - CNRS/Centrale Lille/Université de Lille).
Comment décririez-vous l'optimisation ? Qu'est-ce qui vous a donné envie de travailler sur l'optimisation ?
Clément Quinton : L'optimisation vise à améliorer les performances d'un système en respectant des contraintes, qu’elles soient prédéfinies ou contextuelles. Dans mon domaine, l'optimisation consiste à trouver des configurations logicielles efficaces qui équilibrent les besoins fonctionnels et les indicateurs non fonctionnels tels que la consommation d'énergie ou le temps de réponse. Cela implique souvent des compromis entre plusieurs objectifs et l'utilisation de techniques automatisées comme l’apprentissage pour explorer des espaces de configuration complexes.
Les logiciels modernes sont caractérisés par leur complexité croissante et leurs utilisateurs se retrouvent bien souvent incapables de choisir la configuration la plus efficace, notamment dans le cadre d’une utilisation écoresponsable. Il est donc nécessaire de concevoir des outils accessibles et de rendre les logiciels plus performants tout en simplifiant la tâche des développeurs et développeuses.
Quels défis avez-vous rencontrés dans vos travaux récents ?
C. Q. : L'échelle et la complexité des espaces de configuration, qui définissent l’ensemble des configurations d’un logiciel et qui sont très souvent composés de millions de combinaisons, rendent l’exploration exhaustive des configurations impraticable. De plus, les interactions complexes entre fonctionnalités, qui influencent fortement les performances du système, sont difficiles à modéliser avec précision. Ces interactions exigent des approches analytiques fines pour éviter des approximations simplistes. Enfin, maintenir une cohérence avec les besoins spécifiques des utilisateurs et utilisatrices tout en optimisant les performances impose un équilibre délicat entre personnalisation et automatisation.
Quels sont les sujets de recherche sur lesquels vous souhaiteriez travailler dans le futur ?
C. Q. : Une première direction concerne l’optimisation de systèmes logiciel complexes, ou systèmes-de-systèmes. Il s’agit d’étudier comment les améliorations apportées à un logiciel peuvent affecter les performances d’autres logiciels interconnectés, notamment dans des environnements tels que le cloud ou les piles logicielles. Une autre direction consiste à intégrer les grands modèles de langage (LLMs) pour identifier des configurations optimales, notamment en capturant les interactions entre fonctionnalités. Enfin, le développement de solutions d’optimisation adaptatives, capables de s’ajuster en temps réel aux changements de besoins ou de contraintes, permettrait l’optimisation en continu de systèmes dynamiques.