- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用超高速缓存cache提高并行速度
露广玉
00088)
(北京应用物理与计算数学研究所,北京8009信箱u分箱,l
U点L盟堕型裂坐茧也堑■回簋埘望到
摘要本文通过三维大气传输程序研究了各种FFT程序的并行效率。给出了各自的并行计算
结果。在此基础上,又研究了使用超高速缓存cache提高并行速度的方法,并给出了提高并行
效率的计算结果。
关键词并行程序FFT变换超高速缓存
一、 弓l言.
在激光、高功率微波、无线电、……等研究领域,经常用快速傅立叶变换求解方程,这就
要用FFT程序进行计算,当在数值模拟中频繁使用FFT程序,就要花费大量的计算时间。目前
在使用计算机进行数值模拟,并行技术和并行计算机可以提高计算效率。重点和难度是解决
FFT程序的并行效率。我们先后使用四种FFT程序:算法进行了优化即改进FFT程序;非2“
次方法FFT程序;向量化的FFT程序;开发计算机数学库中的FFT程序。用于研究其并行化效
率。与此同时,使用超高速缓存cache提高并行速度也是非常重要的。
二、使用各种FFT程序的情况
先后使用四种FFT程序:算法进行了优化即改进FFT程序:非2”次方法FFT程序;向量
化的FFT程序:开发数学库中的FFT程序。用于研究其并行化效率,计算结果如下;(CPU时
间为秒)
表1.x.Y平面分点128x128,Z方向64点
CPU个数改进FFT非2”次FFT向量化FFT库FFT(N)
串行 21.66 23.70 28.16 19.17
1 21.74 25.50 29.95 18.48
2 21.36 24.76 27.62 17.20
4 20.26 22.78 27.87 17.74
6 21.68 25.34 28.79 19.65
8 25.44 27.82 29.92 23.01
表l中数学库中的FFT程序并未并行,如果进行并行编译,计算结果如下
袭2.X,Y平面分点128x128,Z方向64点
串行 21.66 23.70 28.16 19.17
1 21. 74 25.50 29.95 18.57
2 21.36 24.76 27.62 13.21
4 20.26 22.78 27.87 9.52
6 21.68 25.34 28.79 8.12
8 25.44 27.82 29.92 9.86
从上面两个表中可以看出库中的FFT程序并行效率比较高一些。
三、使用超高速缓存cache提高并行速度
编写循环时必须考虑到超高速缓存(cache)对并行或非并行执行的作用,这是种很好
的编程策略。最佳利用超高速缓存性能的方法足,使引用数组的循环步,按数组在内存中排列
的顺序一致起来。要求通过数组的步进没有任何间隔,而最左的F标是变化最快的。有关充分
利用cache的办法比较多…“…。激光大气传输程序利用F面两种方法:
1.循环交换
把数组的最左下标作为最内层循环,使其数组最左下标变化最快,可以保证从内存按数组
列把数组元素取出来放入cache中。另外,对多重循环尽量并行最外层循环,使其在并行区域
内得到最大工作量。例如:
交换循环顺序前 交换循环顺序后
do i21,n doj=1.n
doj=l,n dok=1.rl
dok=l,n doi=1.11
a(I,j)2a(I,j)+b(I,j)%c(k,j)
a(I,j)=a(I,j)+b(I,J)%c(k,J)
文档评论(0)