面向高性能计算应用的基础数学函数可靠性研究

来源 :中国人民解放军信息工程大学 解放军信息工程大学 | 被引量 : 0次 | 上传用户:abcdef13333
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
伴随着计算机系统的飞速发展,软件在系统中发挥的作用日益关键。因软件可靠性问题造成的事故和灾难已屡见不鲜。与此同时,在高性能计算领域,高性能计算应用软件无法跟上高性能计算机硬件体系结构发展步伐的问题已受到各方关注,应用的局限性已严重降低了高性能计算机的使用率,针对应用软件性能、可靠性等方面的研究正进入研究人员的视野。基础数学函数作为高性能计算软件中的基础软件,众多领域的高性能应用都依赖于基础数学函数的计算结果,其计算结果对众多领域的高性能应用都起着决定性作用,因此其可靠性问题不容忽视。针对基础数学函数可靠性面临的问题,本文主要从认知基础数学函数特征和可靠性、评价基础数学函数可靠性、提高基础数学函数可靠性和验证基础数学函数可靠性四个方面进行研究,意在回答什么是基础数学函数可靠性,基础数学函数可靠性包括哪些内容,如何评价基础数学函数可靠性的高低,如何提高基础数学函数可靠性,如何验证基础数学函数可靠性的问题。本研究主要内容包括:  ⑴在认知基础数学函数特征和可靠性方面,给出了基础数学函数可靠性的定义,明确了基础数学函数可靠性需要研究的内容。在此基础上,对从10个不同领域的高性能计算应用和以SPECfp2006为主的22个浮点基准测试程序中获取的26708条真实调用的基础数学函数信息进行了详细分析,从函数类型、调用模式、使用习惯三个方面研究发现了一些有益的结论并提出了一些对研究基础数学函数和高性能应用开发有用的建议。根据部分建议明确了本文研究的主体函数应为基础数学函数中的三角、指数、对数等双精度函数,研究的内容应主要包括异常处理等。  ⑵在评价基础数学函数可靠性方面,提出了一种基础数学函数可靠性模型----SN模型,该模型根据函数失效类型对数学函数可靠性影响程度的不同引入了影响因子,同时采用了指数分布数据生成方法等技术,增强了计算可靠性估计值的准确性。此外,结合数学函数的数学特性,对输入子集的出现概率进行了分类,使得利用模型计算函数可靠性的过程更趋近于函数的真实使用状态。通过对不同实现方式实现的数学函数的测试表明,与Nelson模型相比该模型的可靠性预估值更准确,对输入数据量的依赖更小,有效缓解了Nelson模型输入数据的随机选取具有盲目性和局限性的问题。此外,本文还实现了一个基于符号执行和动态插桩的基础数学函数输入子集判定方法,该方法首先通过符号执行找到程序中所包含的所有运行路径且根据不同路径给出具体输入;其次,根据已知输入进行单边折半扩展,并利用动态插桩确定运行路径,以确定每一条运行路径对应的输入边界点。该方法能够准确获取程序不同运行分支的输入子集,在程序测试、误差分析与检测等领域都将有广泛的应用。  ⑶在提高基础数学函数可靠性方面,主要通过异常处理方法提高设计阶段基础数学函数的可靠性,通过低误差的实现方法提高实现阶段基础数学函数的可靠性。在设计阶段,本文利用寄存器运算快的特点实现了浮点异常的编码;利用浮点函数计算集中的特点实现了一个基于核心运算隔离技术的分段式异常处理方法。该方法以准确处理各类异常为首要目标,并辅以将异常处理对函数性能的干扰降到最低的要求,充分利用各类异常伴随的错误码不同,可能触发的位置不同,触发条件不同的特点,围绕核心运算,将异常分为三个阶段进行处理:输入参数处理阶段,通过对输入参数的检测,保证进入核心运算的参数不会触发INV异常;特定代码检测阶段,在核心运算执行过程中检测并处理可能出现的DZE异常和INF异常;输出结果处理阶段,在核心运算后检测可能出现的FPF异常和DNO异常。该方法应用于Mlib浮点函数库,对库中600多个面向不同平台的浮点函数进行了测试。测试结果表明,该方法能够将出现浮点异常即中断的函数个数占总函数个数的比例从90%降到0%。在实现阶段,本文首先对四则运算的误差、定律及性质进行了分析,并基于运算规则实现了一种不依赖于外部资源的误差计算方法,在同等误差计算能力下运行更快于基于更高精度的误差计算方法。在此基础上,结合基础数学函数算法特点,以低误差的幂运算和求和运算为主体研究实现了一种适用于基础数学函数的低误差计算方法。该方法成功应用于Mlib浮点函数库中,与同功能相似算法实现的GNU函数库函数相比能够使函数误差平均降低8.1%、最大误差降低28.66%。此外,在gcc的4.5.1版本中测试出了一种舍入错误,该错误说明在某些特定环境下浮点数的四则运算并不可靠。  ⑷在基础数学函数可靠性验证方面,提出了面向多目标体系结构,全面可复用的一体化测试方法BMltest。测试方法结合函数特征值、IEEE-754特殊数,及利用浮点数生成规则实现的全浮点域指数分布的IEEE-754规范数构造了测试集,有效提高了测试集浮点数的覆盖率;提出了基于多精度库MPFR的精度测试方法,提高了精度测试的可靠性;提出了基于代码隔离的性能测试方法,最大限度地降低了外部环境对性能测试的干扰。针对大量的浮点测试结果,给出了合理的结果评价方案。测试方法使用的测试集数据与函数做到了相关性的极大分离,保证了测试方法的普适性,通过对包括GNU、Open64及Mlib函数库内所有855个函数的测试表明,BMltest方法的测试数据集更全面有效,精度测试方法更可靠,与其它测试方法相比,性能测试结果更准确稳定。
其他文献
组合仿真是根据特定的仿真需求重用已有仿真组件的技术,在节约仿真系统开发时间,提高系统开发效率,降低系统开发复杂度方面作用明显。目前,研究学者已经提出一些组合仿真相关的理
近年来,随着P2P应用的不断扩展,P2P网络技术成为业界关注的一个热点。国内各高校都在积极研究如何将P2P网络技术应用到网络教育上,即充分应用P2P网络的分布性、交互性、扩展性、
虚拟仪器(Virtual Instruments, VI)充分利用现有计算机资源,配以独特设计的软硬件,实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能。“软件即仪器”的思想实现
秘密共享是应用密码学领域的研究热点,它改变了传统的单人加密/解密、签名和认证模式,能够分散责任,防止权威欺骗,提高系统的安全性,对重要信息的安全保存、传输及合法利用具
本课题针对于“数据结构”的教学现状,规范了类C语言的定义,并在此基础上设计实现了将类C语言源算法翻译成可执行的C语言目标程序的编译器——LC/C编译器。定义的类C语言,其
指纹具有唯一性和不变性,所以指纹识别一直是个人身份鉴别最有效的方法之一。自动指纹识别系统是图像处理和模式识别领域里的一个重要研究课题,具有很高的应用价值和市场前景
随着目前信息技术不断发展,现代计算机系统无论是在自身的结构和设计属性还是系统的使用模式上都变得越来越复杂。特别是近几年来高速互联网络的普及和计算机处理能力的飞跃
Web服务作为一种开放的业务提供方式,以松耦合、语言无关、平台独立等特点,得到了工业界和学术界的广泛认可。Web服务已经成为Internet和下一代互联网信启、和服务的主要提供
当前随着网络的普及,通过网络的计算机犯罪也随之而来,这促使了一大批网络安全产品的出现与发展。但是当前市场的各种各样的,例如防火墙、入侵检测、网管系统、审计类产品等往往
数据挖掘作为当前的热门研究领域,已广泛应用于科学研究和商业预测等领域,拟从大量的数据中提取潜在的、人们感兴趣的、有用的信息。数据分类是数据挖掘的一个重要分支,按照