欢迎来到天天文库
浏览记录
ID:32721185
大小:3.37 MB
页数:75页
时间:2019-02-15
《多核平台上的并行程序性能调优技术与工具》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中国科学技术大学学位论文原创性声明本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确的说明。作者签名:!至3j兰中国科学技术大学学位论文授权使用声明作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。本人提交的电子文档的内
2、容和纸质论文的内容相一致。保密的学位论文在解密后也遵守此规定。/日公开口保密(——年)作者签名:!习至量导师签名:签字日期:垫!!:篁!三皇签字日期:釜!旦:!:堡第1章绪论1.1研究背景目前,片上多核(ChipMuRiProeessor,CMP)成为处理器设计的主流。为了将增加的处理器核转变为实际的性能提升,多线程编程方法就变得更加重要。在并行编程实践中,如何获得实际的高性能已经超出了传统的理论分析的能力:通过运行程序来进行在线监测的性能剖析与调优的方法就变得尤其重要。l11多核处理器平台的发展在过去40多年里,VLSI工艺以接近Moore定律预测的速度发展。1980年代中期以来,微处理器
3、的时钟频率提高了超过100倍,而片上集成的晶体管容量则增加了10,000多倍。这两个方面技术的不断进步,开启了通用处理器性能高速增长的时代。一方面,主频的提高可咀直接转化成处理器的性能提升;掘统计,20世纪末时钟频率提高带来的好处占总性能提升的80%。另一方面,晶体管集成度的提高有效支持了处理器的结构改进,如超标量结构、分支预测技术、大容量cache等,可以有效挖掘指令集并行性或者很好地利用数据访问局部性原理改善存储延迟。这段时间里,以Intel的Pentium4阻inton,20011和DEC的Alpha21264(Kessler,1999);为代表,单个处理器核的性能达到了极致。MOOR
4、E·sLAW~⋯“⋯9;,I。,。==::少/{{00r⋯⋯/㈣。琴歹一》@.⋯*,ooo?:,oo彤蠢纛IlO,OOo⋯,‘一j,。,。。,。。。j磊5,薪诌9。面:?”图11Intel的处理器发展历史与摩尔定律尽管这些技术获得了巨大成功,但是在2005年左右,上述传统的手段已经第l章绪论发展到了接近极限——时钟频率逼近了功耗和技术允许的上限,而受限于应用本身的指令并行度,晶体管的集成度的提高不再能有效转换成实际性能。这种背景下,寻求更大粒度并行性的片上多核技术被主流处理器厂商认同并广泛采用。时至今日,片上多核已经成为微处理器的发展趋势;图1.2所示为Intel公司的多核/众核发展路线图(
5、Geer,2005)。T伽翘∞2∞5200720∞20;l20i3图1.22885年Intel的多该处理器发辰路线图I系统总线je1rMemory豳辱)∞@C私ac有helIC私ac有helC私ac有helC私ac有heI系统总线3e1FMemory豳图1.3两种典型的CMP结构示意图在多核时代,以处理器核为单位在单个芯片上集成更多的晶体管,而不是采用复杂的电路设计和利用大量额外的资源来对单核性能进行各种激进的优化。图1.3为典型的CMP处理器系统,其中(a)中各个处理器核拥有完全独立的cache2第1章绪论分层,(b)中各处理器核共享最外层cache。无论如何,它们都是完全对称的。在CMP
6、中,每个执行核都可以独立地执行自己的硬件线程,同时通过共享存储的方式来进行各线程之间的通信。要将新增加的处理器核转换成实际的性能,需要有足够多的可以并行执行的任务,也就是说CMP是以硬件多线程(ChipMulti.Threading,CMT)的方式来提高系统性能的。对于一个特定的应用而言,要提高其性能,关键在于将其有效地并行化。1.1.2多核平台上的并行编程早在上世纪五六十年代,随着并行计算机的诞生,并行编程就已经开始发展。在过去的50年间,计算机科学家在并行编程和并行算法方面进行了大量的研究;并且,在超级计算机中并行的方法一直都是达到高性能的主要手段。在单个处理器核的性能不再能够显著提高,
7、片上多核的趋势成为主流的今天,任务级或者线程级的并行变得前所未有的重要。在CMP中,处理器可以支持其执行核数目的线程(或者单线程进程)并行执行,这是CMP结构的最主要特点。而对于开发者来说,多核平台上的高效编程就是利用线程级并行(ThreadLevelParallelism,TLP)的方法来获得程序性能的提高。目前,适合在CMP平台上使用的并行编程模式包括MPI、OpenMP、Pthreads等;其中MPI实
此文档下载收益归作者所有