Logo du CNRS Le Journal Logo de CSA Research

Grande enquête « CNRS Le Journal »

Votre avis nous intéresse.

Le CNRS a mandaté l’institut CSA pour réaliser une enquête de satisfaction auprès de ses lecteurs.

Répondre à cette enquête ne vous prendra que quelques minutes.

Un grand merci pour votre participation !

Grande enquête « CNRS Le Journal »

Sections

Un logiciel, des milliards de possibilités

Un logiciel, des milliards de possibilités

19.09.2022, par
La combinaison de toutes les options offertes par un logiciel peut atteindre des nombres astronomiques, à plusieurs milliers de chiffres. La recherche développe des outils afin de gérer au mieux cette variabilité. Explications à l'occasion d'une conférence sur les sciences du logiciel organisée au CNRS, à Paris, les 19 et 20 septembre.

Qu’il s’agisse de régler distraitement les notifications d’une application populaire ou de configurer avec soin une session Linux, chacun a accès à différents moyens pour personnaliser ses programmes. Cette liberté a cependant d’importantes conséquences techniques.

« En plus de remplir leurs missions, les programmes informatiques sont censés répondre aux besoins fonctionnels des utilisateurs, explique Mathieu Acher, maître de conférences à l’université de Rennes 1 et membre de l’Institut de recherche en informatique et systèmes aléatoires1 (Irisa). Certains font confiance à la configuration par défaut, ce qui est suffisant dans de nombreux cas, mais au risque de manquer une opportunité d’améliorer le service. Les programmes doivent ainsi respecter des contraintes de sécurité, de vitesse d’exécution, de consommation énergétique et de bien d’autres paramètres, puis trouver un compromis entre ces paramètres selon les demandes de chaque usager. Ces configurations différentes d’un même programme forment ce que l’on appelle des variantes logicielles. »

Une explosion de combinaisons à imaginer

Or ces dernières peuvent être extrêmement nombreuses. Si c’est déjà vrai pour des applications plutôt simples, ces chiffres atteignent des quantités absolument délirantes pour des programmes aussi complexes que les systèmes d’exploitation. La variabilité logicielle devient alors un problème qui semble insurmontable.

Rien que pour un programme à seulement trente options, chacune limitée à deux choix, on obtient six milliards de variantes.

« Rien que pour un programme à seulement trente options, chacune limitée à deux choix, on obtient six milliards de variantes, appuie Mathieu Acher. Si vous prenez quelque chose comme le noyau du système d’exploitation Linux, et ses quinze mille options de configuration avec jusqu’à trois valeurs différentes possibles, on se retrouve avec un total à six mille chiffres. »

Cette explosion des combinaisons imaginables affecte aussi bien ceux qui développent et maintiennent les logiciels que les utilisateurs, et ce que le programme soit un jeu sur mobile ou le système d’un rover sur Mars. Il n’est alors plus envisageable de suivre quoi que ce soit à la main pour vérifier que tout fonctionne correctement et qu’il n’y a pas de conflit entre certains choix. Même avec des techniques automatiques et si chaque test ne prenait qu’une seule seconde, l’exemple à trente options demanderait presque deux cents ans pour être entièrement validé. Or dans les faits, chaque opération individuelle dure plutôt plusieurs minutes.

Une IA pour prédire les propriétés des variants

Le développement de méthodes scientifiques adaptées à la navigation dans ces ensembles démesurés s’impose comme indispensable. Mathieu Acher s’attaque à ce problème notamment par le biais des feature models, des sortes d’arborescences qui décrivent les différentes options d’une gamme de produits, ici des programmes informatiques, avec ce que chacune apporte comme nouvelles possibilités ou incompatibilités.

Les feature models sont le moyen le plus simple et le plus efficace pour capturer l’espace des possibles d’un programme.

« Les feature models sont des formalismes qui explicitent les options d’un système, leurs valeurs disponibles et les contraintes entre elles, précise Mathieu Acher. Ce dernier point est important, car certaines combinaisons ne fonctionnent pas dans un même logiciel. Cette forme de modélisation est le moyen le plus simple et le plus efficace pour capturer l’espace des possibles d’un programme. »

Sur l’exemple du cœur de Linux et de ses quinze mille choix, Mathieu Acher a développé une intelligence artificielle (IA), basée sur de l’apprentissage automatique, qui prédit les propriétés des variants sans avoir à réellement les tester. L’IA a généralisé les informations qu’elle a extraites d’un nombre limité de cas, ce qui lui permet d’effectuer rapidement ses prédictions avec un taux d’erreur de seulement 5 %. Mathieu Acher et ses co-auteurs sont également parvenus à faire en sorte que ce modèle évolue avec le temps et prenne en compte les améliorations constantes apportées à Linux par ses utilisateurs.

« Linux est un des systèmes les plus complexes jamais construits par l’humanité, je suis ravi d’y participer et que mon travail trouve un aussi fort impact sociétal, se réjouit Mathieu Acher. J’étais pourtant assez pessimiste au début, craignant de devoir amasser une quantité gigantesque de données pour entraîner l’IA. Au final, elle a été bien conçue et son coût d’apprentissage est resté raisonnable. »

La variabilité logicielle profonde, "un espace encore plus délirant"

Cette solution permet notamment de prédire la taille du noyau nécessaire pour faire fonctionner Linux avec certaines options prioritaires, par exemple lorsque l’on souhaite l’embarquer sur de petits appareils et des processus. « Nous aimerions bien pouvoir aussi inclure dans les prédictions des propriétés plus complexes, comme la consommation énergétique ou le niveau de sécurité, mais cela demande des travaux encore plus poussés, avoue Mathieu Acher. Cela reste néanmoins un objectif que nous visons. »

On arrive assez bien à prédire le temps d’exécution d’un programme, mais seulement sur des paramètres fixés. Nous voulons généraliser cela à n’importe quelle variation possible sur toutes les machines de la terre. C’est un sacré défi ! 

D’autres défis attendent le chercheur, récemment nommé membre junior de l’Institut universitaire de France (IUF). Mathieu Acher a lancé dans ce cadre un projet sur la variabilité logicielle profonde. « Nous avons parlé des options logicielles, mais d’autres paramètres peuvent avoir un impact fort, souligne-t-il. Par exemple, la configuration matérielle de l’ordinateur qui fait tourner le programme, la nature des données qu’il traite, le système d’exploitation… On se retrouve avec un espace encore plus délirant. Ainsi, on arrive assez bien à prédire le temps d’exécution d’un programme, mais seulement sur des paramètres fixés. Nous voulons généraliser cela à n’importe quelle variation possible sur toutes les machines de la terre. C’est un sacré défi ! »

Un projet qui rejoint un autre centre d’intérêt de Mathieu Acher : la reproductibilité scientifique. Ces problèmes de variabilité logicielle profonde font en effet qu’un même algorithme peut donner une réponse différente en fonction de l’appareil qui effectue le calcul. « Je veux améliorer la robustesse des résultats de la recherche face à une variabilité que l’on maîtrise encore mal », conclut-il. Car même les publications scientifiques ne sont pas épargnées par la question. ♦

Informations
Conférence "Sciences du logiciel : de l'idée au binaire", organisée par  l’Institut des sciences de l’information et de leurs interactions (INS2I), en lien avec le Groupement de recherche Génie de la programmation et du logiciel (GDR GPL),  les 19 et 20 septembre 2022, au siège du CNRS à Paris. 
Programme et inscriptions sur le site de l'INS2I.

Pour aller plus loin
Retrouvez tous nos contenus consacrés aux sciences du logiciel dans le dossier 
Les logiciels, moteurs de (la) recherche

Notes
  • 1. Unité CNRS/Université de Rennes 1.
Aller plus loin

Auteur

Martin Koppe

Diplômé de l’École supérieure de journalisme de Lille, Martin Koppe a notamment travaillé pour les Dossiers d’archéologie, Science et Vie Junior et La Recherche, ainsi que pour le site Maxisciences.com. Il est également diplômé en histoire de l’art, en archéométrie et en épistémologie.

Commentaires

1 commentaire
Pour laisser votre avis sur cet article
Connectez-vous, rejoignez la communauté
du journal CNRS