发明名称 前瞻多线程划分方法
摘要 本发明公开了一种前瞻多线程划分方法,该方法首先为单线程应用程序中的每一个个循环语句基本块和每一个个非循环语句基本块构造相应的扩展的程序相关图;其次为每一个个扩展的程序相关图设计相应的有向无环图;接着为每一个个有向无环图设计前瞻节点,并从该有向无环图中去掉该节点;接着为每一个个有向无环图进行拓扑排序;最后按照单线程应用程序中的顺序语义和得出的拓扑序列为单片多核处理器划分前瞻多线程。该方法以循环语句和非循环语句前瞻多线程划分,能够充分挖掘程序中的控制相关和数据相关,充分利用线程级并行性,并通过前瞻执行,减少不必要的延迟等待,加速程序在多核处理器上的执行速度,提高处理器利用率。
申请公布号 CN101655783B 申请公布日期 2012.05.16
申请号 CN200910050887.4 申请日期 2009.05.08
申请人 上海大学 发明人 吴悦;徐磊;张皓;唐立三;雷超付;杨洪斌
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 上海上大专利事务所(普通合伙) 31205 代理人 陆聪明
主权项 一种前瞻多线程划分方法,其特征在于,该方法首先为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造相应的扩展的程序相关图;其次为每一个扩展的程序相关图设计相应的有向无环图;接着为每一个有向无环图设计前瞻节点,并从该有向无环图中去掉该节点;接着为每一个有向无环图进行拓扑排序;最后按照单线程应用程序中的顺序语义和得出的拓扑序列为单片多核处理器划分前瞻多线程,其具体步骤包括:101、构造扩展的程序相关图:为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造扩展的程序相关图;102、构造有向无环图:根据扩展的程序相关图为循环语句基本块和非循环语句基本块构造有向无环图;103、构造整个单线程应用程序的程序流程图:以有向无环图为单位,根据程序的流程顺序,构造整个单线程应用程序的程序流程图;104、构造每一个有向无环图的前瞻节点:以有向无环图为单位,根据步骤103所述的整个单线程应用程序的程序流程图构造每一个有向无环图的前瞻节点,并从该有向无环图中去掉此前瞻节点和以此前瞻节点为入节点和出节点的所有有向边;105、构造一个拓扑序列:根据步骤104所述的每一个有向无环图构造一个拓扑序列;106、为单片多核处理器划分前瞻多线程:根据步骤104所述的前瞻节点和步骤105所述的拓扑序列,为单片多核处理器划分为一个个前瞻线程。
地址 200444 上海市宝山区上大路99号