首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 公开“英特尔多核平台编程优化大赛”优化报告及源代码
【标  题】:公开“英特尔多核平台编程优化大赛”优化报告及源代码
【关键字】:
【来  源】:http://blog.csdn.net/lanphaday/archive/2007/01/20/1488295.aspx

公开“英特尔多核平台编程优化大赛”优化报告及源代码

公开“英特尔多核平台编程优化大赛”优化报告及源代码

本系列文章欢迎转载、打印、分发等,但不可用于商业用途,任何时候必须保留全文完整,并声明转载自恋花蝶的博客(http://blog.csdn.net/lanphaday),谢谢。 

       这次Intel的优化比赛时间比较长,所以我也能够在周未和晚上的业余时间里参加了这个比赛,感觉学到很多东西,所以就在CSDN论坛上号召大家公开各自己的优化报告和源代码,得到了大家的响应,这让我由衷地高兴。参加比赛的很多高手,达到了匪夷所思的速度,这些公开的优化报告和源代码,必定能够增进大家的知识,我很乐意参与比赛,更乐意公开自己的优化报告和源代码。

        在比赛中,我通过以面若干种优化方法优化后,我还尝试了手写SSE2进行汇编优化,但因为并不十熟悉汇编,所以没有能够成功。为了方便查看,制作了下面的数据比对表:
优化方法                                     运行时间                                        加速比(相对于上一种优化) 
最初未优化版本                              4.55s                                               -- 
用乘法替换pow函数                      3.28                                                1.38 
启用SSE2                                       2.84                                                1.15 
使用ICC                                          1.99                                                1.42 
使用MKL vdInvSqrt函数                 1.21                                               1.64 
使用OpenMP,static调度             0.95                                               1.27 
使用OpenMP,guided调度,倒序循环 0.64                                     1.48 
使用/fp:fast参数,针对CPU优化,利用数学公式减少常数运算 0.57 1.12 
提高cache命中率                           0.51                                                  1.11
 
参照上表,我们可以看出用乘法替换pow函数、使用ICC、使用MKL和使用guided调用方法和倒序循环取得了极佳的优化效果,这些对以我们以后在其它工作中进行优化提供了高阶的指导方针。

因为使用WPS进行排版的文档粘贴到CSDNblog时效果不好,所以变成上图那样了,呵呵,大家可以下载完整版本的文档跟源码来查看。下面是文档的目录:

程序编译和运行的方法                                                                                                  1
1、编辑环境:                                                                                                                   1
2、编译步骤:                                                                                                                   1
3、运行方法:                                                                                                                   3
优化工作的主要步骤与优化方法的说明                                                                    3
1、Vtune分析热点,替换pow函数为两数相乘的宏,减少变量使用                         4
2、启用SSE2优化                                                                                                            4
3、使用ICC                                                                                                                       5
4、使用MKL vdInvSqrt()函数                                                                                          5
5、并行,OpenMP的ShowTime                                                                                   5
6、新并行!TProfiler临危救主!                                                                                   6
7、零碎而有效的几点优化方式                                                                                      7
8、Vtune,王者归来,提高cache命中率                                                                    7
数据比对                                                                                                                            7
参赛感受                                                                                                                            8

 大家可以从以下地址下载优化报告和源代码压缩包:

http://www.cppblog.com/Files/laiyonghao/LaiYonghao_potential.rar

(7)'c++:COMPLETE REFERENCE' 第一部分 第一章(c语言概述) 第六节:【上一篇】
(6)'c++:COMPLETE REFERENCE' 第一部分 第一章(c语言概述) 第五节:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • FTTB+NAT+DHCP+pppoe+CBAC+vpn client+AAA
  • 游戏学院培养游戏开发人才
  • 传奇 升级武器心得
  • asp(1)论坛
  • Delphi 对象链接与嵌入(二)
  • 利用动网漏洞,获得ADMIN权限
  • 一个关于 GUI、Window manager、Desktop、Interface 几个概念的问
  • 技术--oracle维护手册
  • 嵌入式操作系统的调试 (1)
  • 扼紧中国的咽喉
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.