参考英特尔多核平台编程优化大赛报告

参考英特尔多核平台编程优化大赛报告

ID:19569215

大小:94.22 KB

页数:50页

时间:2018-10-03

参考英特尔多核平台编程优化大赛报告_第1页
参考英特尔多核平台编程优化大赛报告_第2页
参考英特尔多核平台编程优化大赛报告_第3页
参考英特尔多核平台编程优化大赛报告_第4页
参考英特尔多核平台编程优化大赛报告_第5页
资源描述:

《参考英特尔多核平台编程优化大赛报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、英特尔多核平台编程优化大赛报告           英特尔多核平台编程优化大赛报告            代码优化前所需时间:4.765秒     代码优化后所需时间:0.25秒(保留小数点后7位精度)               前言     本次优化使用的CPU是IntelXeon5130主频为2.0GHz同Intel酷睿2一样是基于CoreMicroarchitecture     的双核处理器。本次优化在Intel的工具帮助下主要针对CoreMicroarchitecture系列处理器进行优化。但是由于未

2、知原因,Intel     VTuneAnalyzers并不能在该系统下正常工作。所以,所有使用IntelVTuneAnalyzers的测试均使用另外一个奔腾D     820的系统测试。     第一章主要介绍了程序的串行优化。其中有关于Intel编译器使用,以及IntelMathKernelLibrary使用,IntelVTune     Analyzers使用的介绍。在借助Intel工具的帮助下,结合IntelCoreMicroarchitectured的特性。设计出了针对L1     Cache进行优化的

3、,高效率的串行代码。程序的执行时间从优化前的4.765秒达到了优化后的0.765秒。     第二章主要介绍了程序的并行化。首先讨论了2种并行算法的优缺点。然后选择了适合本程序的并行算法进行优化。并且在最后分析了并行化时的性能瓶颈。通过并行化,程序达到了0.437秒。     第三章主要介绍了程序的汇编优化。首先介绍了计算的数学理论。然后介绍了汇编代码的编写。最后进行了性能分析。通过该步优化程序在保留小数点后7位精度的前提下达到了0.312秒的好成绩。并且在Intel酷睿2     E6600上测试达到了0.25

4、秒。     附录A说明了本次报告的目录结构和优化方法。     附录B列出了进行本次竞赛所参考的文献。           目录     一、串行优化....4     1.1代码的基本修改和优化....4     1.2基于Intel编译器的优化....450     1.3使用IntelVTuneAnalyzers进行性能分析....8     1.3.1IntelVTuneAnalyzers概述...8     1.3.2基于SAMPLING方式的分析...9     1.3.3对于本次程序的分析...9

5、     1.4优化computePot函数....10     1.5使用IntelMathKernelLibrary.11     1.6根据Cache大小优化IntelMathKernelLibrary调用....12     1.7优化updatePositions函数....13     1.8其他优化以及性能分析....14     二、并行优化....17     2.1并行优化概述....17     2.2优化方案一....17     2.3优化方案二....17     2.4并行实现...

6、.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%1

7、0==0)printf("%5d:Potential:%20.7f",i,pot);     在进行任何优化前代码的执行时间是4.765秒。     接着把项目转换成使用IntelC++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

8、]);           distz=(r[2][j]-r[2][i])*(r[2][j]-r[2][i]);     执行时间依然为4.531秒。说明Intel编译器已经将pow函数优化掉了。     1.2基于Intel编译器的优化     这里介绍本程序中基于Intel编译器优化技术。其中有些优化参数是可以确定的,有些优化参数需要在程序的不同阶段反复调试以确定最优

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。