Thèse soutenue

Calcul automatique de bornes sur la complexité I/O de programmes affines

FR  |  
EN
Auteur / Autrice : Auguste Olivry
Direction : Fabrice Rastello
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 08/06/2022
Etablissement(s) : Université Grenoble Alpes
Ecole(s) doctorale(s) : École doctorale mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 199.-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique de Grenoble
Jury : Président / Présidente : Laure Gonnord
Examinateurs / Examinatrices : Uday Reddy Bondhugula, Sven Verdoolaege
Rapporteurs / Rapporteuses : Sebastian Hack, Laura Grigori

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

L’évaluation de la complexité d’un algorithme est une étape importante lors du développement d’une application, de par son impact sur son temps d’exécution et sa consommation énergétique. La complexité arithmétique, qui est le nombre d’opérations effectuées par un programme, est en général facile à caractériser pour un programme affine, composé de boucles simples avec des bornes statiques. La complexité de mouvement de données (ou complexitéI/O) est plus complexe à évaluer. En effet, elle se réfère à la quantité minimale de données à transférer entre une mémoire lente de grande capacité, et une mémoire rapide de capacité limitée, et ce en considérant tous les ordonnancements valides des opérations. Dans cette thèse, nous présentons IOOpt, un outil automatisé capable de calculer des bornes symboliques sur la complexité I/O de programmes affines. Étant donné une description d’un programme affine, il génère : 1. une borne inférieure sur la complexité I/O sous la forme d’une expression symbolique dépendant de la taille de la mémoire rapide et des paramètres du programme ; 2. une borne supérieure qui permet d’évaluer la précision de la borne inférieure 3. une recommandation de tuilage (taille des tuiles et permutation des boucles) quipermet d’atteindre la borne supérieure. Cet outil est implémenté sous la forme d’une application open-source, et peut être testé sur la page https://iocomplexity.corse.inria.fr/.Le développement de cet outil a été possible grâce à la combinaison de résultats mathématiques avancés avec des outils puissants d’analyse de programmes, tels la représentation polyédrique. Notre modèle de mouvement de données est notamment basé sur celui proposé parHong&Kung (« Red-blue pebble game »), adapté pour pouvoir décomposer et recomposer des programmes complexes. L’applicabilité de cette approche est démontrée en combinant des bornes symboliques sur un large panel de programmes affines. Dans de nombreux cas, les bornes trouvées par IOOpt sont optimales, ou proches de la borne optimale par un facteur constant.