Automatic derivation of I/O complexity bounds for affine programs - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Automatic derivation of I/O complexity bounds for affine programs

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

Auguste Olivry
  • Fonction : Auteur
  • PersonId : 1196209
  • IdRef : 265886880

Résumé

Evaluating the complexity of an algorithm is an important step when developing applications,as it impacts both its time and energy performance. Computational complexity, which is thenumber of arithmetic operations of a program, is easy to characterize for affine programs,that are composed of simple loops with static bounds. Data movement (or, I/O) complexityis more complex to evaluate as it refers, when considering all possible valid schedules, to theminimum required number of I/O between a slow memory with large capacity, and a faststorage location with limited capacity.This thesis presents IOOpt, a fully automated tool that automatically computes symbolicbounds on the I/O complexity of an affine program. Given a description of an affine program,it automatically computes: 1. a lower bound of the I/O complexity as a symbolic expressionof the cache size and program parameters; 2. an upper bound that allows one to assess thetightness of the lower bound; 3. a tiling recommendation (loop permutation and tile sizes)that matches the upper bound. This tool is implemented as an open-source program, anda demonstration is available at https://iocomplexity.corse.inria.fr/. This was madepossible by combining advanced mathematical results with powerful program analysis toolssuch as polyhedral representation. Our data movement model is notably based on the onedesigned by Hong&Kung (red-blue pebble game), adapted to be able de decompose and re-compose complex programs.We demonstrate the effectiveness of our approach by deriving symbolic bounds for a widerange of affine programs. In many cases, the bounds found by IOOpt can be proven optimal,or close to optimal by a constant factor.
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.
Fichier principal
Vignette du fichier
OLIVRY_2022_archivage.pdf (801.26 Ko) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03877029 , version 1 (29-11-2022)

Identifiants

  • HAL Id : tel-03877029 , version 1

Citer

Auguste Olivry. Automatic derivation of I/O complexity bounds for affine programs. Computational Complexity [cs.CC]. Université Grenoble Alpes [2020-..], 2022. English. ⟨NNT : 2022GRALM022⟩. ⟨tel-03877029⟩
96 Consultations
37 Téléchargements

Partager

Gmail Facebook X LinkedIn More