Algèbre linéaire d'intervalles - Qualité Numérique et Hautes Performances sur Processeurs Multi-Cœurs
Auteur / Autrice : | Philippe Theveny |
Direction : | Gilles Villard |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 31/10/2014 |
Etablissement(s) : | Lyon, École normale supérieure |
Ecole(s) doctorale(s) : | École doctorale en Informatique et Mathématiques de Lyon (Lyon ; 2009-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) - ARIC / Inria Grenoble Rhône-Alpes / LIP Laboratoire de l'Informatique du Parallélisme |
Jury : | Président / Présidente : Marc Baboulin |
Examinateurs / Examinatrices : Gilles Villard, Marc Baboulin, Laurent Grandvilliers, Julien Langou, Sylvie Putot, Nathalie Revol | |
Rapporteurs / Rapporteuses : Laurent Grandvilliers, Julien Langou |
Résumé
L'objet est de comparer des algorithmes de multiplication de matrices à coefficients intervalles et leurs implémentations.Le premier axe est la mesure de la précision numérique. Les précédentes analyses d'erreur se limitent à établir une borne sur la surestimation du rayon du résultat en négligeant les erreurs dues au calcul en virgule flottante. Après examen des différentes possibilités pour quantifier l'erreur d'approximation entre deux intervalles, l'erreur d'arrondi est intégrée dans l'erreur globale. À partir de jeux de données aléatoires, la dispersion expérimentale de l'erreur globale permet d'éclairer l'importance des différentes erreurs (de méthode et d'arrondi) en fonction de plusieurs facteurs : valeur et homogénéité des précisions relatives des entrées, dimensions des matrices, précision de travail. Cette démarche conduit à un nouvel algorithme moins coûteux et tout aussi précis dans certains cas déterminés.Le deuxième axe est d'exploiter le parallélisme des opérations. Les implémentations précédentes se ramènent à des produits de matrices de nombres flottants. Pour contourner les limitations d'une telle approche sur la validité du résultat et sur la capacité à monter en charge, je propose une implémentation par blocs réalisée avec des threads OpenMP qui exécutent des noyaux de calcul utilisant les instructions vectorielles. L'analyse des temps d'exécution sur une machine de 4 octo-coeurs montre que les coûts de calcul sont du même ordre de grandeur sur des matrices intervalles et numériques de même dimension et que l'implémentation par bloc passe mieux à l'échelle que l'implémentation avec plusieurs appels aux routines BLAS.