用户名: 密码: 咨询热线:025-81617169、025-86982200  QQ:279768085、879324637
首页 外语 计算机 考研/MBA 职业培训 文体艺术 基础教育 网络课程
 
资讯 高考 学位学历 出国留学 校园 极速商城 学习资料 论坛
教育时讯 | 高考 | 培训 | 研究生 | 出国 | 中小学 | 远程 | 驾校 | 健身 | 外语 | 计算机 | 学位学历
您的位置计算机 -> 正文
二级C++:怎样提高调用数学函数的程序的性能

http://www.365future.com 2010-8-18 14:21:29 来源: 考试吧(Exam8.com) 点击:0

  MASS 高性能库

  MASS 指的是数学加速子系统(Mathematical Acceleration Subsystem)。它由数学函数组成,这些数学函数是为在各种 IBM 计算平台上优化性能所设定的。MASS 最初是由 IBM 公司在 1995 年启动的,并在随后的发展中继续得到改善,一直到现如今仍然在改进。

  现在所有的 IBM? POWER? 处理器都有相应的各种版本的 MASS,运行 AIX? 或者 Linux? 操作系统。还有其他版本的 IBM System BlueGene?/L 和 IBM System BlueGene?/P 超级电脑,以及 IBM Cell Broadband Engine? (Cell/B.E.?)方案。库包含有元素函数的加速实施方案,例如三角函数以及双曲线函数以及它们的倒数、乘方、对数、指数、错误函数以及其他函数。包含函数的完整列表可以在 IBM Mathematical Acceleration Subsystem 页面中找到。

  有标量的库也有向量的库,而对于 Cell/B.E. 和 POWER7 来说,还有单个指示的多个数据(SIMD)库。注意精确性与例外情况的处理在 MASS 函数与系统库函数中可能是不一样的。对于目标硬件的其他汇编器(例如 gcc)的用户来说,MASS 库与 IBM XL C/C++ 还有 XL Fortran 汇编器封装到一起,并且可以通过 MASS Web 网站来获得。

  可以通过 C、 C++ 或者 Fortran 源程序来访问库。IBM XL C/C++ 与 IBM XL Fortran 汇编器可以识别机会以使用 MASS 来加速源程序,并自动激活它而不用更改源程序。本文向您介绍了怎样实施一项技术帮助您的公司更好地使用这些强大的技术。

  什么程序可以获益?

  任何包含有对数学库函数(例如 exp、 log、sin、cos 等等)调用的 C、C++ 或者 Fortran 程序,潜在意义上都会从本文中所描述的技术中受益。

  什么是自动化向量?

  自动化向量技术是一种过程,在这个过程中 IBM XL C/C++ 或者 Fortran 汇编器会识别一个机会,去改善汇编过程中程序的性能,方法就是将对一次循环中一个标准库(C/C++ 库或者 Fortran 本质)的访问替换为对相应 MASS 向量函数的访问。因为 MASS 向量函数要比对一个标准库函数的重复访问快很多(倍数接近 30 倍),所以最后得到的性能改善效果将会是惊人的。

  一个简单的例子就是为多个论断计算特定函数的循环,例如接下来的 Fortran 程序。

  subroutine sub (y, x, n)

  real*8 y(*), x(*)

  integer n, i

  intrinsic exp

  do i=1,n

  y(i) = exp(x(i)) ! standard intrinsic

  end do

  end subroutine

  有了适当的汇编器选项,汇编器就会意识到机会去给程序加速,方法就是将对 exp() 的重复访问替换为相应的 MASS 向量函数 vexp(),结果会产生一个程序,好像最开始是这样写成的这样:

  include 'massv.include'

  subroutine sub (y, x, n)

  real*8 y(*), x(*)

  integer n

  call vexp (y, x, n) ! MASS vector function

  end subroutine

  这只是一个简单的范例,演示了自动向量化背后的基本思想。XL 汇编器实际上能够识别更加复杂的机会,并在需要的条件下重新安排源程序中的指南,以创建自动向量化的机会。

  在本文中的范例研究部分中,会检查一个更加复杂和实际的范例。

  自动向量化的汇编器选项

  您可以使用以下的几个选项来汇编程序:

  -qhot -qnostrict (for Fortran)

  -qhot -qnostrict –qignerrno (for C/C++)

  -qhot -O3

  -O4

  -O5

  当您在使用这些选项集中的一个时,通过调用等价 MASS 向量函数(除了对以下函数的访问除外:vatan2、vsatan2、 vdnint、 vdint、 vcosisin、vscosisin、vqdrt、vsqdrt、vrqdrt、vsrqdrt、vpopcnt4、vpopcnt8、vexp2、 vexp2m1、vsexp2、 vsexp2m1、vlog2、 vlog21p、 vslog2 和 vslog21p),汇编器会自动尝试对系统数学函数的访问向量化。如果汇编器不能对程序进行向量化,它会自动试着调用等价 MASS 标量函数。对于自动化的标量或者向量,汇编器会使用汇编器库 libxlopt.a 中包含的 MASS 函数的版本。您不需要向代码中的 MASS 函数添加任何特意的调用,或者链接 xlopt 库。

  除了一系列的选项之外,当 -qipa 选项处于可用状态时,如果汇编器不能进行向量化,那么它会试着在决定调用它们之前去内联 MASS 标量函数。

  如果您想要取消自动向量化的激活,那么您可以添加选项 –qhot=novector。

  用例研究

  接下来的部分是一个实际程序的范例 — 一个离散的 Fourier 转变(DFT) — 显示了在汇编不同汇编器选项时的改善结果。程序已经足够简单以方便演示,然后又足够的复杂以提供非琐细的优化机会。

  两个程序的计时都是在附录 3 中给出的驱动器程序完成的,运行的环境是在 4.704 GHz 下运行的 POWER6 电脑。

  附录 1 显示了 Fortran DFT 源程序。它包含了一个嵌套的循环,该循环会调用 exp()、cos() 以及 sin(),接下来是一个调用 sin() 和 sqrt() 的循环。程序会使用 -O3(它并不能进行自动向量化) 并使用 –O4 (它能使用自动向量化)。

  注意自动向量化带来的好处会随着问题规模的增加而增加,最终当问题的规模达到 2000 时加速的程度会达到 8.94x 。

  附录 2 显示了附录 1 中 Fortran DFT 程序的 C 版本(它包含了一个虚 consume() 路径,这样汇编器的内部程序化分析[IPA]就不能看到,计算的结果实际上在演示范例中并没有用得上,并因此可以改善整个的程序)。

  程序将会使用 -O3(它并不会提供自动向量化) ,使用 -O4 (它提供自动向量化),使用 –O5 (它提供自动向量化并提供 IPA)。

  正如在 Fortran 范例中演示的那样,自动向量化带来的好处随着问题规模的增加而增加,最后当 n=2000 的时候达到了。另外,IPA 在 -O5 处提供的活化能够提供一个额外的 1.22x 加速,因为它可以决定输入与输出没有别名(这就是说,它没有在内存中重叠),允许它去向量化进行极坐标的转变。-O5 在 –O3 的基础上加速的程度是 7.33x 。


第 [1]  [2]  [3]  页
[责任编辑: Admin ]
大字 中字 小字】【关闭窗口



正在加载相关新闻,请稍等。。。



正在加载相关评论,请稍等。。。
江苏2012年最新专转本资料8.5折热购中
热门课程

 · 南京昂立中级口译春季班

 · 南京昂立高级口译春季班

 · 欧风小语种法语春季课程

 · 欧风小语种德语春季课程

 · 欧风小语种西班牙语春季课程

 · 欧风小语种意大利语春季课程

 · 欧风小语种葡萄牙语春季课程

 · 南京朝晖-国际美容师全能班

2011年江苏省会计证培训辅导     考证秘籍必看
前程专区 2012国家公务员笔试暑期班
昂立新日语暑期课程火热报名
暑期雅思课程大优惠送学费!
欧风小语种暑期课程预报名活动
凯育法语南京分校
2012国家公务员笔试暑期班
热门网络课程
2011年新东方托福考试VIP班
2011年新东方雅思考试保分班
2011年新东方四六级考试突破班
2011年新东方剑桥商务英语辅导
2011年报关员考试精品辅导班
2011年单证员考试精品辅导班
2011年教师资格考试保过班
2011年公共营养师考试辅导
2011年人力资源师考试辅导
2011年造价工程师精品辅导班
2011年监理工程师精品辅导班
2011年一级建造师考试辅导
2011年二级建造师考试辅导
2011年房地产估价师考试辅导
2011年注册税务师考试辅导
2011年经济师考试精品辅导
2011年银行从业资格考试辅导
2011年证券从业资格考试辅导
2011年审计师考试精品辅导班
成人高考教育网
机构推荐
 · 中国婚庆服务协会江苏省管理办公室
 · 长颈鹿美语南京旗舰校
 · 启凡小语种培训
 · 前程网专转本课程
 · 瑞思学科英语新街口校区
 · 李秋平篮球俱乐部
自考网络辅导
前程关注
[计 算 机]
南京理工大学紫金学院工程软件
[外 语]
南京乐训学校—AP精品课程
[考 研]
苏润考研-2012年考研精品全科
[职业培训]
江苏华图—江苏省农村信用合作
[文体艺术]
天元文化 美术 影视艺术
[基础教育]
学大教育—高一精品课程
报关员、人力资源师、物流师、监理工程师、营养师。。。。各种职业资格培训
在线客服
呼叫中心
江苏招生考试网 江苏民办教育网 江苏留学网 中国教师招聘联盟网 星空教育 金陵人才网 北方集团 留学专搜
龙巢教育网 教育搜索 江苏大学生就业网 江苏民办教育网 江苏教育在线 江苏教育考试书店 中顾法律通
教育部 江苏省教育厅 江苏教育考试院 江苏教育在线 江苏民办教育网 中国江苏网 司法考试 中国高考招生网 中国教育搜索 中国教师招聘
江苏公务员考试网 方向标英语 网课淘 成人高考网 城市学习网 太平洋早教 莆田生活网 学术期刊选评网 奥数网 广西招考网 东莞人才网
上海装潢网 南京赶集网 民办高校查询 点睛英语网 江苏公务员 珠宝典当培训 上海自考 职业资格网 深圳培训 浙江招生考试网 江苏都市网
精选网址导航 广东培训网 飞龙培训网 友情链接站 城市学习网 南京心理咨询网 北京新航道 江西自考网 出国留学网 投顶网 思科认证培训
上海招聘 上海家教 第一培训网 徐州动漫培训 爱打听网 厨师培训 中国现代教育网
说明:首页连接只接受PR≥5的网站首页对等连接,教育培训网优先考虑!其他条件网站需要连接的 请[提交申请]
联系邮件:future_365@126.com 联系电话:025-86982200

网站介绍 | 网站文化 | 服务优势 | 诚聘英才 | 友情链接 | 免责声明 | 广告招商 | 团体培训 | 分站加盟 | 联系我们 |点击这里给我发消息    点击这里给我发消息
国家信息产业部网站经营许可证编号:苏B2-20060075 国家信息产业部备案号:苏ICP备10003297  
江苏省信息化协会会员网站 江苏省互联网协会会员网站
Copyright © 2005-2010 中国前程网 All Rights Reserved
网络支持:江苏教育在线 江苏招生考试网