电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Linux利用多核多线程进行程序优化VIP免费

Linux利用多核多线程进行程序优化_第1页
1/12
Linux利用多核多线程进行程序优化_第2页
2/12
Linux利用多核多线程进行程序优化_第3页
3/12
利用多核多线程进行程序优化简介:大家也许还记得2005年3月C++大师HerbSutter在Dr.Dobb’sJournal上发表了一篇名为《免费的午餐已经结束》的文章。文章指出:现在的程序员对效率、伸缩性、吞吐量等一系列性能指标相当忽视,很多性能问题都仰仗越来越快的CPU来解决。但CPU的速度在不久的将来,即将偏离摩尔定律的轨迹,并达到一定的极限。所以,越来越多的应用程序将不得不直面性能问题,而解决这些问题的办法就是采用并发编程技术。样例程序程序功能:求从1一直到APPLE_MAX_VALUE(100000000)相加累计的和,并赋值给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_VALUE100000000#defineMSECOND1000000structapple{unsignedlonglonga;unsignedlonglongb;};structorange{inta[ORANGE_MAX_VALUE];intb[ORANGE_MAX_VALUE];};intmain(intargc,constchar*argv[]){//insertcodehere...structappletest;structorangetest1;for(sum=0;sum=VkM:在结束测试之前,测量值的最大数量。按照升序的方式维护一个K个最快时间的数组,对于每一个新的测量值,如果比当前K处的值更快,则用最新的值替换数组中的元素K,然后再进行升序排序,持续不断的进行该过程,并满足误差标准,此时就称测量值已经收敛。如果M次后,不能满足误差标准,则称为不能收敛。在接下来的所有试验中,采用K=10,ε=2%,M=200来获取程序运行时间,同时也对K次最优测量方法进行了改进,不是采用最小值来表示程序执行的时间,而是采用K次测量值的平均值来表示程序的真正运行时间。由于采用的误差ε比较大,在所有试验程序的时间收集过程中,均能收敛,但也能说明问题。为了可移植性,采用gettimeofday()来获取系统时钟(systemclock)时间,可以精确到微秒。回页首测试环境硬件:联想Dual-core双核机器,主频2.4G,内存2G软件:SuseLinunxEnterprise10,内核版本:linux-2.6.16回页首软件优化的三个层次医生治病首先要望闻问切,然后才确定病因,最后再对症下药,如果胡乱医治一通,不死也残废。说起来大家都懂的道理,但在软件优化过程中,往往都喜欢犯这样的错误。不分青红皂白,一上来这里改改,那里改改,其结果往往不如人意。一般将软件优化可分为三个层次:系统层面,应用层面及微架构层面。首先从宏观进行考虑,进行望闻问切,即系统层面的优化,把所有与程序相关的信息收集上来,确定病因。确定病因后,开始从微观上进行优化,即进行应用层面和微架构方面的优化。1.系统层面的优化:内存不够,CPU速度过慢,系统中进程过多等2.应用层面的优化:算法优化、并行设计等3.微架构层面的优化:分支预测、数据结构优化、指令优化等软件优化可以在应用开发的任一阶段进行,当然越早越好,这样以后的麻烦就会少很多。在实际应用程序中,采用最多的是应用层面的优化,也会采用微架构层面的优化。将某些优化和维护成本进行对比,往往选择的都是后者。如分支预测优化和指令优化,在大型应用程序中,往往采用的比较少,因为维护成本过高。本文将从应用层面和微架构层面,对样例程序进行优化。对于应用层面的优化,将采用多线...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部