Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Nasrine Damouche is active.

Publication


Featured researches published by Nasrine Damouche.


formal methods for industrial critical systems | 2015

Intra-procedural Optimization of the Numerical Accuracy of Programs

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

Numerical programs performing floating-point computations are very sensitive to the way formulas are written. These last years, several techniques have been proposed concerning the transformation of arithmetic expressions in order to improve their accuracy and, in this article, we go one step further by automatically transforming larger pieces of code containing assignments and control structures. 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 the numerical accuracy of the target variable. We use abstract interpretation-based static analysis techniques to over-approximate the roundoff errors in programs and during the transformation of expressions. A prototype has been implemented and experimental results are presented concerning classical numerical algorithm analysis and algorithm for embedded systems.


numerical software verification | 2016

Toward a Standard Benchmark Format and Suite for Floating-Point Analysis

Nasrine Damouche; Matthieu Martel; Pavel Panchekha; Chen Qiu; Alexander Sanchez-Stern; Zachary Tatlock

We introduce FPBench, a standard benchmark format for validation and optimization of numerical accuracy in floating-point computations. FPBench is a first step toward addressing an increasing need in our community for comparisons and combinations of tools from different application domains. To this end, FPBench provides a basic floating-point benchmark format and accuracy measures for comparing different tools. The FPBench format and measures allow comparing and composing different floating-point tools. We describe the FPBench format and measures and show that FPBench expresses benchmarks from recent papers in the literature, by building an initial benchmark suite drawn from these papers. We intend for FPBench to grow into a standard benchmark suite for the members of the floating-point tools research community.


logic based program synthesis and transformation | 2015

Impact of Accuracy Optimization on the Convergence of Numerical IterativeźMethods

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

Among other objectives, rewriting programs serves as a useful technique to improve numerical accuracy. However, this optimization is not intuitive and this is why we switch to automatic transformation techniques. We are interested in the optimization of numerical programs relying on the IEEE754 floating-point arithmetic. In this article, our main contribution is to study the impact of optimizing the numerical accuracy of programs on the time required by numerical iterative methods to converge. To emphasize the usefulness of our tool, we make it optimize several examples of numerical methods such as Jacobis method, Newton-Raphsons method, etc. We show that significant speedups are obtained in terms of number of iterations, time and flops.


Electronic Notes in Theoretical Computer Science | 2015

Transformation of a PID Controller for Numerical Accuracy

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

Numerical programs performing floating-point computations are very sensitive to the way formulas are written. Several techniques have been proposed concerning the transformation of expressions in order to improve their accuracy and now we aim at going a step further by automatically transforming larger pieces of code containing several assignments and control structures. This article presents a case study in this direction. We consider a PID controller and we transform its code in order to improve its accuracy. The experimental data obtained when we compare the different versions of the code (which are mathematically equivalent) show that those transformations have a significant impact on the accuracy of the computations.


computing frontiers | 2015

Optimizing the accuracy of a rocket trajectory simulation by program transformation

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

Static analysis by abstract interpretation is one of the most successful techniques used to over-approximate the roundoff errors in numerical programs. In our case, we are interested in using this method to improve the accuracy of programs which perform floating-point computations, known for their sensitivity to the way formulas are written. We are interested in transforming automatically pieces of code by applying to them several rewriting rules. In this article, we demonstrate the effectiveness of our approach on a non-trivial numerical simulation code.


software and compilers for embedded systems | 2017

Numerical Accuracy Improvement by Interprocedural Program Transformation

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

Floating-point numbers are used to approximate the exact real numbers in a wide range of domains like numerical simulations, embedded software, etc. However, floating-point numbers are a finite approximation of real numbers. In practice, this approximation may introduce round-off errors and this can lead to catastrophic results. To cope with this issue, we have developed a tool which corrects partly these round-off errors and which consequently improves the numerical accuracy of computations by automatically transforming programs in a source to source manner. Our transformation, relies on static analysis by abstract interpretation and operates on pieces of code with assignments, conditionals and loops. In former work, we have focused on the intraprocedural transformation of programs and, in this article, we introduce the interprocedural transformation to improve accuracy.


international conference on control decision and information technologies | 2016

Data-types optimization for floating-point formats by program transformation

Nasrine Damouche; Matthieu Martel; Alexandre Chapoutot

In floating-point arithmetic, a desirable property of computations is to be accurate, since in many industrial context small or large perturbations due to round-off errors may cause considerable damages. To cope with this matter of fact, we have developed a tool which corrects these errors by automatically transforming programs in a source to source manner. Our transformation, relying on static analysis by abstract abstraction, concerns pieces of code with assignments, conditionals and loops. By transforming programs, we can significantly optimize the numerical accuracy of computations by minimizing the error relatively to the exact result. An interesting side-effect of our technique is that more accurate computations may make it possible to use smaller data-types. In this article, we show that our transformed programs, executed in single precision, may compete with not transformed codes executed in double precision.


AFM@NFM | 2017

Salsa: An Automatic Tool to Improve the Numerical Accuracy of Programs.

Nasrine Damouche; Matthieu Martel


international conference on pervasive and embedded computing and communication systems | 2018

Mixed Precision Tuning with Salsa.

Nasrine Damouche; Matthieu Martel


international conference on control decision and information technologies | 2018

On the Impact of Numerical Accuracy Optimization on General Performances of Programs

Nasrine Damouche; Matthieu Martel

Collaboration


Dive into the Nasrine Damouche's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alexandre Chapoutot

Superior National School of Advanced Techniques

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Chen Qiu

University of Washington

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge