File 20170829 10418 11ml7mi.jpg?ixlib=rb 1.1

Autour de l’informatique : dompteuse de données

Autour de l’informatique : dompteuse de données

Un nouvel « Entretien autour de l’informatique ». Serge Abiteboul et Claire Mathieu du Blog Binaire interviewent Anastasia Ailamaki, professeure à l’École polytechnique fédérale de Lausanne. Elle dirige le laboratoire Data-Intensive Applications and Systems, qui étudie les systèmes et les applications de gestion de masses de données. Cet article est publié en collaboration avec le Blog Binaire.


Anastasia Ailamaki. Christoph Kellenberger Kaminski/Binaire

Comment t’es-tu retrouvée à Lausanne, depuis la Crète ?

Anastasia Ailamaki : J’ai fait un mastère en Crète, puis j’ai eu un premier emploi, mais cela ne me satisfaisait pas. J’avais encore envie d’apprendre. J’ai commencé une thèse à l’université de Rochester aux États-Unis, et je l’ai finie à l’université du Wisconsin à Madison, avec David Dewitt. Puis j’ai été recrutée par l’Université Carnegie-Mellon, où je suis devenue professeure. Je suis venue en sabbatique à l’École polytechnique fédérale de Lausanne (EPFL) et j’ai décidé d’y rester. J’ai toujours pensé que je reviendrai en Europe. L’EPFL est un lieu formidable pour le travail et j’adore la qualité de vie en Suisse francophone.

Comment est-ce, la vie dans un milieu très masculin comme l’informatique ?

A.A. : Ce n’est pas simple. On côtoie au quotidien la discrimination, de la part de personnes qui n’en sont, le plus souvent, même pas conscientes. Dans une lettre de recommandation pour une femme, par exemple, le style sera moins professionnel ; on utilisera le prénom plutôt que le nom ou le titre. Les femmes sont moins souvent nominées pour des prix. Les gens n’y pensent pas. Inconsciemment, ils les imaginent plus jeunes, moins compétentes que des hommes pourtant au même niveau. Les difficultés les plus importantes, je crois, se rencontrent surtout en début de carrière.

Sur quoi porte ta recherche ?

A.A. : Sur les bases de données massives. J’aime construire des systèmes qui gèrent de grandes quantités de données. Je travaille principalement sur deux axes de recherche : une meilleure utilisation des matériels, et l’expérimentation de la gestion de données massives sur de grandes applications.

Base de données et matériel

Le logiciel qui gère les données doit utiliser au mieux le matériel disponible. Pour gérer des données massives, il faut s’appuyer sur des mémoires très rapides (les « caches »), d’autres moins rapides, d’autres encore moins rapides mais massives, et il faut concevoir des logiciels qui utilisent tout cela au mieux. On observe que quand on exécute une requête sur une grande base de données, la plupart du temps, les processeurs sont inactifs, simplement en train d’attendre des données, et l’horloge du processeur tourne sans que rien ne se passe, pendant, disons, 60 % du temps. Il faudrait construire des logiciels qui exploitent à 100 % les ressources de calcul.

Base de données et applications

Mon deuxième axe de recherche se situe aux frontières de l’informatique. Je travaille sur des applications qui utilisent ou devraient utiliser les bases de données, mais que nos systèmes n’arrivent pas vraiment à satisfaire aujourd’hui. Ces applications sont dans des domaines scientifiques qui ont des masses de données considérables, qui proviennent de mesures de phénomènes naturels ou de simulations. Il faut collaborer avec les scientifiques de ces domaines pour satisfaire leurs besoins. On rencontre des problèmes d’organisation des données, des problèmes de puissance de calcul exigée. Les données scientifiques présentent souvent une grande diversité, les besoins des scientifiques évoluent souvent rapidement, de manière très dynamique, alors que les systèmes de gestion de données traditionnels ont été conçus pour des données régulières et statiques.

Tu peux nous donner un exemple de domaines scientifiques ?

A.A. : Je m’intéresse particulièrement à la recherche médicale. Nous travaillons avec les hôpitaux sur des données médicales, des données qui doivent être évidemment très protégées.

Je participe au projet Human Brain qui veut identifier une maladie du cerveau par sa « signature », qui combine des informations de types divers, des mesures cliniques et biométriques, des données biologiques, radiologiques, cliniques, etc. Les systèmes doivent faciliter les calculs de telles signatures, pour arriver à un meilleur diagnostic, personnalisé pour chaque patient et plus seulement statistique. Il nous faut des systèmes qui sachent aller chercher les données dans des services divers de l’hôpital et les rassembler. Nous n’y sommes pas encore.

Les systèmes de gestion de données de demain

C’est là que se rejoignent tes axes de recherche. Améliorer les systèmes de gestion de données existants ?

A.A. : Oui ! Il faut garder un œil à la fois sur les applications les plus exigeantes et sur le matériel, pour construire des logiciels plus performants qui répondent aux besoins des applications, les systèmes de demain.

Les systèmes de gestion de données « historiques » sont basés sur des hypothèses logiques fortes, dont certaines ne sont parfois plus valides. Par exemple, le dogme dit que la construction de la base de données doit précéder l’évaluation de toute requête. On commence par « préparer » les données. Mais ça ne colle plus avec des données trop massives, quand seulement une toute petite partie des données, quelques pourcents peut-être, sera utilisée. Pourquoi perdre son temps à tout préparer ?

Notre approche est très différente. Nous partons des données disponibles, avec toute leur diversité de formats, et des requêtes auxquelles nous voulons répondre de manière efficace. Notre système génère un programme, le code qui va faire le travail : extraire les informations dont nous avons besoin et seulement celles-là, les harmoniser quels que soient leurs formats d’origine pour lancer les calculs.

Cela conduit à des logiciels extrêmement complexes. Mais d’un point de vue conceptuel, quelles sont les idées véritablement nouvelles que vous apportez ?

A.A. : D’abord, la virtualisation des données. Il faut penser les données, qui sont très concrètes, de façon très virtuelle. Il faut les abstraire de leur réalité physique. C’est cette abstraction qui permet de résoudre le problème de leur intégration dans des formats homogènes virtuels, sans véritable existence.

Ensuite, c’est la génération de code. Nous nous appuyons sur la théorie des catégories pour une description mathématique à la fois simple, correcte et puissante, pour que ce soit correct. Elle nous permet de composer facilement les calculs dont nous avons besoin. C’est magnifique !

RAW Labs, des logiciels pour interroger toutes sortes de données. Binaire

Enfin, pour plus d’efficacité, nous avons dû inventer de nouvelles techniques de caching. Nous utilisons par exemple l’apprentissage automatique (machine learning) pour planifier les ressources dont nous risquons d’avoir besoin dans le futur pour répondre aux requêtes.

Natassa startupeuse

En plus de ton équipe de recherche, tu as créé une start-up.

A.A. : Oui, RAW Labs, basée en Suisse et fondée en 2015. Nous avons introduit une version commerciale du système de gestion de données dont je vous ai parlé.

Le monde des start-up est un monde très différent de celui des laboratoires de recherche. Dans un laboratoire de recherche, on forme des étudiants par la recherche, on produit des publications dans des conférences pour proposer de nouvelles idées, des contributions intellectuelles intemporelles, les plus générales possibles, pour faire avancer les connaissances scientifiques universelles. Dans l’entreprise, on doit résoudre un problème spécifique, et le but est de gagner de l’argent. On peut être conduit à travailler sur le même problème, mais les objectifs sont très différents.

Dans un équipe de recherche, on cherche à trouver une solution à un problème, à obtenir une preuve convaincante que ça marche. Les logiciels doivent atteindre un point de maturité raisonnable, puis on passe à autre chose. Dans une start-up, cela ne suffit pas. Les logiciels ne doivent pas avoir de bugs, ils doivent offrir de bonnes interfaces utilisateurs. Et quand ils sont au point, il ne faut pas passer à autre chose car c’est là qu’ils commencent à convaincre des clients. Il faut les maintenir, ajouter des fonctionnalités pour satisfaire les clients…

La complexité et l’abstraction

Qu’est-ce qui te motive ?

A.A. : Pour moi, l’« informatique », c’est une manière de penser pour résoudre des problèmes qui semblent a priori difficiles. On peut décomposer un problème en des problèmes plus simples. On peut choisir pour un problème, le bon niveau d’abstraction. Cela n’est pas juste théorique ; on arrive à des solutions pratiques pour des familles de problèmes.

Dans mon domaine de la gestion de données, le problème change quand la taille des données, les processeurs changent. Même si le problème reste le même formellement, mathématiquement, les solutions efficaces ne sont plus les mêmes. Le problème est différent qualitativement. La complexité en temps suivant la taille de données est une composante essentielle du problème.

Ce jeu entre complexité et abstraction dans la résolution de problèmes est passionnant. J’essaie de comprendre comment il peut m’apporter aussi des solutions dans ma vie quotidienne, peut-être dans la gestion de mes enfants.

We produce knowledge-based, ethical journalism. Please donate and help us thrive. Tax deductible.