[发明专利]基于加权控制流图的前瞻线程划分方法无效
申请号: | 201210491456.3 | 申请日: | 2012-11-28 |
公开(公告)号: | CN102968295A | 公开(公告)日: | 2013-03-13 |
发明(设计)人: | 李川;杨洪斌;吴悦 | 申请(专利权)人: | 上海大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海上大专利事务所(普通合伙) 31205 | 代理人: | 何文欣 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 加权 控制 前瞻 线程 划分 方法 | ||
技术领域
本发明涉及基于加权控制流图(WCFG)的前瞻线程划分方法,属于计算机技术领域。
背景技术
随着单片多核处理器(CMP)的发展,多核技术已经在许多应用方面都得到普及。但是,由于现在的大部分软件都采用串行模式,因此如何充分发挥CMP的优势来加速串行程序的执行已成为众多应用领域共同关注的问题。
线程级前瞻( Thread-Level Speculation, TLS)技术在不确定的情况下,提前创建并推测执行一些将来需要执行的线程,通过前瞻执行和相应的前瞻错误检测机制,可以去除冗余的数据同步、发现并维护真正的数据相关, 从而降低线程划分的难度,提高程序的执行效率,使得在多核上加速传统上难以手工或自动并行化的串行程序成为可能。高效的线程划分方法离不开线程级前瞻执行的支持。
另外线程的划分又需要编译和体系结构的紧密配合,这是因为借助编译过程的一些优化策略可以降低线程划分复杂度,而体系结构不仅是承接线程划分结果实现线程级并行的载体,而且其中的一些参数,线程控制和前瞻执行的延迟开销等也是线程划分时确定启发式规则的重要依据。同时,线程划分的过程中也要兼顾线程的体积,线程间的控制和数据相关性,线程间的访存负载平衡等。只有体积相近,控制和数据相关性小,负载均衡的线程才能发挥多线程系统的性能。
发明内容
本发明目的在于针对现有技术存在问题,提供一种相对较好的前瞻线程划分方法——基于加权控制流图的前瞻线程划分方法,该方法能够将编译与体系结构紧密结合,并使得划分后的前瞻线程体积相近,控制和数据相关性小,能够充分利用多核处理器的资源,提高并行程序的执行效率。
为了达到上述目的,本发明的构思是:在建立加权控制流图前后进行多次优化, 排除不适合并行化的循环和过程调用,这样最后在提取可执行的候选线程的时候就能够获得并行度很高的前瞻线程,整个划分过程将宏观和微观有机结合,经过划分后的前瞻线程能够充分的发挥单片多核(CMP)的性能。
根据发明的构思,本发明采用下述技术方案:
1、本发明公开了一种基于加权控制流图的前瞻线程划分方法,其特征在于操作步骤如下:
(1)自上而下扫描原串行程序,找出程序中所有的过程调用;
(2)对步骤(1)中找出的所有的过程调用进行处理,对不符合要求的过程调用插入到原来的串行程序中直接运行;
(3)根据profiling信息对步骤(2)中处理后的串行程序建立加权控制流T;
(4)自上而下遍历整个复加权控制流图T ,找出图中所有的循环区域;
(5)对步骤(4)中找出的所有的循环进行处理,对不符合要求的循环直接插入到串行程序中直接运行,并将符合要求的循环归结为一个单入口单出口的节点,由此可形成超控制流图F;
(6)根据染色法从超控制流图F中提取可执行的前瞻线程。
2、根据权利要求1所述的一种基于加权控制流图的前瞻线程划分方法,其特征在于上述步骤(2)中所述的对步骤(1)中找出的所有的过程调用进行处理,其具体处理步骤如下:
(21)规定候选线程的体积下限LOWER_LIMIT及其上限UPPER_LIMIT,并提取出所有的过程调用。
(22)对于体积小于候选线程体积下限LOWER_LIMIT的过程调用,则将其函数体直接插入到原来的串行程序中直接运行;
(23)对于体积大于候选线程体积上限UPPER_LIMIT的过程调用,则应该对其进行适当前瞻划分,使其能够成为多个可以并行执行的线程。
3、根据权利要求1所述的一种基于加权控制流图的前瞻线程划分方法,其特征在于上述步骤(5)中所述的对步骤(4)中遍历出的所有循环进行处理,其具体处理步骤如下:
(51)自上而下遍历整个加权控制流图T,提取出所有的循环或者循环区域;
(52)判断所有的循环或者循环区域是否适合并行化,若不符合则将其直接插入到原来的串行程序中直接运行。
4、根据权利要求1所述的一种基于加权控制流图的前瞻线程划分方法,其特征在于上述步骤(6)中,利用染色法从超控制流图F中提取可执行的前瞻线程,其具体处理步骤如下:
(61)在有向图F中选择一个没有前驱的顶点并输出;
(62)规定若图中的某一个顶点被选为线程,那么与它相邻的顶点便不能再作为线程;
(63)删除已输出的顶点以及与该顶点相邻的其它顶点和边;
(64)重复上述三个步骤,直到找出所有的可执行的候选线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210491456.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电梯井道缓冲装置
- 下一篇:钢丝绳卷筒旋转托架