站内搜索: 

关于我们

《数学大世界》杂志简介 简介信息: 《数学大世界》是经国家新闻出版总署批准,创刊于1994年。为了进一步深化新课程改革,促进学术交流、促进数学专业教育人才的快速成长,《数学大世界》杂志社将隆重推出以面向大、中、小学教师和教科研人员为主要读者对象的教学辅导刊物,为广大数学爱好者提供一个相互促进、共同探究的交流平台。 《数学大世界》为月刊,国内刊号...>>更多

2021年8月刊

您的位置:首页 > 2021年8月刊

一个浮点数学函数库测试
信息来源:《数学大世界》杂志社官方网站 发表时间: 2021/9/23 阅读数:164

一个浮点数学函数库测试

实现语言的选择

数学函数库的实现通常要与具体应用平台挂钩,可以通过C语言,Fortran语言等高级语言实现,也可以由汇编语言实现.采用汇编语言实现,更能满足函数的高性能要求,但也给实现带来了难度,盂要编程人员了解更多底层体系结构的设计和对体系结构上汇编语言的熟练掌握,同时给后续函数分析加大了难度上述数学函数库实现过程中面临的困难,同样也是对数学函数库进行测试所面临的困难.虽然有学者认为,敏感的数值计算可以通过使用不同的算法或编码技术实现[26],但浮点运算在实现过程中非常容易出错,而且这样的操作需要耗费大蜇的人力和财力.而采用更高精度的算法是保证计算正确性的更容易、更便宜和更可靠的方法[26],但要验证计算(包括高精度算法)的正确性,需要大量可靠的测试才能完成而相对千数学函数库算法和实现的发展,测试技术的研究却显得较为缺乏当前的测试研究可以分为两类:

一类是利用形式化方法验证函数正确性的研究,如FlorianBenz等人利用二进制翻译技术实现的动态程序分析方法;Boldo,Akbarpour等人对初等函数正确性的证明,CoqGappa工具在程序验证方面的应用等这类方法理论性强,但实现困难另一类是针对浮点计算或部分函数实现的测试工具,如测试基千C语言或Java语言实现的部分初等函数的ELEFUNT工具;测试基千C语言和Fortran语言实现的基本运算和部分初等函数的UCBTEST工具;Berkeley大学研发的浮点测试工具,Kahan实现的floating-pointbenchmarkParanoia等这些测试工具都只针对正确性和精度进行测试,属于Cody[40J对精度测试技术的分类:基于表驱动技术、基于更高精度和基千预选恒等式的方法此外,如Olofsson[411提出的针对GNU函数库实现的针对性测试,也同样存在应用的局限性,无法直接对不同的函数库进行测试.目前,大量用于测试函数技术指标的测试工具的测试并不全面;同时,基于本文的了解,在性能测试方面并没有发现相关的数学函数库测试工具.

针对上述测试方法普遍存在的应用局限性问题以及理论验证在实际应用中的困难,研究如何对不同目标体系结构的各种类型的库函数进行正确性测试、精度测试和性能测试,提供一体化的综合测试平台,显得尤为重要鉴于此,本文实现了一个浮点数学函数库的一体化测试平台BMltest,并给出了具体的测试方法及测试结果评价方案,主要贡献如下:

1当前,测试技术的研究都集中在精度测试方面,忽略了对性能测试的研究,而函数库在科学计算中的应用要求是高精度和高性能并存如何准确有效地对函数性能进行测试,摆脱测试过程中的性能干扰,也是重要的问题.BMltest平台在实现精度测试的基础上实现了相应的性能测试方法,确保了测试的完整性,形成了全面统一的测试平台.该平台可提供模块化可定制的测试流程,可根据需求对测试流程中的基本算法、数据集、结果评价等模块进行修改或扩充,增强了测试的可扩展性和可复用性,

2.基千IEEE-754标准生成了符合浮点数分布的、规范化的全浮点域指数分布测试数据集,有效提高了精度测试中浮点数的稷盖率;同时,测试集的数据与函数做到了相关性的极大分离,保证了测试方法的适用性(可应用千不同语言不同体系结构的各类数学库);

3.提出了基于多精度库MPFR的精度测试方法和基于代码隔离的性能测试方法,提高了精度测试的可靠性和性能测试的准确性;

4.针对BMltest平台的测试结果,给出了基千雷达图的精度测试结果分析方法和基千4D检测的性能测试结果分析方法,以全面直观地衡量函数库运行指标,使整个测试更为完整,适用性更强.

本文第1节对一体化测试平台的测试框架进行阐述,并引出研究过程中的4点需要解决的问题.针对这4种问题,第2节对新的数据集进行详细说明,重点阐述基千IEEE-754浮点数分布的全浮点域指数分布测试集的生成方法第3节给出具体的测试方法针对其测试结果在第4节给出合理有效的结果评价方案通过第5节的实验测试,分别验证新的数据集的有效性、精度测试方法的可靠性以及性能测试方法的准确性.最后,利用第6节对全文工作进行总结分析对比

360 百度 中国知网 全网目录