[发明专利]一种面向多核集群的数据流编译优化方法有效
申请号: | 201410185945.5 | 申请日: | 2014-05-05 |
公开(公告)号: | CN103970580B | 公开(公告)日: | 2017-09-15 |
发明(设计)人: | 于俊清;张维维;唐九飞;何云峰;管涛 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F9/50 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 梁鹏 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 多核 集群 数据流 编译 优化 方法 | ||
技术领域
本发明属于计算机编译技术领域,更具体地,涉及一种面向多核集群的数据流编译优化方法。
背景技术
随着半导体技术的发展,多核处理器已经被验证为开发并行性的一个可行平台。多核集群并行系统以强大的并行计算能力和良好的扩展性成为一种重要的并行计算平台设计。多核集群系统提供了强大的计算处理能力,同时也将更多的负担交给了编译器和编程人员以有效地开发核间的粗粒度并行。数据流编程提供了一种可行的方法来开发多核架构的并行性。在这种模型中,每个结点代表了一个计算任务,每条边代表了计算任务之间的数据流动。每个计算任务都是一个独立的计算单元。它有独立的指令流和地址空间,计算任务之间的数据流动通过先进先出的通信队列来实现。数据流编程模型以数据流模型为基础,以数据流编程语言为实现方式。数据流编译即将数据流编程语言转换为底层目标可执行程序所涉及到的编译技术。其中,编译优化对数据流程序在目标处理核上的运行性能起到了决定性作用。
麻省理工学院编译实验室公开了一种流编程语言StreamIt。该语言基于Java,对Java进行了流扩展引入了Filter概念。Filter是最基本的计算单元,它是一个单输入单输出的程序块。Filter中各个处理过程用Work 来描述,每个Work之间采用Push、Pop和Peek操作以FIFO方式进行通信。同时,针对下一代高性能计算机(Raw)提出了一种流编译优化技术:首先,编译器采用数据分裂和融合相结合的方法,对计算结点进行分裂与融合,以增加计算与通信开销比;然后把处理过后的计算结点映射到各个处理核上,达到负载均衡,各处理核采用流水线的执行方式,处理核间采用显示的通信来实现数据传输。
StreamIt的流编译优化技术为流编程模型在多核处理器上的调度问题提出了一种解决方案。通过将计算任务分配到各个处理核上,实现了负载均衡,确保了计算任务在处理核上的并行执行。但是,存在以下缺陷:(1) 调度到处理核上的各个计算和通信是分离的,在流水线中单独为其分配了独立的通信时间,因此增加了通信的开销;(2)没有考虑到处理核的底层存储分配优化问题和通信优化问题;(3)编译优化方法没有针对多核集群系统底层的体系架构特性进行优化。总之,对多核集群系统而言,它在提供强大计算能力的同时,也向程序员开放了其层次性的存储结构与软件通信机制。现有的流编译优化方法,并没有考虑到底层的体系架构,没有充分利用系统硬件资源如存储资源来提高程序的执行效率。
发明内容
本发明的目的在于提供一种面向多核集群的数据流编译优化方法,针对多核集群系统的架构,对数据流程序进行优化处理,较大程度地提高了数据流程序的执行性能。
本发明采用的优化方法以数据流编译器前端产生的中间表示—同步数据流图作为输入,对其依次进行任务划分与调度、层次性流水线调度、缓存优化三级处理,最后生成可执行代码。具体步骤如下:
(1)确定计算任务与多核集群计算节点以及处理核映射的任务划分与调度步骤
数据流图中的结点代表计算任务,边代表计算任务间的通信。首先,根据集群中节点的数目对同步数据流图进行进程级任务划分,该子步骤采用Group任务划分策略,目标为最小化节点间通信开销最大化程序执行性能,划分时既要考虑负载均衡又要考虑通信开销最小化,将每个计算任务分配到的对应集群节点上。其次,根据每个集群节点上的计算任务,为每个计算任务分配到集群节点的处理核上进行线程级任务划分,该子步骤采用复制分裂算法,将负载大的计算任务进行分裂,目标是实现集群节点内部处理核上的负载均衡。
(2)根据任务划分与调度结果构造集群节点间和集群节内核间的流水线调度的层次流水线调度步骤
同步流水线利用一个全局同步时钟保证流水线各个阶段上的执行任务同时完成,异步软件流水线各个子任务间采用数据驱动的方式执行。首先,对同步数据流图进行异步流水线调度,确定集群节点间的任务执行过程,该步骤将各个进程上的计算任务整体随机映射到集群计算节点上,完成进程与集群节点的映射;其次,根据集群节点内计算任务间的依赖关系,为每个计算任务(结点)以分配其在流水线中的阶段号,完成同步流水线构造;最后,利用以上两种信息,构造层次流水调度表。
(3)根据所述多核处理器的结构特性、集群节点间的通信情况和数据流程序在多核处理器上的执行情况做缓存优化步骤
当计算任务(节点)在执行时,计算任务所在的处理核对缓存的使用会存在伪共享,对程序执行的性能产生较大的影响。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410185945.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:全线路电力设施故障及防盗报警系统
- 下一篇:智能防丢器