Transformation de programmes synchrones pour l’optimisation de la précision numérique
Institution:
PerpignanDisciplines:
Directors:
Abstract EN:
The certification of programs embedded in critical systems is still a challenge for both the industry and the research communities. The numerical accuracy of programs using the floating-point arithmetics is one aspect of this issue which has been addressed by manytechniques and tools. Nowadays we can statically infer a sound over-approximation of the rounding errors introduced by all the possible executions of a program. However, these techniques do not indicate how to correct or even how to reduce these errors. This work presents a new automatic technique to transform a synchronous program in order to reduce the rounding errors arising during its execution. We introduce a new intermediate representation of programs, called APEG, which is an under-approximation of the set of all the programs that are mathematically equivalent to the original one. This representation allows us to synthesize, in polynomial time, a program with a better numerical accuracy, while being mathematically equivalent to the original one. In addition, we present many experimental results obtained with the tool we have developed, Sardana, and which implements all of our contributions
Abstract FR:
La certification de programmes embarqués dans des systèmes critiques est, aujourd'hui encore, un enjeu majeur pour l'industrie et un défi pour la recherche. En outre, la précision numérique de programmes utilisant l'arithmétique des nombres à virgule flottante a fait l'objet de nombreux travaux et outils. À ce jour, il est possible de déterminer statiquement des sur-approximations fiables des erreurs d'arrondi pouvant apparaître lors des exécutions possibles d'un programme. Néanmoins, ces techniques n'indiquent pas comment corriger ou réduire ces erreurs. Ce travail de thèse présente une méthode automatique de transformation de programmes synchrones permettant de réduire la part des erreurs d'arrondi générées durant leurs exécutions. Pour cela nous utilisons une nouvelle représentation intermédiaire de programmes, appelée APEG, qui constitue une sous-approximation de l'ensemble des programmes mathématiquement équivalents à celui que l'on souhaite optimiser. Cette représentation permet de synthétiser, en temps polynomial, une version plus précise numériquement d'un programme, tout en lui étant mathématiquement équivalent. De plus, nous présentons de nombreux résultats expérimentaux obtenus à l'aide de l'outil que nous avons développé, Sardana, et qui implante toutes les contributions de ce travail.