第十二章程序的优化.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章 程序的优化 Since the fabric of the universe is most perfect, and is the work of a most wise Creater, nothing whatsoever takes place in the universe in which some relation of maximum and minimum does not appear… Leonard Euler 1707-1783 目标 约束 权衡 提高程序的执行效率 代价 花时间 有可能影响程序的运行结果(特别是浮点运算) 有可能损害程序可读性 什么时候需要优化执行效率? 现有的表现不能满足需求时才考虑优化 从何处着手优化? 瓶颈(bottleneck)、热点(hotspot) 首先保证程序能正确运行 Profile, VTune (一定要用具体的数据进行测试) fea 提高程序执行效率的方法 算法层次 例如:求解线性代数方程组 直接算法、迭代算法、波前法、分快解法… 例如:排序算法 bubble, hill, pile, quick sort… 例如:整数优化 穷举法、动态规划、分支定界、启发式算法… 并行算法 … 提高程序执行效率的方法 数据结构层次 exam_12_1 合理的数据结构 稀疏矩阵的存储方法(满阵、等带宽、变带宽…) … 注意系统缓存(L2、L3 Cache) 牺牲内存来换取效率——尽量减少磁盘文件操作… 和CPU、内存相比磁盘是一个很慢的设备 suc.exe 提高程序执行效率的方法 提高磁盘的读写速度 从软件上提高磁盘文件操作的速度 从硬件上提高磁盘的读写速度(转速、缓存、接口) IDE(ATA100, ATA133…)、SATA(I, II, …)、 SCSI(…)、 Raid0 选用unformatted或binary存储格式 增加磁盘缓存 exam_12_2 提高程序执行效率的方法 选择优秀的编译器 合理的编码(非编译器层次) 循环(hoisting) 减少分支语句(pipline, prefetch, out of order) 和CPU相关的底层操作(比如使用汇编语言) … exam_12_3 代码层次 /comm/research.nsf/pages/psci.warren.html 计算机内各部件的执行速度 常用设备带宽的比较 前端总线(FSB) 800MHz(6.4GB/s) 直接内存存取(DMA) 二级缓存 外设总线 3.0 GHz DDR400(3.2GB/s) 133MB/s 60MB/s 7.8MB/s 6GB/s AMD Opteron (1M L2 Cache) Intel Dothan (2M L2 Cache) i7 CPU内置三级Cache 取指令 分析指令 执行指令 存结果 取指令 分析指令 执行指令 存结果 取指令 分析指令 执行指令 存结果 取指令 分析指令 执行指令 存结果 取指令 分析指令 执行指令 存结果 计算机指令流水线(管线、Pipeline) 分枝预测 管线级数越多,并行化越好,预测出错后的损失越大 频率越高,速度越快,发热量越大

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档