多核环境下针对不规则应用程序的非投机并行策略
本文选题:自动并行化 + 编译优化 ; 参考:《华中科技大学》2016年博士论文
【摘要】:多核处理器成为主流的通用处理器,具有计算能力强、功耗低和设计复杂度低等优点。不规则应用程序中含有大量复杂的控制流和数据流,难以充分利用多核处理器带来的宝贵资源。自动并行化技术可有效地解决这一问题,将串行程序转换为可以并发执行的多线程程序,发挥多核潜能。投机并行是自动并行化技术的一个研究热点。研究人员通过在程序中加入投机因素,增加并行的机会。然而,投机并行需要花费额外的代价处理误投机。因此,非投机并行成为新的研究热点。目前,非投机并行可以从不规则应用程序中提取独立多线程、流水线多线程以及环型多线程。但是,当前技术经常面临处理器负载不均衡、扩展性差以及线程间通信延迟敏感等问题。而且,非投机并行主要采用静态分析(编译器),应用程序中由指针别名引起的问题难以解决影响并行程序的执行效率。为了解决上述问题,提出一系列新的措施和解决方案:针对传统环型多线程技术对线程间通信延迟敏感的问题,提出一个自动并行化算法DOcyclial。DOcyclial利用基于优先权的动态调度策略降低线程间通信频率,避免通信延迟出现在并行程序执行的关键路径,增强程序对通信延迟的抵抗性。此外,DOcyclial将基于优先权的动态调度与节点融合策略相结合还可以保持处理器负载尽可能均衡。为了验证DOcyclical算法的有效性,利用两套标准测试程序(SPECCPU2006和StreamIt)分别在二、四、六核处理器进行测试,实验结果表明DOcyclical算法对线程间通信延迟极不敏感。而且,DOcyclical算法可以超过当前经典算法,如DSWP、PS-DSWP和HELIX,平均21-50%、1-27%、15-25%的性能。针对静态分析不能消除程序中冗余的依赖关系且难以对程序执行重用性分析的问题,提出一个动态分析框架DSspirit。DSspirit利用基于哈希的策略消除程序中冗余的数据依赖关系,利用基于值的策略分析程序的重用性,确定经常引起缓存缺失(cache misses)的指令,并向编译器提供可预取的对象。为了验证DSspirit的有效性,利用三套标准测试应用程序(SPEC CPU2006、MPI2007和OMP2012)在Intel i7-4700处理器进行测试。实验结果表明DSspirif可以克服静态分析的缺陷,消除程序中冗余的依赖关系,并提供有预取价值的对象。而且,自动并行化技术中利用动态分析框架DSspirit可以获取平均20%的性能提升。针对缓存缺失(cache misses)总是影响并行程序执行效率的问题,提出一个基于动态分析的预取算法,该算法利用运行时环境确定经常引起缓存缺失的指令,并根据指令的访问特征制定不同的预取方案。为了验证预取算法的有效性,利用两套标准测试程序(SPEC CPU2006和MPI2007)在Intel i7-4700处理器进行测试。实验结果表明预取算法可以明显地提升并行程序的缓存命中率,缩短程序的总体执行时间。为了保证多线程程序对通信延迟不敏感且具有较高的缓存命中率,设计一个自动并行化系统HSparallel,该系统首先利用动态分析框架DSspirit确定具有预取价值的对象,然后利用自动并行化算法DOcyclical避免通信延迟出现在并行程序执行的关键路径,同时利用预取算法提高程序的缓存命中率。为了验证HSparallel的有效性,利用两套标准测试程序(SPEC CPU2006和MPI2007)在Intel i7-4700处理器进行测试。实验结果表明HSparallel可以带来显著的性能提升。而且,HSparallel超过当前主流算法,如Paralax和文献[1,2],平均19%、21%和17%的性能。最后,以上所有算法、框架和系统都完全开发于LLVM编译器,并写入到该编译器的后端。
[Abstract]:In order to solve the above problems , it is difficult to solve this problem by adding speculative factors into the irregular application . It is difficult to make full use of the valuable resources of multi - core processors . In order to verify the effectiveness of the pre - fetch algorithm , the paper designs an automatic parallelizing system HSparallel , which uses two sets of standard test programs ( SPEC CPU2006 and MPI2007 ) to test the performance of the program .
【学位授予单位】:华中科技大学
【学位级别】:博士
【学位授予年份】:2016
【分类号】:TP332
【相似文献】
相关期刊论文 前10条
1 丁晓宁;朱怡安;康继昌;;自动并行化与数据自动迁移[J];计算机科学;2001年11期
2 祁鑫;梁鸿;田世峰;;基于网格的叠前深度偏移程序自动并行化模型[J];实验室研究与探索;2009年06期
3 沈勤华;;可扩展的自动并行化编译系统[J];计算机工程;2009年08期
4 丁锐;赵荣彩;刘晓娴;傅立国;;自动并行化中不规则问题的划分方法[J];信息工程大学学报;2013年02期
5 傅立国;姚远;丁锐;;自动并行化中不规则循环的通信代码生成[J];计算机应用;2014年04期
6 蔡跃进;;分布式环境下的自动并行化调度算法[J];泉州师范学院学报;2010年04期
7 王宏力,邓彬,王忠,邓方林;面向复杂连续系统仿真程序的自动并行化模型及其实现[J];系统仿真学报;1999年01期
8 冯百明,丁晓宁,肖骊,况正谦,康继昌;程序自动并行化过程中的任务划分[J];西北工业大学学报;2000年02期
9 况正谦,傅游,冯百明,康继昌;CFD程序自动并行化的相关性分析和通信策略[J];西北工业大学学报;2000年03期
10 黄凯;刘键;;全自动并行化编译系统中的运行控制[J];计算机工程与科学;1996年04期
相关会议论文 前1条
1 刘超;王希诚;;基于MPI的自动并行化系统的研究与实现[A];2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(下)[C];2006年
相关重要报纸文章 前2条
1 清华大学 郑纬民 陈文光;开发环境—搭建应用的基础[N];计算机世界;2003年
2 陈文光 郑纬民;高性能计算的三大研究领域[N];计算机世界;2006年
相关博士学位论文 前1条
1 闫昭;程序并行识别方法及应用研究[D];吉林大学;2009年
相关硕士学位论文 前6条
1 蔡达;基于OpenACC的自动并行化技术研究[D];中国矿业大学;2016年
2 田世峰;网格环境下面向地震资料处理程序的自动并行化技术研究[D];中国石油大学;2007年
3 刘超;嵌套循环的自动并行化及在MPI平台上的实现[D];大连理工大学;2006年
4 沈勤华;可扩展的自动并行化编译系统Agassiz[D];复旦大学;2008年
5 孙尧;基于SUIF平台的程序自动并行化辅助系统研究[D];吉林大学;2014年
6 马琳;反馈指导的流水计算性能调优[D];中国科学院研究生院(计算技术研究所);2005年
,本文编号:1888888
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/1888888.html