跳到主要内容
10.1145/2429069.2429133acm会议文章/章节视图摘要出版物页面波普尔会议记录会议集合
研究论文

自动检测浮点异常

作者信息和声明
出版:2013年1月23日出版历史

摘要

众所周知,浮点异常可能是灾难性的,编写无异常的数值程序非常困难。因此,自动检测此类错误非常重要。本文介绍了Ariadne,一个专门为检测浮点异常而设计和实现的实用符号执行系统。Ariadne系统地转换一个数值程序,以明确检查每个异常触发条件。Ariadne使用实数运算符号化地执行转换后的程序,以查找可能到达并触发异常的候选实数输入。Ariadne将每个候选输入转换为一个浮点数,然后对原始程序进行测试。一般来说,用实数近似浮点运算可以将路径从可行变为不可行,反之亦然。这项工作的关键见解是,对于检测浮点异常的问题,这种近似在实践中效果很好,因为如果一个输入发生异常,许多输入很可能发生异常,并且至少其中一个输入会在浮点和实数运算中发生异常。为了实现Ariadne,我们还设计了一种新颖实用的线性化技术来解决非线性约束。我们在广泛使用的GNU科学图书馆(GSL)中对Ariadne的467个标量函数进行了广泛评估。我们的结果表明,Ariadne是实用的,它可以识别GSL中大量的实际运行时异常。GSL开发人员确认了我们的初步发现,并期待Ariadne的公开发布,我们计划在不久的将来这样做。

跳过补充材料部分

补充材料

r2d3_通话6.mp4

英里4

191.8 MB

工具书类

  1. F.Benz、A.Hildebrandt和S.Hack。动态程序分析以发现浮点精度问题。PLDI,2012年。谷歌学者谷歌学者数字图书馆数字图书馆
  2. A.Brillout、D.Kroening和T.Wahl。浮点运算的混合抽象。在FMCAD中,2009年。谷歌学者谷歌学者交叉引用交叉引用
  3. 美国有线电视新闻网。丰田:普锐斯刹车问题归咎于软件。http://www.cnn.com/2010/WORLD/asiapcf/02/04/japan.prius.completes/index.html。谷歌学者谷歌学者
  4. P.Collingbourne、C.Cadar和P.H.Kelly。浮点和SIMD代码的符号交叉检查。在EuroSys,2011年。谷歌学者谷歌学者数字图书馆数字图书馆
  5. P.库索和R.库索。抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型。POPL,1977年。谷歌学者谷歌学者数字图书馆数字图书馆
  6. P.Cousot、R.Cousot、J.Feret、L.Mauborgne、A.Miné、D.Monniaux和X.Rival。ASTRéE分析仪。在ESOP中,2005年。谷歌学者谷歌学者数字图书馆数字图书馆
  7. D.E.Daniel Dunbar,克里斯蒂安·卡达尔。KLEE:为复杂系统程序自动生成高覆盖率测试。OSDI,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  8. E.Darulova和V.Kuncak。Scala中值得信赖的数值计算。2011年,OOPSLA。谷歌学者谷歌学者数字图书馆数字图书馆
  9. L.De Moura和N.Björner。Z3:高效的SMT求解器。在TACAS,2008年。谷歌学者谷歌学者数字图书馆数字图书馆
  10. D.Delmas、E.Goubault、S.Puto、J.Souyris、K.Tekkal和F.Védrine。在安全关键航空电子软件上实现FLUCTUAT的工业应用。在FMICS中,2009年。谷歌学者谷歌学者数字图书馆数字图书馆
  11. C.F.Fang、T.Chen和R.A.Rutenbar。基于仿射算法的浮点误差分析。ICASSP,2003年。谷歌学者谷歌学者交叉引用交叉引用
  12. C.F.Fang、R.A.Rutenbar、M.Püschel和T.Chen。通过仿射算法建模,对DSP应用中的有限精度效果进行有效的静态分析。DAC,2003年。谷歌学者谷歌学者数字图书馆数字图书馆
  13. M.Fränzle、C.Herde、T.Teige、S.Ratschan和T.Schubert。具有复杂布尔结构的大型非线性算术约束系统的高效求解。JSAT,1(3-4):209--2362007年。谷歌学者谷歌学者
  14. 金融稳定论坛。GMP:GNU多精度算术库/http://gmplib.org/。谷歌学者谷歌学者
  15. 金融稳定论坛。GSL:GNU科学图书馆。http://www.gnu.org/s/gsl/。谷歌学者谷歌学者
  16. V.Ganesh和D.L.Dill。比特向量和数组的一种决策过程。2007年在CAV。谷歌学者谷歌学者数字图书馆数字图书馆
  17. P.Godefroid和J.Kinder。结合静态和动态程序分析,证明浮点计算的内存安全性。ISSTA,2010年。谷歌学者谷歌学者数字图书馆数字图书馆
  18. P.Godefroid、N.Klarlund和K.Sen.DART:定向自动化随机测试。PLDI,2005年。谷歌学者谷歌学者数字图书馆数字图书馆
  19. 每个计算机科学家都应该了解浮点运算。ACM计算调查,23(1),1991年。谷歌学者谷歌学者数字图书馆数字图书馆
  20. E.古堡。浮点运算精度的静态分析。在SAS,2001年。谷歌学者谷歌学者数字图书馆数字图书馆
  21. E.古堡和S.普特。数值算法的静态分析。在SAS,2006年。谷歌学者谷歌学者数字图书馆数字图书馆
  22. J.豪泽。处理数字程序中的浮点异常。托普拉斯,18(2),1996年。谷歌学者谷歌学者数字图书馆数字图书馆
  23. N.J.海姆。数值算法的准确性和稳定性。工业和应用数学学会,第2版,2002年。谷歌学者谷歌学者数字图书馆数字图书馆
  24. IEEE计算机学会。IEEE浮点运算标准,2008年。谷歌学者谷歌学者
  25. D.约瓦诺维奇和L.de Moura。求解非线性算法。2012年,国际JCAR。谷歌学者谷歌学者数字图书馆数字图书馆
  26. W.Kahan。2005年日元/日元(圣杯)的预替代演示。谷歌学者谷歌学者
  27. J.C.金。符号执行和程序测试。ACM通讯,1976年19月。谷歌学者谷歌学者数字图书馆数字图书馆
  28. K.Lakhotia、N.Tillmann、M.Harman和J.De Halleux。FloPSy:用于符号执行的基于搜索的浮点约束求解。ICTSS,2010年。谷歌学者谷歌学者数字图书馆数字图书馆
  29. C.Lattner和V.Adve。LLVM:用于终身程序分析和转换的编译框架。CGO,2004年。谷歌学者谷歌学者数字图书馆数字图书馆
  30. R.Majumdar、I.Saha和Z.Wang。控制应用的系统测试。MEMOCODE,2010年。谷歌学者谷歌学者数字图书馆数字图书馆
  31. 马特尔先生。有限精度计算中舍入误差的传播:一种语义方法。在2002年的ESOP中。谷歌学者谷歌学者数字图书馆数字图书馆
  32. 马特尔先生。回路数值稳定性的静态分析。在SAS,2002年。谷歌学者谷歌学者数字图书馆数字图书馆
  33. Z.Merali。计算科学:。。。错误。。。为什么科学编程不计算。《自然》,467:775-7772010年。谷歌学者谷歌学者交叉引用交叉引用
  34. A.米内。用于检测浮点运行时错误的关系抽象域。在ESOP中,2004年。谷歌学者谷歌学者交叉引用交叉引用
  35. D.蒙尼厄。验证浮点计算的陷阱。托普拉斯,30(3):2008年12月1日-12:41日。谷歌学者谷歌学者数字图书馆数字图书馆
  36. K.L.Palmerius公司。快速、高精度的体积触觉。IEEE世界触觉会议论文集。IEEE,2007年。谷歌学者谷歌学者数字图书馆数字图书馆
  37. P.Rümmer和T.Wahl。二进制浮点运算的SMT-LIB理论。FLoC SMT,2010年。谷歌学者谷歌学者
  38. K.Sen.CUTE:C的混合单元测试引擎。2005年,FSE。谷歌学者谷歌学者数字图书馆数字图书馆
  39. P.H.斯特本斯。浮点计算。普伦蒂斯·霍尔,1974年。谷歌学者谷歌学者
  40. 维基百科。阿丽亚娜5号501航班。http://en.wikipedia.org/维基/Ariane_5_Flight_501。谷歌学者谷歌学者

索引术语

  1. 自动检测浮点异常

                  建议

                  评论

                  登录选项

                  检查您是否可以通过登录凭据或您的机构访问本文。

                  登录

                  完全访问权限

                  • 发布于

                    封面图片ACM会议
                    POPL’13:第40届ACM SIGPLAN-SIGCT编程语言原理年度研讨会论文集
                    2013年1月
                    586页
                    国际标准图书编号:9781450318327
                    内政部:10.1145/2429069
                    • 封面图片ACM SIGPLAN注意事项
                      ACM SIGPLAN通知 第48卷第1期
                      流行'13
                      2013年1月
                      561页
                      国际标准编号:0362-1340
                      EISSN公司:1558-1160
                      内政部:10.1145/2480359
                      期刊目录

                    版权所有©2013 ACM

                    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

                    出版商

                    计算机协会

                    美国纽约州纽约市

                    出版历史

                    • 出版:2013年1月23日

                    权限

                    请求有关此文章的权限。

                    请求权限

                    检查更新

                    限定符

                    • 研究论文

                    接受率

                    总体验收率824属于4,130提交文件,20%

                    即将召开的会议

                    流行乐'25
                    第52届ACM SIGPLAN编程语言原理年会
                    2025年1月19日至25日
                    丹佛,有限公司,美国

                  PDF格式

                  以PDF文件查看或下载。

                  PDF格式

                  电子阅读器

                  使用eReader联机查看。

                  电子阅读器