Numerical validation in quadruple precision using stochastic arithmetic

Discrete Stochastic Arithmetic (DSA) enables one to estimate rounding errors and to detect numerical instabilities in simulation programs. DSA is implemented in the CADNA library that can analyze the numerical quality of single and double precision programs. In this article, we show how the CADNA library has been improved to enable the estimation of rounding errors in programs using quadruple precision floating-point variables, i.e. having 113-bit mantissa length. Although an implementation of DSA called SAM exists for arbitrary precision programs, a significant performance improvement has been obtained with CADNA compared to SAM for the numerical validation of programs with 113-bit mantissa length variables. This new version of CADNA has been sucessfully used for the control of accuracy in quadruple precision applications, such as a chaotic sequence and the computation of multiple roots of polynomials. We also describe a new version of the PROMISE tool, based on CADNA, that aimed at reducing in numerical programs the number of double precision variable declarations in favor of single precision ones, taking into account a requested accuracy of the results. The new version of PROMISE can now provide type declarations mixing single, double and quadruple precision.

[1]  Fabienne Jézéquel,et al.  High Performance Numerical Validation using Stochastic Arithmetic , 2015 .

[2]  M. Hénon A two-dimensional mapping with a strange attractor , 1976 .

[3]  Jean Vignes,et al.  Discrete Stochastic Arithmetic for Validating Results of Numerical Software , 2004, Numerical Algorithms.

[4]  M. S. Ibrahim,et al.  Dynamical control of Newton's method for multiple roots of polynomials , 2016 .

[5]  Vincent Lefèvre,et al.  MPFR: A multiple-precision binary floating-point library with correct rounding , 2007, TOMS.

[6]  Andreas Zeller,et al.  Why Programs Fail: A Guide to Systematic Debugging , 2005 .

[7]  François Févotte,et al.  PROMISE: floating-point precision tuning with stochastic arithmetic , 2016 .

[8]  Yuxiang Zhu,et al.  Stochastic Arithmetic in Multiprecision , 2011, Math. Comput. Sci..

[9]  Fabienne Jézéquel,et al.  CADNA: a library for estimating round-off error propagation , 2008, Comput. Phys. Commun..

[10]  Christophe Denis,et al.  Towards an efficient implementation of CADNA in the BLAS : Example of DgemmCADNA routine. , 2012 .

[11]  Fabienne Jézéquel,et al.  Estimation of Round-off Errors in OpenMP Codes , 2016, IWOMP.

[12]  R. Baker Kearfott,et al.  Introduction to Interval Analysis , 2009 .

[13]  Vincent Lefèvre,et al.  Optimized Binary64 and Binary128 Arithmetic with GNU MPFR , 2017, 2017 IEEE 24th Symposium on Computer Arithmetic (ARITH).

[14]  François Févotte,et al.  Auto-tuning for floating-point precision with Discrete Stochastic Arithmetic , 2019, J. Comput. Sci..

[15]  T. J. Dekker,et al.  A floating-point technique for extending the available precision , 1971 .

[16]  Jean-Michel Muller,et al.  Tight and Rigorous Error Bounds for Basic Building Blocks of Double-Word Arithmetic , 2017, ACM Trans. Math. Softw..