- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
英特尔多核平台编程优化大赛报告
PAGE PAGE 50英特尔多核平台编程优化大赛报告?????? ????? 英特尔多核平台编程优化大赛报告? ?????? ????? 代码优化前所需时间:4.765秒????? 代码优化后所需时间:0.25秒(保留小数点后7位精度)?????? ???? ????? 前言????? 本次优化使用的CPU是Intel Xeon 5130 主频为2.0GHz 同Intel酷睿2一样是基于Core Microarchitecture ????? 的双核处理器。本次优化在Intel的工具帮助下主要针对Core Microarchitecture 系列处理器进行优化。但是由于未知原因,Intel ????? VTune Analyzers并不能在该系统下正常工作。所以,所有使用Intel VTune Analyzers的测试均使用另外一个奔腾D ????? 820的系统测试。????? 第一章主要介绍了程序的串行优化。其中有关于Intel编译器使用,以及Intel Math Kernel Library使用,Intel VTune ????? Analyzers使用的介绍。在借助Intel工具的帮助下,结合Intel Core Microarchitectured的特性。设计出了针对L1 ????? Cache进行优化的,高效率的串行代码。程序的执行时间从优化前的4.765秒达到了优化后的0.765秒。????? 第二章主要介绍了程序的并行化。首先讨论了2种并行算法的优缺点。然后选择了适合本程序的并行算法进行优化。并且在最后分析了并行化时的性能瓶颈。通过并行化,程序达到了0.437秒。????? 第三章主要介绍了程序的汇编优化。首先介绍了计算的数学理论。然后介绍了汇编代码的编写。最后进行了性能分析。通过该步优化程序在保留小数点后7位精度的前提下达到了0.312秒的好成绩。并且在Intel酷睿2 ????? E6600 上测试达到了0.25秒。????? 附录A 说明了本次报告的目录结构和优化方法。????? 附录B 列出了进行本次竞赛所参考的文献。?????? ????? 目录????? 一、串行优化 4????? 1.1 代码的基本修改和优化 4????? 1.2 基于Intel编译器的优化 4????? 1.3 使用Intel VTune Analyzers进行性能分析 8????? 1.3.1 Intel VTune Analyzers概述... 8????? 1.3.2 基于SAMPLING方式的分析... 9????? 1.3.3 对于本次程序的分析... 9????? 1.4 优化computePot函数 10????? 1.5 使用Intel Math Kernel Library. 11????? 1.6 根据Cache大小优化Intel Math Kernel Library调用 12????? 1.7 优化updatePositions函数 13????? 1.8 其他优化以及性能分析 14????? 二、并行优化 17????? 2.1 并行优化概述 17????? 2.2 优化方案一 17????? 2.3 优化方案二 17????? 2.4 并行实现 18????? 2.5 性能分析 20????? 三、汇编级优化 23????? 3.1 优化目标 23????? 3.2 数学理论 23????? 3.3 汇编码实现 25????? 3.4 性能分析 28????? 3.5 总结 29????? 附录A 目录结构和编译方法 30????? 附录B 参考文献 30?????? ?????? ????? 一、串行优化????? 1.1 代码的基本修改和优化????? 首先根据主办方的要求把代码的输出精度改为小数点后7位。??????????? if (i%10 == 0) printf(%5d: Potential: %20.7f\n, i, pot);????? 在进行任何优化前代码的执行时间是4.765秒。????? 接着把项目转换成使用Intel C++ Compiler,代码的执行时间是4.531秒。????? 然后执行最基本的优化,把代码中的pow函数优化成乘法。代码如下:??????????? distx = (r[0][j] - r[0][i])*(r[0][j] - r[0][i]);??????????? disty = (r[1][j] - r[1][i])*(r[1][j] - r[1][i]);??????????? distz = (r[2][j] - r[2][
文档评论(0)