Efficient automated repair of high floating-point errors in numerical libraries

Xin Yi, Liqian Chen, Xiaoguang Mao, Tao Ji
{"title":"Efficient automated repair of high floating-point errors in numerical libraries","authors":"Xin Yi, Liqian Chen, Xiaoguang Mao, Tao Ji","doi":"10.1145/3290369","DOIUrl":null,"url":null,"abstract":"Floating point computation is by nature inexact, and numerical libraries that intensively involve floating-point computations may encounter high floating-point errors. Due to the wide use of numerical libraries, it is highly desired to reduce high floating-point errors in them. Using higher precision will degrade performance and may also introduce extra errors for certain precision-specific operations in numerical libraries. Using mathematical rewriting that mostly focuses on rearranging floating-point expressions or taking Taylor expansions may not fit for reducing high floating-point errors evoked by ill-conditioned problems that are in the nature of the mathematical feature of many numerical programs in numerical libraries. \n In this paper, we propose a novel approach for efficient automated repair of high floating-point errors in numerical libraries. Our main idea is to make use of the mathematical feature of a numerical program for detecting and reducing high floating-point errors. The key components include a detecting method based on two algorithms for detecting high floating-point errors and a repair method for deriving an approximation of a mathematical function to generate patch to satisfy a given repair criterion. We implement our approach by constructing a new tool called AutoRNP. Our experiments are conducted on 20 numerical programs in GNU Scientific Library (GSL). Experimental results show that our approach can efficiently repair (with 100% accuracy over all randomly sampled points) high floating-point errors for 19 of the 20 numerical programs.","PeriodicalId":143298,"journal":{"name":"Proc. ACM Program. Lang.","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-01-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"35","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proc. ACM Program. Lang.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3290369","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 35

Abstract

Floating point computation is by nature inexact, and numerical libraries that intensively involve floating-point computations may encounter high floating-point errors. Due to the wide use of numerical libraries, it is highly desired to reduce high floating-point errors in them. Using higher precision will degrade performance and may also introduce extra errors for certain precision-specific operations in numerical libraries. Using mathematical rewriting that mostly focuses on rearranging floating-point expressions or taking Taylor expansions may not fit for reducing high floating-point errors evoked by ill-conditioned problems that are in the nature of the mathematical feature of many numerical programs in numerical libraries. In this paper, we propose a novel approach for efficient automated repair of high floating-point errors in numerical libraries. Our main idea is to make use of the mathematical feature of a numerical program for detecting and reducing high floating-point errors. The key components include a detecting method based on two algorithms for detecting high floating-point errors and a repair method for deriving an approximation of a mathematical function to generate patch to satisfy a given repair criterion. We implement our approach by constructing a new tool called AutoRNP. Our experiments are conducted on 20 numerical programs in GNU Scientific Library (GSL). Experimental results show that our approach can efficiently repair (with 100% accuracy over all randomly sampled points) high floating-point errors for 19 of the 20 numerical programs.
有效地自动修复数值库中的高浮点数错误
浮点计算本质上是不精确的,大量涉及浮点计算的数值库可能会遇到很高的浮点误差。由于数字库的广泛使用,人们迫切希望减少它们中的高浮点误差。使用更高的精度将降低性能,并且还可能为数值库中的某些特定于精度的操作引入额外的错误。使用数学重写主要侧重于重新排列浮点表达式或采用泰勒展开,可能不适合减少由病态问题引起的高浮点误差,这些问题是数值库中许多数值程序的数学特征的本质。在本文中,我们提出了一种新的方法来有效地自动修复数值库中的高浮点数错误。我们的主要思想是利用数值程序的数学特性来检测和减少高浮点误差。关键组件包括基于检测高浮点误差的两种算法的检测方法和用于导出数学函数的近似值以生成补丁以满足给定修复准则的修复方法。我们通过构建一个名为AutoRNP的新工具来实现我们的方法。我们在GNU科学库(GSL)中的20个数值程序上进行了实验。实验结果表明,该方法可以有效地修复20个数值程序中的19个程序的高浮点误差(所有随机采样点的精度为100%)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信