欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    科学计算当中的高精度浮点运算Word文档格式.docx

    • 资源ID:5680836       资源大小:369.44KB        全文页数:16页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    科学计算当中的高精度浮点运算Word文档格式.docx

    1、在其他一些情况下,包括从物理和数学的应用,更高水平的精度是必要的,从数百到数千位。重要的是要记住这里非常少数的目前参与技术计算的科学家和工程师谁是有严格的数值分析背景中。更重要的是,这种稀缺的数值技术有可能恶化,如果没有改善的话,在未来,部分原因是由于缺乏对数值计算有兴趣的学生和年轻的研究人员 22。因此,虽然有些人可能认为,敏感的数值计算可以通过使用不同的算法或编码技术,而在实践中这种变化是非常容易出错而且人力成本非常昂贵。换句话说,使用高精度算法克服这些困难,通常将更容易,更便宜和更可靠,即使其他的补救措施在理论上是可行的。本文将着重于高精度的浮点数而不是整数运算。然而,应该注意的是,高精

    2、度(即多字)整数运算在所有的舞台上本身就是一个非常有趣的,有众多的应用在纯数学和应用数学。例如,当登录到一个安全网站购买书或电脑配件,浏览器软件进行高精度的整数计算交流信用卡号码和其他安全信息。与此密切相关的技术是在大整数分解算法进行的研究,其中最近我们已经取得了几个显著的进展。一个很好的参考这是最近出版的兰德尔和波默朗斯的一本书 17 。在crandall-pomerance书中描述的mathe-matica的算法的实现可从2、高精度软件进行高精度浮点运算的软件包在早期的计算当中就已经实现。例如,李察布兰特写的一个软件包20世纪70年代以来就开始被使用 14。然而,许多这些软件包需要重写。很

    3、难作出这样的改变,以及难以调试产生的代码,这阻止了只有少数科学家能够利用这种软件。在过去几年中,高精度的软件包已产生,包括高级语言的接口,使这种转换相对不那么困难。这些软件包通常利用自定义的数据类型,运算符重载的特点,现在在语言如C+和Fortran-90上也可以,转换很方便。更先进的高精度计算在商业软件mathematica和 Maple中是可以的。这些产品以非常自然的方式将任意精度算术,在纯数学和应用数学中,延伸到了一个范围广泛的先进功能。这些软件包在一些方面中是非常有用的,但他们一般没有专业高精度的计算软件包快,同时在Fortran-90或C+编程中提到,他们没有提供一种手段,利用高精度

    4、的计算设施来转换现有的科研项目。一些高精度的计算软件包例子,在互联网上免费提供的有下面这些(按字母顺序列出)。ARPREC, DDFUN, QD and MPFUN90在作者的网站上可以得到:http:/crd.lbl.gov/dhbailey/mpdist or from http:/www.expmath.info. ARPREC.这个软件包包括例程,执行任意高度(但需设定)的精度水平的运算,包括许多代数和超越函数。高级语言的接口对于C+和Fortran-90是可行的,配套整数和复杂数据类型。该软件由Xiaoye S. Li and Brandon Thompson.编写。DDFUN.这个

    5、软件包在所有fortran-90环境中,提供了双倍(约31位数)算法。高级语言的接口支持实数,整数和复杂数据类型。这个软胶包的速度远远超过正在使用的任意精度或在应用中的31个数字足够够的quad-double软件,而且往往比在一些语言系统中使用的real*16数据类型更快。FMLIB 和 FMZM90. FMLIB是低层次的多精度库,并提供高级语言接口。同时FMZM90为实数,整数和复杂数据类型提供高级Fortran-90语言接口。这个软件是由戴维斯密的忠臣大学编写。在以下网站可以得到:/myweb.lmu.edu/dmsmith/fmlib.html。GMP.该软件包包括一个广泛的库例程,支

    6、持高精度的整数,有理数和浮点计算。GMP由一个志愿者的努力下变成,由自由软件基金会在GNU许可下发行,在以下网站可得到:Predicates. 这是一个专为执行敏感数值的高精度包,经常出现在计算几何中。这个软件是由加州大学伯克利分校的乔纳森编写的,并可在一下网址获得:/www-2.cs.cmu.edu/quake/robust.html.QD.这个软件包包括例程执行“double-double”(约31位)和“quad-double”(约62位数)算法。高级语言的接口对C+和Fortran-90是可以的,支持实数,整数和复杂数据类型。QD软件包速度远远超过应用在31个或62个数字是足够的使用任

    7、意精度的软件。该软件由Xiaoye S. Li 和Yozo Hida编写。MPFR. 该MPFR库是C软件包用于多精度浮点舍入精确计算,并基于GMP多精度库。更多信息在一下网站了解:/www.mpfr.orgMPFR+.这是一个MPFR的高级C+接口。更多信息可在一下网站获取:/perso.ens-lyon.fr/nathalie.revol/software.htmlMPFUN90. 这在用户水平功能上相当于ARPREC,但完全是用Fortran-90编写的并且提供了一个Fortran-90语言接口。VPA.这个软件包提供了一个任意精度的功能和FORTRAN语言接口。该软件是由J.L. Sc

    8、honfelder of N.A.和 Software of the U.K编写,在以下网站可以获得:/pcwww.liv.ac.uk/vpa20.htm这些软件包当中很多都包括示例应用程序。例如,ARPREC 和 MPFUN90软件包包括程序,实现“PSLQ”算法的整数关系检测(见第10和11)。该ARPREC 、 MPFUN90和包包括高精度项目计算积分。沿着这条线,它现在可以计算许多出现在精度要求非常高数学或物理中的积分,即使在被积函数有奇异点,如垂直衍生物或无限价值的终点的情况下。当这些高精度的集成方案,结合整数关系检测方法,它往往是可能获得的分析评价积分的,否则没有已知的解决方案 9

    9、,10 。采用高精度软件与使用传统精度机器相比肯定增加了计算机的运行时间。例如,使用双精度计算一般比普通的64位的计算长五倍。quad-double计算中这个数字将上升到25倍,100位就算时将在50倍以上。超过位精度,为精度的计算代价与位相比将大约增加到倍。之后,增加的成本大约为(假设是使用快速繁殖,这是有可能的例如在ARPREC 和 MPFUN90中)。幸运的是,它往往是整个计算不必要采用高精度。往往是一个关键的循环,需要高精度。我们现在将描述一些利用高精度的算法的科学应用。3、气候建模。众所周知,天气或气候模拟是从根本上是杂乱无序的。如果在一定的时期内当前状况有了微观改变,未来状态的模拟

    10、是完全不同的。事实上,这些计算的整体需要从这些计算中得到较准确的全球气候变化趋势。因此,参与气候建模应用计算机科学家,他们的代码使自己偏离任何“基线”计算,即使他们只改变使用的处理器数量运行代码。因此,它不仅是很难研究比较的结果,在决定是否他们已经正确的在给定系统上部署他们的代码的问题上往往是有问题的。最近,在的两个研究人员,海伦他和克里斯丁,调查了在一个广泛使用的气候模型代码中的无重复性现象。他们发现,几乎所有的数值变化都发生在一个内积回路中的大气数据同化的一步,和一个大的共轭梯度算法的类似的操作中。HE和Ding发现一个简单的解决方案是在这些循环中采用double - double运算(使

    11、用包以上)。这一变化,大大减少了整个应用程序中的数值变异,使电脑运行相比以前有更长的运行时间。他们的工作细节可以阅读 21。回想起来,这是不明确的,以这种方式处理这些款项是最好的方法,而在同一时间产生重复的结果,可能有其他的方式保证有意义的数值精度。这种现象值得进一步研究和完善,并正在研究当中。但同时,HE和Ding的解决方案是处理这个问题的一个简单而有效的方式。4、超新星的模拟最近Edward Baron, Peter Hauschildt, 和 Peter Nugent用包,提供了double - double(128位或31-digit)和quad-double(256位或62-digi

    12、t)数据类型,解决了非局部热动平衡人口的铁和其他原子在大气层的超新星和其他天体物理对象 11,20 。例如铁在大气的外层可能存在二价铁,但在内部四价铁或五价铁占主导。引入人工限导致数值问题,因此有必要同时解决所有这些群体。由于相对人口的任何国家主导的阶段是成正比的指数的电离能,动态范围内,这些数值可以非常大。为了处理这一潜在的非常大的动态范围,同时在合理的时间内执行计算,Baron, Hauschildt 和 Nugent采用动态的计划,以确定是否使用位、128位或64位位运算中构建矩阵元素和求解线性系统256位算术代码运行的时间成为总运行时间的很大一部分。所以正在计划制定一个减少这些运行时间

    13、的更快的256位版本。我们应该在这里指出,在处理量子计算的原子物种时的数值困难很多年以前就已经存在。现在的美国能源部高级项目经理Michael Strayer回忆,利用一个可变长度的精密设备早在60年代末就在的604上进行过相似计算 26。5、库仑N原子模拟最近使用的高精度算法的许多计算都用来研究原子库仑系统。例如,在加拿大安大略女王大学的阿列克谢弗罗洛夫,使用了高精度的软件求解广义特征值,其中矩阵与很大(通常是50005000大小)并且非常近简并。直到最近,在这一领域的进展受这些几乎退化矩阵的数值困难严重阻碍。弗罗洛夫使用MPFUN包做了他的计算,数值精度水平超过100位数。弗罗洛夫指出:“

    14、这样考虑和解决束缚态少体问题在四年前已经超出了我们的想象。”他还用MPFUN计算哈密顿矩阵矩阵元素和重叠矩阵的四和五体原子问题。未来计划包括在光分解和散射问题中推广使用这种方法。作为这个日期,弗罗洛夫写了一个共有21个基于高精度计算的文件。两个证明的例子见 7和 18。6、研究物理的精细结构常数过去的几年中,在利用高精度的算法得到薛定谔方程的锂原子精确,已取得重大进展。特别是,基态能量已计算精度几部分一兆,1500的提供超过了以前的最好结果。利用这些高度精确的波函数,Zong-Chao Yan和其他人能够测试相对论和量子电动力学效应在百万分之50(百万分之一)水平,同时也是在一个水平 27。沿

    15、着这条线,一些性能的锂和类似离子也被计算,包括一定的共振跃迁的同位素位移的振子强度,在一些国家的色散系数和米尔奥-波尔德效应的锂原子。理论计算氦原子的精细结构劈裂在现在已经到了晚期阶段,高度精确的实验现在正在计划当中。当一些额外的计算完成,一个独特的原子物理价值的精细结构常数可能获得的精度为16每10亿 28。7、电磁散射理论计算研究电磁散射的一个关键操作是找到分支点的渐近展开的椭球波函数。牛顿迭代通常是用在这里。不幸的是,用传统的64位的计算牛顿迭代得到结果的准确性大大限制了可被研究的波函数的范围。最近Ben Barrowes用MPFUN包,大大延长了一系列的可被研究波函数的范围 12。这种

    16、计算需要转换大量的现有代码,它提供了便利的ortran-90语言翻译模块的MPFUN包。然而,在这方面的工作,arrowes发现任意精度的版本的ortran-90需要数组操作。然后他与作者合作实现了这些阵列功能,现在这些可以作为一个可选的部分mpfun90包。8、涡面卷曲的模拟高精度算法有时被用来试图解决复杂的现象与流体流动。例如,在1993年卡夫利使用32,64甚至128-digit算术研究奇异下形成的三维不可压缩欧拉流 16。一个流体力学的长期问题是是否流体进行涡面卷曲呈一个真正的权力的法律螺旋。最近使用和90包对这个问题进行了调查。如2节提到,利用这些软件包,计算成本将乘以一个大因素。对

    17、于这个问题,所得的计算,是相当长时间甚至是标准精度,在单处理器系统的高精度算法中变得很昂贵。然而,研究人员(罗伯特红,李察佩尔兹和作者)能够在高度并行64个处理器上执行计算。计算多达10000cpu-hours。这样做的结果计算表明,当一个重要的参数是减少到低于0.02时,不再是一个光滑的螺旋,而是发展的“水泡”(见图1),这不仅是精度不够。目前,这些“水泡”还没有得到很好的理解,进一步调查见 8。9、计算几何与网格生成网格生成轮廓绘图和其他一些计算几何的应用非常依赖高精度算法。这是因为小数值错误可以导致几何级不正确的结果。这种困难数学公式中常用计算固有的,不能轻易解决。例如,威廉卡汉约瑟达西

    18、表明小数值错误的计算最近的点到一个给定的点线交叉的两架飞机可以导致计算点到目前为止从飞机排除解决方案的正确合理的扰动的原始问题 23。常用的计算几何运算是定位试验和内测试。定位试验试图明确确定一个点是否位于左侧,以正确的,或在直线或平面的其他定义点。以类似的方式,一个内试验确定一个点是否是内,外,或在图1:使用quad-double算法的上卷涡流计算。“水泡”不仅仅是物体的精度不够。圆的其他定义点。所有这些测试通常是进行评估行列式表示的坐标点的符号。如果这些坐标表示为单或双精度浮点数,舍入误差可能导致不正确的结果时,真正的决定因素接近零。反过来,这个错误可以导致申请失败或产生不正确的结果,如上

    19、面提到的。为了纠正这些问题,乔纳森开发了一个软件包,执行“自适应”的浮点运算,动态增加数值精确直到得到一个明确的结果。这个软件和一些相关的信息,这种类型的应用程序是公开见在2节中给出的软件列表中的Predicates。10、计算数论目前数学研究的一个活跃领域,已应用密码等领域的,是计算数论。这些计算往往涉及高精度算法的一般和特别高精度浮点运算。例如,目前已知最大的明确的素数,即(有七百万位数)最近通过lucas-lehmer试验被证实。这个测试需要非常大整数运算,进而利用快速傅立叶变换(FFT)来执行乘法运算,因为这些乘法仅仅是大型线性卷积( 17)。原来,这些大小的卷积可以通过有限的数值精度

    20、和运算可靠的算出来,除非在每个字储存内,只储存了一些简单的字,从而浪费内存。因此例如快速两双算法,在这些计算上,有一个明显的优势。数学理论中的许多问题是围绕Rie-mann zeta 函数:其中除其他外编码都与关素数分布有密切关系。例如,目前计算古典函数(x)已知最好的方法是,素数个数不超过x,涉及计算。沿着这条线,威尔高威观察到,使用64位的算术计算分数只允许一个准确计算(x),从x到(见 17)。因此,利用高精度浮点运算有相当大的意义,其中应允许研究人员按向前沿知识即11。实验数学高精度计算已被证明在新兴学科的数学实验中是一个必不可少的工具的,即使用现代计算技术作为活性剂在数学研究中的探索

    21、 13 1。一个关键的技术用在这里是PSLQ整数关系检测算法,通过一组数值用来探索线性关系 3。整数关系计算中输入向量需要非常高精度才能得到有意义的数值结果。计算与数百位是典型的,虽然在一个极端的例子种,50000-digit算术需要获得所需的结果 4。PSLQ最著名的应用数学实验是1995发现,通过计算机,被称为“BBP”的公式:这个公式具有显着的特点,它允许从第n位开始计算二进制或十六进制,而不需要首先计算第n-1位,使用一个简单的计划,且只需要很少的内存和多精度算术软件 2 13,第135-143。该公式最近发现了一个实际应用,现在被用于g95FORTRAN编译器作为超越函数评价软件的一

    22、部分。1995以来,使用基于PALQ的计算方法,这种类型的许多其他公式相继被发现,并随后被证明 13,第147-149。这些发现的一个例子见图2,包括最近发现的:在图2中的的意思是“身份”已被发现和数值验证到了2000-digit的准确性。但没有正式的证据还不知道。此外,它已经发现,这些计算机发现的公式对古老的问题是否(和为什么)和log2等数字常数似乎是随机统计学 5 13,第163-174。这些发展已经吸引了相当大的注意,包括在美国科学和科学新闻上的专题文章, 19,24 。这一系列的调查进一步导致了一个正式的证明(在特定意义上的统计随机性)的一个不可数无穷类明确的实数。最简单的例子,这个

    23、类是面向对象的常数该例是在:每串的二进制数字的出现,在限制,频率都限制在 6 13,第174-178。一个有效的伪随机数发生器,基于该频率的二进制数字,可从LBNL高精度软件网站获得:/crd.lbl.gov/dhbailey/mpdist.12。在量子场论中的常数识别几年前,英国物理学家戴维布罗德赫斯特发现应用高精度PSLQ计算量子场论 15。特别地,他发现,使用图2:高精度计算下的一些新的数学发现PSLQ计算,在每个十例单位或零质量,有限的标量环四面体真空费曼图降低了个“字”,重积分代表字母表中的7个字母,即形式:和其中是原始的第六个单位根,同时k从0到5。在这种情况下,一个“字”是一个四

    24、维迭代积分,如:有74个四字节的词。这里面只有两个能够在原始条件下发生在3循环环费曼图中:从图表中我们发现在较少循环的费曼图中,剩余项的常数结果也减少。这十种情况如图3所示。在这些图中,点粒子的静止质量显示为零。使用PSLQ,该公已被发现,相应的常数在图4。在这里,常数在每一种情况下,这些公式后来被证明是正确的。但直到“实验”的计算结果被发现时,没有人有任何坚实的理由相信这种关系可能存在。事实上,“实验”这个形容词是比较合适的,因为计算与常规实验室实验发挥了作用完全类似(只是一个至关重要)图3:十个四面体的例子、结论我们在这里提出一个在现代科学计算中迅速扩大使用高精度算法简短的调查。值得注意的

    25、是,所有这些例子已经出现在过去的十年。因此,我们可以看到科学计算这个新时代的诞生,在计算精度要求的计算是中程序设计的算法和数据结构是非常重要的。图4:由公式发现的图3的十个例子在一个方面,这也许不是巧合,在高精度的计算已经出现在同一时期,一个共同的努力在许多科学计算的高度并行和分布式系统上已实施。这些系统比以前提供了更大规模的运行,极大地放大的数值困难。此外,即使在单处理器系统中,内存和性能已经大大扩展(在半导体技术中穆尔定律的礼物),使更大的计算与几年前相比是可行的。这很可能是在这些系统正在执行的其他计算显著的数值困难,但那些使用这些代码的没有意识到这些困难的程度。随着使用高精度算法相对简单

    26、的转换程序软件的出现,现在可以定期运行大型科学计算与双或更高精度的算法,以确定如何保证结果是真实性。事实上,目前可用于高精度算法的软件工具可以用来在每个阶段的数值错误管理:(1)定期检测科学的代码,看看它是否变变为了敏感数值;(2)确定有多少位的结果(中间或最终)是可靠的;(3)用几行代码降低数值困难;(4)发现整流数值困难。本文描述的软件和其他地方在短期来看将帮助科学家,从长远来看,至关重要的是,计算机厂商意识到需要提供硬件和软件支持高精度算法。一个国际委员会已经形成更新的IEEE - 754浮点运算标准;128位的支持是标准草案的一个关键条款。这个委员会也正在考虑建立标准的任意精度算术。这

    27、些都是受欢迎和需要及时发展的。鸣谢作者承认许多同事在准备这篇文章的贡献,包括:Ed Baron, Ben Barrowes, Jonathan Borwein; Richard Crandall, Chris Ding, Alexei Frolov, William Kahan, Peter Nugent, Michael Strayer and Zong-Chao Yan.参考文献:1 David H. Bailey, “Integer Relation Detection,” Computing in Science and Engineering, Jan-Feb., 2000, pg.

    28、 2428.2 David H. Bailey, Peter B. Borwein, and Simon Plouffe, “On the Rapid Computation of Various Polylogarithmic Constants,” Mathematics of Computation, vol. 66, no. 218 (Apr 1997), pg. 903913.3 David H. Bailey and David Broadhurst, “Parallel Integer Relation Detection: Techniques and Applications,” Mathematics of Computation, vol. 70, no. 236 (2000), pg. 17191736.4 David H. Bailey and David J. Broadhurst, “A Seventeenth-Order Polylogarithm Ladder,” http:/crd.lbl.gov/dhbailey/dhbpapers/ladder.pdf (1999).5 David H. Bailey and Richard E. Crandall, “On the Random Character of Fundamental Con


    注意事项

    本文(科学计算当中的高精度浮点运算Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开