首页 | 本学科首页   官方微博 | 高级检索  
     


A new version of the CADNA library for estimating round-off error propagation in Fortran programs
Authors:Fabienne Jé    quel,Jean-Marie Chesneaux
Affiliation:UPMC Univ. Paris 06, UMR 7606, Laboratoire d'Informatique de Paris 6, 4 place Jussieu, F-75005 Paris, France
Abstract:The CADNA library enables one to estimate, using a probabilistic approach, round-off error propagation in any simulation program. CADNA provides new numerical types, the so-called stochastic types, on which round-off errors can be estimated. Furthermore CADNA contains the definition of arithmetic and relational operators which are overloaded for stochastic variables and the definition of mathematical functions which can be used with stochastic arguments. On 64-bit processors, depending on the rounding mode chosen, the mathematical library associated with the GNU Fortran compiler may provide incorrect results or generate severe bugs. Therefore the CADNA library has been improved to enable the numerical validation of programs on 64-bit processors.

New version program summary

Program title: CADNACatalogue identifier: AEAT_v1_1Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEAT_v1_1.htmlProgram obtainable from: CPC Program Library, Queen's University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 28 488No. of bytes in distributed program, including test data, etc.: 463 778Distribution format: tar.gzProgramming language: FortranNOTE: A C++ version of this program is available in the Library as AEGQ_v1_0Computer: PC running LINUX with an i686 or an ia64 processor, UNIX workstations including SUN, IBMOperating system: LINUX, UNIXClassification: 6.5Catalogue identifier of previous version: AEAT_v1_0Journal reference of previous version: Comput. Phys. Commun. 178 (2008) 933Does the new version supersede the previous version?: YesNature of problem: A simulation program which uses floating-point arithmetic generates round-off errors, due to the rounding performed at each assignment and at each arithmetic operation. Round-off error propagation may invalidate the result of a program. The CADNA library enables one to estimate round-off error propagation in any simulation program and to detect all numerical instabilities that may occur at run time.Solution method: The CADNA library [1-3] implements Discrete Stochastic Arithmetic [4,5] which is based on a probabilistic model of round-off errors. The program is run several times with a random rounding mode generating different results each time. From this set of results, CADNA estimates the number of exact significant digits in the result that would have been computed with standard floating-point arithmetic.Reasons for new version: On 64-bit processors, the mathematical library associated with the GNU Fortran compiler may provide incorrect results or generate severe bugs with rounding towards −∞ and +∞, which the random rounding mode is based on. Therefore a particular definition of mathematical functions for stochastic arguments has been included in the CADNA library to enable its use with the GNU Fortran compiler on 64-bit processors.Summary of revisions: If CADNA is used on a 64-bit processor with the GNU Fortran compiler, mathematical functions are computed with rounding to the nearest, otherwise they are computed with the random rounding mode. It must be pointed out that the knowledge of the accuracy of the stochastic argument of a mathematical function is never lost.Restrictions: CADNA requires a Fortran 90 (or newer) compiler. In the program to be linked with the CADNA library, round-off errors on complex variables cannot be estimated. Furthermore array functions such as product or sum must not be used. Only the arithmetic operators and the abs, min, max and sqrt functions can be used for arrays.Additional comments: In the library archive, users are advised to read the INSTALL file first. The doc directory contains a user guide named ug.cadna.pdf which shows how to control the numerical accuracy of a program using CADNA, provides installation instructions and describes test runs. The source code, which is located in the src directory, consists of one assembly language file (cadna_rounding.s) and eighteen Fortran language files. cadna_rounding.s is a symbolic link to the assembly file corresponding to the processor and the Fortran compiler used. This assembly file contains routines which are frequently called in the CADNA Fortran files to change the rounding mode. The Fortran language files contain the definition of the stochastic types on which the control of accuracy can be performed, CADNA specific functions (for instance to enable or disable the detection of numerical instabilities), the definition of arithmetic and relational operators which are overloaded for stochastic variables and the definition of mathematical functions which can be used with stochastic arguments. The examples directory contains seven test runs which illustrate the use of the CADNA library and the benefits of Discrete Stochastic Arithmetic.Running time: The version of a code which uses CADNA runs at least three times slower than its floating-point version. This cost depends on the computer architecture and can be higher if the detection of numerical instabilities is enabled. In this case, the cost may be related to the number of instabilities detected.References:
[1]
The CADNA library, URL address: http://www.lip6.fr/cadna.
[2]
F. Jézéquel, J.-M. Chesneaux, CADNA: a library for estimating round-off error propagation, Comput. Phys. Commun. 178 (12) (2008) 933-955.
[3]
N.S. Scott, F. Jézéquel, C. Denis, J.-M. Chesneaux, Numerical ‘health check’ for scientific codes: the CADNA approach, Comput. Phys. Commun. 176 (8) (2007) 507-521.
[4]
J. Vignes, A stochastic arithmetic for reliable scientific computation, Math. Comput. Simul. 35 (1993) 233-261.
[5]
J. Vignes, Discrete stochastic arithmetic for validating results of numerical software, Numer. Algorithms 37 (2004) 377-390.
Keywords:CADNA   CESTAC method   Discrete Stochastic Arithmetic   Floating-point arithmetic   Numerical validation   Round-off errors
本文献已被 ScienceDirect 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号