[发明专利]通过排序分析检测数值程序中高浮点误差的方法及系统在审
申请号: | 202211537672.7 | 申请日: | 2022-12-02 |
公开(公告)号: | CN115858239A | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 易昕;于恒彪;王争;陈立前;苏醒;姜浩;唐滔;彭林;黄春 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通过 排序 分析 检测 数值 程序 中高 浮点 误差 方法 系统 | ||
本发明公开了一种通过排序分析检测数值程序中高浮点误差的方法及系统,本发明方法包括将待测的数值程序对应的输入域进行区间划分;针对每个区间随机选择多个点计算适应性函数的值并选择值最大的前k个区间;针对前k个区间,基于适应性函数的指导下使用蒙特卡洛采样算法进行搜索k个输入,基于适应性函数计算对应的浮点误差并选取值最大的j个浮点误差,在适应性函数的指导下调用Nelder‑Mead算法进行局部搜索最终结果。本发明基于提出的搜索指导函数对每个被划分的区间进行全面、有效的筛选从而得到最有可能触发高浮点误差的几个区间,在确保高浮点误差检测正确性的基础上极大的提升了性能,能够快速减少搜索空间以加速搜索过程。
技术领域
本发明属于计算机科学与技术中的高性能计算领域,具体涉及一种通过排序分析检测数值程序中高浮点误差的方法及系统。
背景技术
根据IEEE-754标准,浮点数是离散的,实数是连续的。浮点数使用有限的精度表示实数,二者之间存在的舍入误差称为浮点误差。对于具体的某一涉及大量浮点运算的数值程序而言,在大量浮点运算的过程中,数值程序的浮点误差的累积可能会造成高浮点误差,使数值程序最终结果与预期结果不符。在关键系统中,高浮点误差一旦触发,可能会导致灾难性后果。已知的例子有股市混乱、错误的选举结果、火箭发射失败,温哥华证券交易所和斯利普纳海上平台沉没,更有可能造成生命危险。例如在第一次波斯湾战争中,爱国者导弹因为在连续跟踪和制导过程中累计了浮点误差,未能拦截来袭的导弹,造成28人死亡,约100人受伤。若在系统运行前检测出可能触发高浮点误差的输入可以避免很多不必要的损失。
为检测数值程序中可能触发高浮点误差的输入,需要对整个浮点输入域进行搜索。64位双精度浮点数可以表示一个接近(-1.8×10308,1.8×10308)的空间,所以在整个浮点输入域上的搜索成本是非常大的。现有的检测高浮点误差的方法包括:(1)BGRT:二进制指导随机测试,每次迭代将输入域划分为相同大小的两部分,并在抽样测试结果中选择浮点误差较大的部分;(2)LSGA:局部敏感基因算法,基于实证分析的结果提取启发式规则设计了一种新的遗传算法用于指导浮点误差搜索;(3)EAGT:误差分析指导测试,从误差分析和全局搜索中提取通用启发式规则并利用近似计算减少测试时间开销;(4)DEMC:将搜索空间划分为更小的部分,基于条件数指导,使用差分进化算法和马尔科夫链蒙特卡洛算法两种全局优化算法来找到可能触发高浮点误差的输入;(5)ATOMU:基于分析和理解浮点操作过程中如何引入、传播、放大误差的情况下,利用其提出的原子条件及数学上严格分析的条件数,有效地指导搜索大的浮点误差。但是,上述方法存在下述技术问题:(1)BGRT:在每次迭代中丢弃一半的搜索空间,由于采样不完全,实际上包含精确的更高误差的部分可能会被丢弃,这导致局部最大值和低稳定性,特别是对于较大的搜索空间;(2)LSGA:未考虑到特定的精度操作不是通用的,这可能导致很高的误报率;(3)EAGT:使用全局搜索而非穷举搜索,不能保证触发的是最高浮点不准确性;(4)DEMC:搜索成本较大且未处理整个浮点输入域;(5)ATOMU:找到的输入点触发的浮点误差在其邻域内并不总是最大误差。因此,对于快速减少搜索空间以加速搜索数值程序中可能触发高浮点误差这一过程,已成为一项亟待解决的关键技术问题。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种通过排序分析检测数值程序中高浮点误差的方法及系统,本发明基于提出的搜索指导函数对每个被划分的区间进行全面、有效的筛选从而得到最有可能触发高浮点误差的几个区间,在确保高浮点误差检测正确性的基础上极大的提升了性能,能够快速减少搜索空间以加速搜索过程。
为了解决上述技术问题,本发明采用的技术方案为:
一种通过排序分析检测数值程序中高浮点误差的方法,包括:
S101,将待测的数值程序fp(x)对应的输入域Iinit按照2的指数幂进行区间划分;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211537672.7/2.html,转载请声明来源钻瓜专利网。