当前位置:主页 > 科技论文 > 计算机论文 >

面向多核处理器的数据流程序编译关键技术研究

发布时间:2020-05-26 21:46
【摘要】: 随着多核处理器已经成为主流和工业标准,如何在屏蔽底层细节简化编程的同时充分利用处理器核间的并行性来提高程序性能,已经成为编程的一个巨大挑战。C、C++和Fortran等基于单指令流和统一存储结构的传统编程模型已经无法适应多核处理器结构。基于领域的数据流编程(Dataflow Programming)模型将媒体应用特性与程序设计语言相结合,在简化编程的同时,为编译器在多核处理器下的优化提供了大量的并行性,因此受到广泛的关注。然而,多核处理器间的通信和同步开销以及大量媒体处理应用的实时性要求对程序的性能提出了新的挑战。针对以上数据流程序所面临的实时性和代码的高效性等问题,本文对数据流程序编译所涉及的主要关键技术进行了系统研究。 针对当前数据流语言的语法不易理解和难以编程的问题,设计并实现了一种数据流编程语言DFBrook和相应的编译系统原型。DFBrook通过在标准C语言中扩展数据流模型,实现了数据流和C语言的混合编程。程序员可以通过在C语言中嵌入数据流代码来实现对特定程序模块的数据流执行。编译系统对数据流语言进行识别后,利用同步数据流图作为相应的中间代码表示,同时根据目标系统结构特点,对数据流程序进行并行优化,并生成面向目标多核处理器的多线程代码。 为了减小数据流程序在多核处理器上的通信开销,提出了一种针对实时数据流程序的低通信软件流水调度模型。模型利用整数线性规划理论对软件流水调度中的计算、通信资源以及流水线执行的阶段等进行统一的形式化建模,将低通信软件流水调度问题表示为一个整数线性规划问题MCRO (Minimizing Communication at Rate-Optimal scheduling),在满足实时应用需求的响应时间限制的同时,使处理器核间的通信开销达到最小。通过扩展MCRO调度模型,使之适用于DFBrook语言在Cell处理器上的执行。将MCRO调度方法与传统软件流水的表调度List、PAPS (Periodic Admissable Parallel Schedule)以及RO(Rate Optimal)调度进行性能比较,实验结果表明,MCRO调度比表调度List和PAPS调度在流水线的计算速率和通信开销上都有较大的性能改进,比RO调度在通信开销上也有较大的性能提高。 为了满足多核处理器的内存受限结构,提出了一种面向存储受限结构的软件流水调度方法。方法基于低通信软件流水调度模型,对每个处理器核的存储资源进行扩展建模,将内存受限软件流水的调度表示为一个统一的整数二次规划问题ROMC (Rate-Optimal with Memory Constraints)。通过设计阶段差估计算法将上述二次规划问题转化为整数线性规划问题,从而将ROMC问题分解为一系列的子问题,通过有效地求解每一个子问题,最终得到ROMC问题的有效解。同时,设计阶段赋值调整算法来实现处理器核间的存储开销平衡。实验结果表明,ROMC调度方法与现有的方法能取得更优的调度结果。 为了生成高效的软件流水代码,提出一种面向多核处理器的软件流水代码生成方法和运行时系统设计。代码生成器在模块化的软件流水代码生成框架的基础上,采用单流水核(kernel-only)代码模型来减小代码开销。同时基于Cell处理器给出了运行时系统的设计方法,详细讨论了地址转换和同步支持等问题,实现了软件流水代码和普通代码的生成。 面向多核处理器的数据流程序软件流水编译需要研究的问题还很多。在语言的设计上,需要进一步完善对数据并行的支持、带状态核函数的定义和动态计算速率的支持;在调度模型上,如何实现对带有循环嵌套的数据流程序的软件流水调度是进一步需要研究的问题;在编译时间上,如何简化规划模型,提高求解速度,特别是减小大数据量程序的编译时间,是另一个需要进一步研究的问题。
【图文】:

结构框图,多核,处理器,结构框图


器为编译器在代码调度、局部存储分配、通信管理和同步延迟等方面提供了更大的灵活和优化空间。图2.3为目标多核处理器结构框图,该处理器由一个控制处理器或者主处理器 (Masterprocessor)和若干个数据处理器或者从处理单元 (SlaveproeessingElement)组成。主处理器采用通用的处理器架构,具有较高的主频和2级。ache结构(类似于PowerPC处理核);每个从处理单元含有一个局部存储、DMA和路由设备Router,局部存储用于存放在本处理器上运行代码和数据,DMA用于在各个从处理器的局部存储器间以及局部存储器与片外主存之间传输数据。从处理单元只能访问属于自己的本地存储单元,因此任何数据必须通过DMA进行显式的传输。……熟舜舜 舜舜舜舜 奥奥奥奥奥 奥奥麟麟 DDDMAAAAADMAAAAADMAAA MMMasteFFFFFInterconneCtionnnnnnnnnnnnnnnnnppp代沁 eSSOrrrrrrrrr.只廿哗hlppp门 门 门 门门门 emoryyy图2.3目标多核处理器结构框图程序一般采用主从方式执行:程序开始在主处理器上执行,主处理器产生线程,将线程的数据和代码调度到相应的从处理单元的局部存储中,并触发从处理器运行,从处理器执行相应的代码

软件流水,处理器,例子,流水线


一次循环迭代作为一个任务,被分成若干阶段,,各个阶段在不同的处理器上执行,当一个处理器完成了它负责的阶段后,结果就作为输入传送到流水线中的下一个处理器。图3.2给出了一个基于多核处理器的软件流水调度例子,图左边为一个数据依赖图,Kl执行后利用DMA,将数据传给K2执行,图右边为对应的流水线的调度表。计算任务被分为3个阶段,第0个处理器核执行任务的第一个阶段Kl后,开始立即启动一个新任务,流水线开始是空的。在第0个处理器核完成处理后,结果用DM人传输到第1处理器核
【学位授予单位】:华中科技大学
【学位级别】:博士
【学位授予年份】:2010
【分类号】:TP332

【参考文献】

相关期刊论文 前6条

1 林进,张兆庆,祝明发;基于SIMD机器的优化数据传输的并行循环分割[J];计算机学报;1998年07期

2 吴少刚,章隆兵,蔡飞,顾丽红,唐志敏;机群Open MP系统的设计与实现[J];计算机学报;2004年07期

3 姜伟华,梅超,郭一,朱嘉华,臧斌宇,朱传琪;一种针对多媒体扩展指令集和实际多媒体程序的自动向量化方法[J];计算机学报;2005年08期

4 张兆庆,乔如良;PORT:并行优化重构工具集[J];计算机学报;1994年12期

5 陈永健,舒继武,李建江,王鼎兴;OpenMP指导语句全局嵌套类型的静态分析及应用(英文)[J];软件学报;2005年02期

6 刘_";范彬;吴承勇;张兆庆;;数据流Java并行程序设计模型的设计、实现及运行时优化[J];软件学报;2008年09期



本文编号:2682451

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2682451.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户d219e***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com