Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods

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...

Full description

Bibliographic Details
Main Author: Damouche, Nasrine
Other Authors: Perpignan
Language:en
Published: 2016
Subjects:
004
Online Access:http://www.theses.fr/2016PERP0032/document
id ndltd-theses.fr-2016PERP0032
record_format oai_dc
spelling ndltd-theses.fr-2016PERP00322017-07-08T04:39:30Z Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods Amélioration de la précision numérique de programmes basés sur l'arithmétique flottante par les méthodes de transformation automatique Arithmétique flottante Précision numérique Erreur d'arrondi Transformation automatique de programmes Analyse statique Interprétation abstraite Floating-point arithmetic Numerical accuracy Rounding errors Automatic transformation of programs Static analysis Abstract interpretation 004 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. Critical software based on floating-point arithmetic requires rigorous verification and validation process to improve our confidence in their reliability and their safety. Unfortunately available techniques for this task often provide overestimates of the round-off errors. We can cite Arian 5, Patriot rocket as well-known examples of disasters. These last years, several techniques have been proposed concerning the transformation of arithmetic expressions in order to improve their numerical accuracy and, in this work, we go one step further by automatically transforming larger pieces of code containing assignments, control structures and functions. We define a set of transformation rules allowing the generation, under certain conditions and in polynomial time, of larger expressions by performing limited formal computations, possibly among several iterations of a loop. These larger expressions are better suited to improve, by re-parsing, the numerical accuracy of the program results. We use abstract interpretation based static analysis techniques to over-approximate the round-off errors in programs and during the transformation of expressions. A tool has been implemented and experimental results are presented concerning classical numerical algorithms and algorithms for embedded systems. Electronic Thesis or Dissertation Text en http://www.theses.fr/2016PERP0032/document Damouche, Nasrine 2016-12-12 Perpignan Martel, Matthieu Chapoutot, Alexandre
collection NDLTD
language en
sources NDLTD
topic Arithmétique flottante
Précision numérique
Erreur d'arrondi
Transformation automatique de programmes
Analyse statique
Interprétation abstraite
Floating-point arithmetic
Numerical accuracy
Rounding errors
Automatic transformation of programs
Static analysis
Abstract interpretation
004
spellingShingle Arithmétique flottante
Précision numérique
Erreur d'arrondi
Transformation automatique de programmes
Analyse statique
Interprétation abstraite
Floating-point arithmetic
Numerical accuracy
Rounding errors
Automatic transformation of programs
Static analysis
Abstract interpretation
004
Damouche, Nasrine
Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
description 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. === Critical software based on floating-point arithmetic requires rigorous verification and validation process to improve our confidence in their reliability and their safety. Unfortunately available techniques for this task often provide overestimates of the round-off errors. We can cite Arian 5, Patriot rocket as well-known examples of disasters. These last years, several techniques have been proposed concerning the transformation of arithmetic expressions in order to improve their numerical accuracy and, in this work, we go one step further by automatically transforming larger pieces of code containing assignments, control structures and functions. We define a set of transformation rules allowing the generation, under certain conditions and in polynomial time, of larger expressions by performing limited formal computations, possibly among several iterations of a loop. These larger expressions are better suited to improve, by re-parsing, the numerical accuracy of the program results. We use abstract interpretation based static analysis techniques to over-approximate the round-off errors in programs and during the transformation of expressions. A tool has been implemented and experimental results are presented concerning classical numerical algorithms and algorithms for embedded systems.
author2 Perpignan
author_facet Perpignan
Damouche, Nasrine
author Damouche, Nasrine
author_sort Damouche, Nasrine
title Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
title_short Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
title_full Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
title_fullStr Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
title_full_unstemmed Improving the Numerical Accuracy of Floating-Point Programs with Automatic Code Transformation Methods
title_sort improving the numerical accuracy of floating-point programs with automatic code transformation methods
publishDate 2016
url http://www.theses.fr/2016PERP0032/document
work_keys_str_mv AT damouchenasrine improvingthenumericalaccuracyoffloatingpointprogramswithautomaticcodetransformationmethods
AT damouchenasrine ameliorationdelaprecisionnumeriquedeprogrammesbasessurlarithmetiqueflottanteparlesmethodesdetransformationautomatique
_version_ 1718493756455387136