- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
科学计算当中的高精度浮点运算
David H. Bailey 2005年 1 月 25 H :
目前,IEEE的64位浮点运算在大多数科学应用当中足够精确。然而,对于 快速增长的重要科学计算应用中,需要更高水平的数值精度:其中的一些应用 需要大约两倍于现在的水平;其他的需要四倍;而还有一些人为了获得有意义 的数值结果需要数百或更多位数。新的高精度的软件包,包括用来减少转换工 作的高级语言翻译模块为这样的计算提供了便利的。在不同领域里包括量子理 论,气候建模与数学实验,这些活动已经产生了一些有趣的新的科学成果,其 中一些将在本文中所描述。这些进展表明,在未来,用于科学计算的数值精度 同程序设计的算法和数据结构一样重要。
关键词:高精度算法,数学实验,气候模拟,量子理论,计算化学,计算物理 说明:
这项工作由计算技术研究,离散数学数学,信息,美国计算科学和能源部 支持,合同号:DE-AC03-76SF00098
1、序言
儿乎所有的现代计算机系统,从个人计算机到最大的超级计算机,实现了 64位浮点运算标准,提供53个尾数位,或大约16位十进制精度。对于大多数科 学应用来说,这是绰绰有余的,以及一些应用程序,如常规试验数据的处理, 即使是32位的标准往往也恩能提供足够的精度。
然而,对于一个迅速扩大的应用机构,64位的算术将不再是足够的。这些 范围从一些有趣的新的数学计算到在高性能并行超级计算机上进行的大型物理 模拟。在这些应用中,部分包括敏感的计算数值的常规代码,使用常规算法产 生结果的准确性有问题。这些不准确地结果可能反过来导致其他错误,如在一 个条件分支上错误的路径。
一些困难,这种类型的可能是通过改变基本的算法或改变某些操作的顺序 从而被修改,其中一些操作可移执行。但在其他情况下,这种修正是有效的, 其中一些问题,是正常水平的两倍,大约32-digit精度是足够的。在其他情况 下,四倍的正常水平是必要的,或大约六十四位数的精度。在其他一些情况下, 包括从物理和数学的应用,更高水平的精度是必要的,从数百到数千位。
重要的是要记住这里非常少数的目前参与技术计算的科学家和工程师谁是 有严格的数值分析背景中。更重要的是,这种稀缺的数值技术有可能恶化,如 果没有改善的话,在未来,部分原因是由于缺乏对数值计算有兴趣的学生和年 轻的研究人员[22] o因此,虽然有些人可能认为,敏感的数值计算可以通过 使用不同的算法或编码技术,而在实践中这种变化是非常容易岀错而且人力成 本非常昂贵。换句话说,使用高精度算法克服这些困难,通常将更容易,更便 宜和更可靠,即使其他的补救措施在理论上是可行的。
本文将着重于高精度的浮点数而不是整数运算。然而,应该注意的是,高 精度(即多字)整数运算在所有的舞台上本身就是一个非常有趣的,有众多的 应用在纯数学和应用数学。例如,当登录到一个安全网站购买书或电脑配件, 浏览器软件进行高精度的整数计算交流信用卡号码和其他安全信息。与此密切 相关的技术是在大整数分解算法进行的研究,其中最近我们C经取得了儿个显 著的进展。一个很好的参考这是最近岀版的兰德尔和波默朗斯的一本书[17]。 在crandal 1-pomerance书中描述的mathe-matica的算法的实现可从 .perfsci. software.htm 找至 I」。
2、高精度软件
进行高精度浮点运算的软件包在早期的计算当中就己经实现。例如,李察布兰 特写的一个软件包20世纪70年代以来就开始被使用[14]o然而,许多这些软件 包需要重写。很难作出这样的改变,以及难以调试产乞的代码,这阻止了只有 少数科学家能够利用这种软件。在过去几年中,高精度的软件包已产生,包括 高级语言的接口,使这种转换相对不那么困难。这些软件包通常利用自定义的 数据类型,运算符重载的特点,现在在语言如C++和Fortran-90上也可以,转换 很方便。
更先进的高精度计算在-商业软件mathematics和Maple中是可以的。这些产 品以非常自然的方式将任意精度算术,在纯数学和应用数学中,延伸到了一个 范围广泛的先进功能。这些软件包在一些方面中是非常有用的,但他们一般没 有专业高精度的计算软件包快,同时在Fortran-90^C+编程中提到,他们没有 提供一种手段,利用高精度的计算设施来转换现有的科研项目。
一些高精度的计算软件包例子,在互联网上免费提供的有下面这些(按字 母顺序列出)。ARPREC, DDFUN, QD and MPFUN90在 的网站上可以得到: crd. lbl. govAdhbai 1 ey/ mpd i s t or from . expmath .info. ? ARPREC.这个软件包包括例程,执行任意高度(但需设定)的精度水平的运算, 包括
文档评论(0)