linux利用多核多线程进行程序优化

linux利用多核多线程进行程序优化

ID:8806257

大小:348.80 KB

页数:13页

时间:2018-04-08

linux利用多核多线程进行程序优化_第1页
linux利用多核多线程进行程序优化_第2页
linux利用多核多线程进行程序优化_第3页
linux利用多核多线程进行程序优化_第4页
linux利用多核多线程进行程序优化_第5页
资源描述:

《linux利用多核多线程进行程序优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、利用多核多线程进行程序优化简介: 大家也许还记得2005年3月C++大师HerbSutter在Dr.Dobb’sJournal上发表了一篇名为《免费的午餐已经结束》的文章。文章指出:现在的程序员对效率、伸缩性、吞吐量等一系列性能指标相当忽视,很多性能问题都仰仗越来越快的CPU来解决。但CPU的速度在不久的将来,即将偏离摩尔定律的轨迹,并达到一定的极限。所以,越来越多的应用程序将不得不直面性能问题,而解决这些问题的办法就是采用并发编程技术。样例程序程序功能:求从1一直到 APPLE_MAX_VALUE(10000000

2、0) 相加累计的和,并赋值给apple的 a 和 b ;求orange数据结构中的a[i]+b[i]的和,循环 ORANGE_MAX_VALUE (1000000) 次。说明:1.由于样例程序是从实际应用中抽象出来的模型,所以本文不会进行test.a=test.b=test.b+sum、中间变量(查找表)等类似的优化。2.以下所有程序片断均为部分代码,完整代码请参看本文最下面的附件。清单1.样例程序#defineORANGE_MAX_VALUE1000000#defineAPPLE_MAX_VALUE10000000

3、0#defineMSECOND1000000structapple{unsignedlonglonga;unsignedlonglongb;};structorange{inta[ORANGE_MAX_VALUE];intb[ORANGE_MAX_VALUE];};intmain(intargc,constchar*argv[]){//insertcodehere...structappletest;structorangetest1;for(sum=0;sum

4、.a+=sum;test.b+=sum;}sum=0;for(index=0;index

5、(K-Best)方法”,要求设置三个参数:K:要求在某个接近最快值范围内的测量值数量。ε测量值必须多大程度的接近,即测量值按照升序标号V1,V2,V3,…,Vi,…,同时必须满足(1+ε)Vi>=VkM:在结束测试之前,测量值的最大数量。按照升序的方式维护一个K个最快时间的数组,对于每一个新的测量值,如果比当前K处的值更快,则用最新的值替换数组中的元素K,然后再进行升序排序,持续不断的进行该过程,并满足误差标准,此时就称测量值已经收敛。如果M次后,不能满足误差标准,则称为不能收敛。在接下来的所有试验中,采用K=10,

6、ε=2%,M=200来获取程序运行时间,同时也对K次最优测量方法进行了改进,不是采用最小值来表示程序执行的时间,而是采用K次测量值的平均值来表示程序的真正运行时间。由于采用的误差ε比较大,在所有试验程序的时间收集过程中,均能收敛,但也能说明问题。为了可移植性,采用gettimeofday()来获取系统时钟(systemclock)时间,可以精确到微秒。回页首测试环境硬件:联想Dual-core双核机器,主频2.4G,内存2G软件:SuseLinunxEnterprise10,内核版本:linux-2.6.16回页首软

7、件优化的三个层次医生治病首先要望闻问切,然后才确定病因,最后再对症下药,如果胡乱医治一通,不死也残废。说起来大家都懂的道理,但在软件优化过程中,往往都喜欢犯这样的错误。不分青红皂白,一上来这里改改,那里改改,其结果往往不如人意。一般将软件优化可分为三个层次:系统层面,应用层面及微架构层面。首先从宏观进行考虑,进行望闻问切,即系统层面的优化,把所有与程序相关的信息收集上来,确定病因。确定病因后,开始从微观上进行优化,即进行应用层面和微架构方面的优化。1.系统层面的优化:内存不够,CPU速度过慢,系统中进程过多等2.应用

8、层面的优化:算法优化、并行设计等3.微架构层面的优化:分支预测、数据结构优化、指令优化等软件优化可以在应用开发的任一阶段进行,当然越早越好,这样以后的麻烦就会少很多。在实际应用程序中,采用最多的是应用层面的优化,也会采用微架构层面的优化。将某些优化和维护成本进行对比,往往选择的都是后者。如分支预测优化和指令优化,在大型应用程序中,往往采用的比较

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

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

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