Thèse soutenue

Amélioration de la précision numérique de programmes basés sur l'arithmétique flottante par les méthodes de transformation automatique

FR  |  
EN
Auteur / Autrice : Nasrine Damouche
Direction : Matthieu MartelAlexandre Chapoutot
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 12/12/2016
Etablissement(s) : Perpignan
Ecole(s) doctorale(s) : École doctorale Énergie environnement (Perpignan)
Partenaire(s) de recherche : Laboratoire : Laboratoire de Modélisation pluridisciplinaire et simulations (Perpignan) - LAboratoire de Mathématiques et PhySique / LAMPS
Jury : Président / Présidente : Samira El Yacoubi
Examinateurs / Examinatrices : Marc Pouzet, Michel Rueher, Pierre-Loïc Garoche, Laure Gonnord, Yassamine Seladji
Rapporteurs / Rapporteuses : Marc Pouzet, Michel Rueher

Résumé

FR  |  
EN

Les systèmes critiques basés sur l’arithmétique flottante exigent un processus rigoureux de vérification et de validation pour augmenter notre confiance en leur sureté et leur fiabilité. Malheureusement, les techniques existentes fournissent souvent une surestimation d’erreurs d’arrondi. Nous citons Arian 5 et le missile Patriot comme fameux exemples de désastres causés par les erreurs de calculs. Ces dernières années, plusieurs techniques concernant la transformation d’expressions arithmétiques pour améliorer la précision numérique ont été proposées. Dans ce travail, nous allons une étape plus loin en transformant automatiquement non seulement des expressions arithmétiques mais des programmes complets contenant des affectations, des structures de contrôle et des fonctions. Nous définissons un ensemble de règles de transformation permettant la génération, sous certaines conditions et en un temps polynômial, des expressions pluslarges en appliquant des calculs formels limités, au sein de plusieurs itérations d’une boucle. Par la suite, ces larges expressions sont re-parenthésées pour trouver la meilleure expression améliorant ainsi la précision numérique des calculs de programmes. Notre approche se base sur les techniques d’analyse statique par interprétation abstraite pour sur-rapprocher les erreurs d’arrondi dans les programmes et au moment de la transformation des expressions. Cette approche est implémenté dans notre outil et des résultats expérimentaux sur des algorithmes numériques classiques et des programmes venant du monde d’embarqués sont présentés.