[发明专利]一种面向X86多核处理器的数据流程序调度方法有效
| 申请号: | 201410185971.8 | 申请日: | 2014-05-05 | 
| 公开(公告)号: | CN103970602B | 公开(公告)日: | 2017-05-10 | 
| 发明(设计)人: | 于俊清;李鹤;唐九飞;何云峰;管涛 | 申请(专利权)人: | 华中科技大学 | 
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 | 
| 代理公司: | 华中科技大学专利中心42201 | 代理人: | 梁鹏 | 
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 面向 x86 多核 处理器 数据流 程序 调度 方法 | ||
1.一种面向多核的数据流编译优化方法,其特征在于,包括:
确定计算任务与处理器核映射的任务划分与调度步骤;
根据多核处理器的结构特性和数据流程序在多核处理器上的执行情况做核间缓存(Cache)优化步骤;
所述任务划分与调度的步骤具体为:
首先,对输入数据流程序进行预处理,包括扩大调度和融合相邻计算单元;其中扩大调度用于提高目标程序运行时的局部性和并行粒度,融合相邻计算单元用于减少多核间的通信开销;
其次,对预处理后的数据流程序构造软件流水调度,包括任务划分与阶段赋值,其中任务划分用于确定计算单元被调度的处理器核,阶段赋值用于确定计算单元调度的时间顺序。
2.根据权利要求1所述的面向多核的数据流编译优化方法,其特征在于,所述扩大调度的具体步骤为:
首先,扩大调度倍数下限的确定,计算公式为:
其中,TotalCal为目标程序稳态调度总的计算量,N为并行处理器核个数,Wsync为目标系统N个处理器核的同步开销,ratio为计算通信比的阈值,用于减少同步开销对并行调度性能的影响;
其次,扩大调度倍数上限的确定,计算公式为:
其中,TotalComm为目标程序稳态调度计算单元间总的通信量,N为处理器核个数,L1CacheSize为目标系统N个处理器核L1缓存的总量,usage为目标系统L1数据缓存中缓冲区所占比例的阈值,用于限定多处理器的缓 存用于缓存计算单元间通信缓存区数据的大小;
最后,根据上述确定的扩大调度倍数的范围,选择该范围内为2的幂的最大整数作为计算单元扩大调度的倍数。
3.根据权利要求1所述的面向多核的数据流编译优化方法,其特征在于,所述融合相邻计算单元的具体步骤为:
如果目标程序中的两个相邻计算单元都是单输入单输出且无状态的,统计融合操作后相邻计算单元总的计算量BothWork和减少的通信开销BothComm,当计算通信比BothWork/BothComm小于设定阈值时,则对其进行融合操作。
4.根据权利要求1所述的面向多核的数据流编译优化方法,其特征在于,所述任务划分的具体步骤为:
首先,根据目标程序的同步数据流图构造划分图G,其中顶点的权值表示计算负载,边的权值表示通信数据量的大小,并标记节点的可分裂次数;
其次,迭代优化策略改进任务划分结果,使用通用图划分算法对图G进行任务划分,每次选择计算负载最大的可分裂计算单元进行水平分裂,并且记录水平分裂信息和当前的最优划分结果,重复该迭代过程,直至线程间计算负载相对均衡;
最后,撤销不必要的分裂操作,根据迭代优化得到的划分结果,合并由同一个计算单元分裂而得但却被划分到同一子集上的计算单元。
5.根据权利要求1至4任一项所述的面向多核的数据流编译优化方法,其特征在于,所述阶段赋值的具体步骤为:
首先,构造目标同步数据流图的拓扑排序算法构造其拓扑序列;
其次,按照拓扑序列遍历图中的顶点,对每个顶点查看其输入顶点的阶段值和被划分的处理器核编号,如果输入顶点与该顶点被划分到同一处理器核上,该顶点的阶段值必须不小于输入顶点;否则,该顶点的阶段值必须至少比输入顶点的阶段值大1。
6.根据权利要求1至4任一项所述的 面向多核的数据流编译优化方法,其特征在于,所述的核间缓存优化步骤的具体步骤为:
首先,消除核间缓存伪共享;
其次,完成逻辑线程到物理核的映射。
7.根据权利要求6所述的面向多核的数据流编译优化方法,其特征在于,所述消除核间缓存伪共享具体为:
对于滑动窗口机制,采用临时缓冲区和共享缓冲区相结合的方法,数据生产者首先将数据写入临时缓冲区,调度完成后再将临时缓冲区数据拷贝到共享缓冲区;数据消费者首先将共享缓冲区中的数据拷贝到临时缓冲区,调度时访问临时缓冲区,
对于翻转窗口机制,采用二维数组管理通信数据,其最高维的大小由计算任务的阶段差决定,而使用填充方法扩充最低维大小为缓冲的整数倍,并且保证缓冲区在内存中以缓存行的大小对齐的要求分配。
8.根据权利要求6所述的面向多核的数据流编译优化方法,其特征在于,所述的逻辑线程到物理核的映射的具体步骤为:
首先,根据任务划分结果和目标程序的同步数据流图,统计各个逻辑线程之间相邻计算单元的通信数据量大小;
其次,针对目标系统的层次性缓存拓扑结构,使用贪心算法依次选择将相互间通信量最大的逻辑线程,映射到共享同一缓存的物理核上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410185971.8/1.html,转载请声明来源钻瓜专利网。





