CN101655783B - 前瞻多线程划分方法 - Google Patents
前瞻多线程划分方法 Download PDFInfo
- Publication number
- CN101655783B CN101655783B CN2009100508874A CN200910050887A CN101655783B CN 101655783 B CN101655783 B CN 101655783B CN 2009100508874 A CN2009100508874 A CN 2009100508874A CN 200910050887 A CN200910050887 A CN 200910050887A CN 101655783 B CN101655783 B CN 101655783B
- Authority
- CN
- China
- Prior art keywords
- statement
- node
- program
- fundamental block
- correlogram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种前瞻多线程划分方法,该方法首先为单线程应用程序中的每一个个循环语句基本块和每一个个非循环语句基本块构造相应的扩展的程序相关图;其次为每一个个扩展的程序相关图设计相应的有向无环图;接着为每一个个有向无环图设计前瞻节点,并从该有向无环图中去掉该节点;接着为每一个个有向无环图进行拓扑排序;最后按照单线程应用程序中的顺序语义和得出的拓扑序列为单片多核处理器划分前瞻多线程。该方法以循环语句和非循环语句前瞻多线程划分,能够充分挖掘程序中的控制相关和数据相关,充分利用线程级并行性,并通过前瞻执行,减少不必要的延迟等待,加速程序在多核处理器上的执行速度,提高处理器利用率。
Description
技术领域
本发明涉及计算机领域,提出了一种前瞻多线程划分方法。
背景技术
人类对计算能力无止境的需求促进了硬件技术和软件技术的飞速发展。当前单片多核处理器(Chip Multi-Processors,CMP)技术成为倍受关注的新技术之一。单片多核技术通过在一块芯片上集成多个相对简单的微处理器核心来并行执行程序,从而提高处理器性能。由于简单的微处理器核心易于设计、功耗较低,所以CMP技术不但能提升系统性能,而且部分解决了功耗和散热问题。
利用CMP技术提高系统性能的关键是充分发挥多个微处理器核心的并行优势。串行程序虽易于设计和调试,却难以利用CMP技术的并行特性;并行程序虽然能更多获益于CMP技术,但并行编程对程序员能力要求较高。对于复杂的并行编程语言,用户更愿意使用传统的高级语言,而且希望能尽可能地重用已开发出的软件。在这种情况下,串行程序的并行化方法受到了广泛的重视。
如果在保证程序语义不变的条件下,将串行程序划分为若干并行线程,那么就能够充分利用CMP技术并行的优点。线程级前瞻(Thread Level Speculation,TLS)技术是线程执行所需参数在编译阶段不确定的情况下,通过数据预取、数据推测等方法消除线程间的依赖关系,创建出能够并行执行的前瞻线程。通过线程前瞻执行和相应的前瞻失效处理机制可以去除线程间的假相关,发现并维护真相关,降低线程之间的依赖程度,提高线程之间的并行度。
现有的线程划分方法存在如下不足:第一,多数没有使用线程级前瞻技术,第二,考虑了线程级前瞻技术的划分方法,如SpecDSWP等,仅只对应用程序中具有较高的覆盖率和很好的并行性的循环进行了考虑,没有综合考虑循环外的其他部分。在本前瞻多线程划分方法中,将循环作为研究对象,并综合考虑非循环部分。利用拓扑序列特有的前后制约关系指导前瞻多线程的划分,通过控制相关图和数据相关图分别挖掘程序中的数据相关和控制相关,并利用前瞻节点实现线程级前瞻技术。
发明内容
本发明要解决的技术问题是提供一种前瞻多线程划分方法,在单片多核处理器平台上,针对单线程应用程序,通过前瞻执行,利用拓扑序列特有的顺序关系,将应用程序划分为一个个多线程,能减少多线程执行时的相关性冲突和不必要的延迟等待,加速单线程应用程序在多核处理器上的执行速度,提高处理器利用率。
为达到上述目的,本发明采用下述技术方案:上述前瞻多线程划分方法,该方法首先为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造相应的扩展的程序相关图;其次为每一个扩展的程序相关图设计相应的有向无环图;接着为每一个有向无环图设计前瞻节点,并从该有向无环图中去掉该节点;接着为每一个有向无环图进行拓扑排序;最后按照单线程应用程序中的顺序语义和得出的拓扑序列为单片多核处理器划分前瞻多线程,其具体步骤包括:
101、构造扩展的程序相关图:为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造扩展的程序相关图;
102、构造有向无环图:根据扩展的程序相关图为循环语句基本块和非循环语句基本块构造有向无环图;
103构造整个单线程应用程序的程序流程图:以有向无环图为单位,根据程序的流程顺序,构造整个单线程应用程序的程序流程图;
104、构造每一个有向无环图的前瞻节点:以有向无环图为单位,根据步骤103所述的整个单线程应用程序的程序流程图构造每一个有向无环图的前瞻节点,并从该有向无环图中去掉此前瞻节点和以此前瞻节点为入节点和出节点的所有有向边;
105、构造一个拓扑序列:根据步骤104所述的每一个有向无环图构造一个拓扑序列;
106、为单片多核处理器划分一个个前瞻多线程:根据步骤104所述的前瞻节点和步骤105所述的拓扑序列,为单片多核处理器划分为前瞻线程。
上述步骤101构造扩展的程序相关图,其具体步骤如下:
201、将单线程应用程序划分为一个个循环语句序列作为一个循环语句基本块和从第一个循环开始,每相邻两个循环语句基本块之间的非循环语句序列作为一个非循环语句基本块;
202、判断扩展的程序相关图的基本块是否为循环语句基本块,若是,执行步骤203;否则,执行步骤207;
203、将循环语句基本块中的每一条语句依次编号,并作为一个节点单位,构造循环语句基本块的程序流程图;
204、循环控制语句到循环被控语句序列的每一条语句节点,都存在一条有向边,参照步骤203所述的循环语句基本块的程序流程图,以此构造循环语句基本块的控制相关图;
205、逐个分析循环语句基本块中的每一条语句,确定当前语句是否对某一存储单元进行了写操作且此基本块中的其他语句有对同一存储单元进行的访问操作,若有,则当前语句与访问语句之间存在一条有向边,逐步分析,构造循环语句基本块的数据相关图;
206、在步骤204所述的控制相关图中,逐一加入步骤205所述的每一条有向边,若此有向边是由于一次迭代产生,则直接添加,否则,复制步骤204所述的控制相关图,并以不同的循环迭代区分原控制相关图和复制的控制相关图中的相关节点,然后添加相应的有向边,得到扩展的程序相关图;
207、确定非循环语句基本块的每一个子块入口语句,该入口语句为三种语句:基本块中的第一条语句;由条件转移语句或无条件转移语句转移到的语句;紧跟在条件转移语句后面的语句;
208、根据步骤207所述的子块入口语句,构造相应子块,子块为每一个入口语句到下一个入口语句之间的语句序列,其中包括前一个入口语句,若后一个入口语句为转移语句或者停语句,则包含在此子块中;否则,不包含在此子块中;
209、根据步骤207所述的子块,以子块为节点单位,并进行编号,作为扩展的程序相关图的节点,构造非循环语句基本块的程序流程图;
210、根据程序流程关系,构造步骤209所述的所有节点,得到扩展的程序相关图。
上述步骤102中的构造有向无环图,其具体步骤如下:
301、判断由步骤206或步骤210得到的扩展的程序相关图中是否存在环,若存在,则执行步骤302;否则,执行步骤303;
302、将扩展的程序相关图中的强连通部分合并为一个节点;
303、直接得到扩展的程序相关图相对应的一个有向无环图。
上述步骤104中的构造前瞻节点的操作步骤如下:
401、判断基本块是否为循环语句基本块,若是,则执行步骤402;否则,执行步骤403;
402、遍历循环语句基本块中的语句序列,在该有向无环图中将循环语句基本块中的循环控制节点置为前瞻节点;
403、遍历非循环语句基本块的所有子块,判断是否存在以单一条件转移语句作为子块的节点,若存在,则执行步骤404;否则结束程序;
404、将单一条件转移语句子块置为前瞻节点。
上述步骤105中的构造拓扑序列具体步骤如下:
501、采用邻接矩阵M表示此有向无环图,M[i,j]=1表示节点i先于j,M[i,j]=0,表示节点i与j不存在先后关系;根据上述的邻接矩阵计算各个节点的入度,并定义一个一维数组Array保存各个节点的入度;
502、判断数组Array中是否存在值为0的元素,若存在则执行步骤503;否则,直接结束;
503、依次遍历步骤501所述的一维数组Array,找到每一次所有入度为零的节点,若节点个数不止一个,则将这些节点归为一个等价类,从有向无环图中删除这些节点,并在有向无环图中逐一去掉以这类节点为入节点和出节点的所有有向边,每去掉一条有向边,就将这条有向边所指向的节点的入度减1,并在数组Array中更新相应项,最后将数组Array中删除节点相对应的项置为-1;
504、判断数组Array中是否所有元素均为-1,若是,则结束程序;否则,执行步骤502。
上述步骤402或步骤404确定的前瞻节点判断和处理流程如下:
601、根据步骤402或步骤404确定的前瞻节点,在前瞻节点对应的语句序列后,添加前瞻判断语句和相应的处理机制,判断前瞻节点执行是否正确,若正确,则结束此程序;否则执行步骤602;
602、回滚基本块的执行,从基本块的开始重新执行。
依照拓扑序列按照特定的处理器时钟周期分别映射和处理各个拓扑节点
本发明的前瞻多线程划分方法与已有技术相比较,具有如下面显而易见的突出实质性特点和显著优点:该方法以循环语句和非循环语句前瞻多线程划分,能够充分挖掘程序中的控制相关和数据相关,充分利用线程级并行性,并通过前瞻执行,减少不必要的延迟等待,加速程序在多核处理器上的执行速度,提高处理器利用率。
附图说明
图1是本发明中的前瞻多线程划分方法的流程图;
图2是本发明中的扩展的程序相关图的构造流程图;
图3是本发明中的有向无环图的构造流程图;
图4是本发明中的前瞻节点构造流程图;
图5是本发明中的拓扑序列构造流程图;
图6是本发明中的前瞻判断和处理流程图。
具体实施方式
本发明的一个优选实施例结合附图详述如下:本实施例所述方案的应用环境是面向单片多核处理器的线程级并行执行环境,本实施例不限定所述技术方案应用环境中多核处理器架构,线程调度方式和前瞻失效优化处理。
下面结合说明书附图和具体实施方式对本发明作进一步详细的说明。
参照图1,上述前瞻多线程划分方法,该方法步骤包括:
101、为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造扩展的程序相关图;
102、根据扩展的程序相关图为循环语句基本块和非循环语句基本块构造有向无环图;
103、以有向无环图为单位,根据程序的流程顺序,构造整个单线程应用程序的程序流程图;
104、以有向无环图为单位,根据步骤103所述的整个单线程应用程序的程序流程图构造每一个有向无环图的前瞻节点,并从该有向无环图中去掉此前瞻节点和以此前瞻节点为入节点和出节点的所有有向边;
105、根据步骤104所述的每一个有向无环图构造一个拓扑序列;
106、根据步骤104所述的前瞻节点和步骤105所述的拓扑序列,为单片多核处理器划分为一个个前瞻线程。
参照图2,上述步骤101构造扩展的程序相关图,其具体步骤如下:
201、将单线程应用程序划分为一个个循环语句基本块和非循环语句基本块;
202、判断当前需要构造扩展的程序相关图的基本块是否为循环语句基本块,若是,执行步骤203;否则,执行步骤207;
203、将循环语句基本块中的每一条语句依次编号,并作为一个节点单位,构造循环语句基本块的程序流程图;
204、循环语句基本块中,循环控制语句到循环被控语句序列的每一条语句节点,都存在一条有向边,参照步骤203所述的循环语句基本块的程序流程图,以此构造循环语句基本块的控制相关图;
205、逐个分析循环语句基本块中的每一条语句,确定当前语句是否对某一存储单元进行了写操作且此基本块中的其他语句有对同一存储单元进行的访问操作,若有,则当前语句与访问语句之间存在一条有向边。逐步分析,构造循环语句基本块的数据相关图;
206、在步骤204所述的控制相关图中,逐一加入步骤205所述的每一条有向边,若此有向边是由于一次迭代产生,则直接添加,否则,复制骤204所述的控制相关图,并以不同的循环迭代区分原控制相关图和复制的控制相关图中的相关节点,然后添加相应的有向边,得到扩展的程序相关图;
207、确定非循环语句基本块的每一个子块入口语句为以下三种语句:该入口语句基本块中的第一条语句;由条件转移语句或无条件转移语句转移到的语句;紧跟在条件转移语句后面的语句;
208、根据步骤207所述的子块入口语句,构造相应子块,子块为每一个入口语句到下一个入口语句之间的语句序列,其中包括前一个入口语句,若后一个入口语句为转移语句或者停语句,则包含在此子块中;否则,不包含在此子块中;
209、根据步骤207所述的子块,以子块为单位,并进行编号,作为扩展的程序相关图的节点,构造非循环语句基本块的程序流程图;
210、根据程序流程关系,构造步骤209所述的所有节点,得到扩展的程序相关图。
参照图3,上述步骤102中构造有向无环图,其具体步骤如下:
301、判断由步骤206或步骤210得到的扩展的程序相关图中是否存在环,若存在,则执行步骤302;否则,执行步骤303;
302、将扩展的程序相关图中的强连通部分合并为一个节点;
303、直接得到扩展的程序相关图相对应的一个有向无环图。
参照图4,上述步骤104中构造前瞻节点的操作步骤如下:
401、判断基本块是否为循环语句基本块,若是,则执行步骤402;否则,执行步骤403;
402、遍历循环语句基本块中的语句序列,在该有向无环图中将循环语句基本块中的循环控制节点置为前瞻节点;
403、遍历非循环语句基本块的所有子块,判断是否存在以单一条件转移语句作为子块的节点,若存在,则执行步骤404;否则结束程序;
404、将单一条件转移语句子块置为前瞻节点。
参照图5,上述步骤105中构造拓扑序列具体步骤如下:
501、采用邻接矩阵M表示此有向无环图,M[i,j]=1表示节点i先于j,M[i,j]=0,表示节点i与j不存在先后关系;根据上述的邻接矩阵计算各个节点的入度,并定义一个一维数组Array保存各个节点的入度;
502、判断数组Array中是否存在值为0的元素,若存在则执行步骤503;否则,直接结束;
503、依次遍历步骤501所述的一维数组Array,找到每一次所有入度为零的节点,若节点个数不止一个,则将这些节点归为一个等价类,从有向无环图中删除这些节点,并在有向无环图中逐一去掉以这类节点为入节点和出节点的所有有向边,每去掉一条有向边,就将这条有向边所指向的节点的入度减1,并在数组Array中更新相应项,最后将数组Array中删除节点相对应的项置为-1;
504、判断数组Array中是否所有元素均为-1,若是,则结束程序;否则,执行步骤502。
参照图6,上述步骤402或步骤404确定的前瞻节点判断和处理流程如下:
601、根据步骤402或步骤404确定的前瞻节点,在前瞻节点对应的语句序列后,添加前瞻判断语句和相应的处理机制,判断前瞻节点执行是否正确,若正确,则结束此程序;否则执行步骤602;
602、回滚基本块的执行,从基本块的开始重新执行。
以上对本基于拓扑序列的前瞻多线程划分方法,进行了详细的介绍。本文结合说明书附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想;同时,对于本领域的一般技术人员,依据本发明的方法和思想,在具体实施方式和应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种前瞻多线程划分方法,其特征在于,该方法首先为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造相应的扩展的程序相关图;其次为每一个扩展的程序相关图设计相应的有向无环图;接着为每一个有向无环图设计前瞻节点,并从该有向无环图中去掉该节点;接着为每一个有向无环图进行拓扑排序;最后按照单线程应用程序中的顺序语义和得出的拓扑序列为单片多核处理器划分前瞻多线程,其具体步骤包括:
101、构造扩展的程序相关图:为单线程应用程序中的每一个循环语句基本块和每一个非循环语句基本块构造扩展的程序相关图;
102、构造有向无环图:根据扩展的程序相关图为循环语句基本块和非循环语句基本块构造有向无环图;
103、构造整个单线程应用程序的程序流程图:以有向无环图为单位,根据程序的流程顺序,构造整个单线程应用程序的程序流程图;
104、构造每一个有向无环图的前瞻节点:以有向无环图为单位,根据步骤103所述的整个单线程应用程序的程序流程图构造每一个有向无环图的前瞻节点,并从该有向无环图中去掉此前瞻节点和以此前瞻节点为入节点和出节点的所有有向边;
105、构造一个拓扑序列:根据步骤104所述的每一个有向无环图构造一个拓扑序列;
106、为单片多核处理器划分前瞻多线程:根据步骤104所述的前瞻节点和步骤105所述的拓扑序列,为单片多核处理器划分为一个个前瞻线程。
2.根据权利要求1所述的前瞻多线程划分方法,其特征在于,上述步骤101构造扩展的程序相关图,其具体步骤如下:
201、将单线程应用程序划分为以一个个循环语句序列作为一个循环语句基本块和从第一个循环开始,每相邻两个循环语句基本块之间的非循环语句序列作为一个非循环语句基本块;
202、判断扩展的程序相关图的基本块是否为循环语句基本块,若是,执行步骤203;否则,执行步骤207;
203、将循环语句基本块中的每一条语句依次编号,并作为一个节点单位,构造循环语句基本块的程序流程图;
204、循环控制语句到循环被控语句序列的每一条语句节点,都存在一条有向边,参照步骤203所述的循环语句基本块的程序流程图,以此构造循环语句基本块的控制相关图;
205、逐个分析循环语句基本块中的每一条语句,确定当前语句是否对某一存储单元进行了写操作且此基本块中的其他语句有对同一存储单元进行的访问操作,若有,则当前语句与访问语句之间存在一条有向边,逐步分析,构造循环语句基本块的数据相关图;
206、在步骤204所述的控制相关图中,逐一加入步骤205所述的每一条有向边,若此有向边是由于一次迭代产生,则直接添加,否则,复制步骤204所述的控制相关图,并以不同的循环迭代区分原控制相关图和复制的控制相关图中的相关节点,然后添加相应的有向边,得到扩展的程序相关图;
207、确定非循环语句基本块的每一个子块入口语句,该入口语句为三种语句:基本块中的第一条语句;由条件转移语句或无条件转移语句转移到的语句;紧跟在条件转移语句后面的语句;
208、根据步骤207所述的子块入口语句,构造相应子块,子块为每一个入口语句到下一个入口语句之间的语句序列,其中包括前一个入口语句,若后一个入口语句为转移语句或者停语句,则包含在此子块中;否则,不包含在此子块中;
209、根据步骤208所述的子块,以子块为节点单位,并进行编号,作为扩展的程序相关图的节点,构造非循环语句基本块的程序流程图;
210、根据程序流程关系,构造步骤209所述的所有节点,得到扩展的程序相关图。
3.根据权利要求2所述的前瞻多线程划分方法,其特征在于,上述步骤102中构造有向无环图,其具体步骤如下:
301、判断由步骤206或步骤210得到的扩展的程序相关图中是否存在环,若存在,则执行步骤302;否则,执行步骤303;
302、将扩展的程序相关图中的强连通部分合并为一个节点;
303、直接得到扩展的程序相关图相对应的一个有向无环图。
4.根据权利要求3所述的前瞻多线程划分方法,其特征在于,上述步骤104中构造前瞻节点的操作步骤如下:
401、判断基本块是否为循环语句基本块,若是,则执行步骤402;否则,执行步骤403;
402、遍历循环语句基本块中的语句序列,在该有向无环图中将循环语句基本块中的循环控制节点置为前瞻节点;
403、遍历非循环语句基本块的所有子块,判断是否存在以单一条件转移语句作为子块的节点,若存在,则执行步骤404;否则结束程序;
404、将单一条件转移语句子块置为前瞻节点。
5.根据权利要求4所述的前瞻多线程划分方法,其特征在于,上述步骤105中构造拓扑序列具体步骤如下:
501、采用邻接矩阵M表示此有向无环图,M[i,j]=1表示节点i先于j,M[i,j]=0,表示节点i与j不存在先后关系;根据上述的邻接矩阵计算各个节点的入度,并定义一个一维数组Array保存各个节点的入度;
502、判断数组Array中是否存在值为0的元素,若存在则执行步骤503;否则,直接结束;
503、依次遍历步骤501所述的一维数组Array,找到每一次所有入度为零的节点,若节点个数不止一个,则将这些节点归为一个等价类,从有向无环图中删除这些节点,并在有向无环图中逐一去掉以这类节点为入节点和出节点的所有有向边,每去掉一条有向边,就将这条有向边所指向的节点的入度减1,并在数组Array中更新相应项,最后将数组Array中删除节点相对应的项置为-1;
504、判断数组Array中是否所有元素均为-1,若是,则结束程序;否则,执行步骤502。
6.根据权利要求4或5所述的前瞻多线程划分方法,其特征在于,上述步骤402或步骤404
确定的前瞻节点判断和处理流程如下:
601、根据步骤402或步骤404确定的前瞻节点,在前瞻节点对应的语句序列后,添加前瞻判断语句和相应的处理机制,判断前瞻节点执行是否正确,若正确,则结束此程序;否则执行步骤602;
602、回滚基本块的执行,从基本块的开始重新执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100508874A CN101655783B (zh) | 2009-05-08 | 2009-05-08 | 前瞻多线程划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100508874A CN101655783B (zh) | 2009-05-08 | 2009-05-08 | 前瞻多线程划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101655783A CN101655783A (zh) | 2010-02-24 |
CN101655783B true CN101655783B (zh) | 2012-05-16 |
Family
ID=41710082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100508874A Expired - Fee Related CN101655783B (zh) | 2009-05-08 | 2009-05-08 | 前瞻多线程划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101655783B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807144B (zh) * | 2010-03-17 | 2014-05-14 | 上海大学 | 一种前瞻多线程并行执行优化方法 |
CN101814019B (zh) * | 2010-03-25 | 2013-03-06 | 上海大学 | 一种前瞻失效的线程识别方法 |
CN102012844B (zh) * | 2010-11-29 | 2013-01-09 | 上海大学 | 一种面向cmp系统的线程调度方法 |
CN102200924B (zh) * | 2011-05-17 | 2014-07-16 | 北京北大众志微系统科技有限责任公司 | 基于模调度实现循环指令调度的编译方法及装置 |
CN107656730B (zh) * | 2017-09-28 | 2020-10-16 | 贝壳找房(北京)科技有限公司 | 分布式软件系统拓扑结构的自适应可视化方法及装置 |
CN111488441B (zh) * | 2020-04-08 | 2023-08-01 | 北京百度网讯科技有限公司 | 问题解析方法、装置、知识图谱问答系统和电子设备 |
CN112346405B (zh) * | 2020-10-13 | 2022-03-01 | 深圳市汇川技术股份有限公司 | 数控系统控制方法、装置、数控系统及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048764A (zh) * | 2004-10-29 | 2007-10-03 | 辉达公司 | 具有前向进度位的存储器管理系统 |
CN101118486A (zh) * | 2006-06-29 | 2008-02-06 | 英特尔公司 | 多执行线程的分区流水线执行的方法和设备 |
-
2009
- 2009-05-08 CN CN2009100508874A patent/CN101655783B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101048764A (zh) * | 2004-10-29 | 2007-10-03 | 辉达公司 | 具有前向进度位的存储器管理系统 |
CN101118486A (zh) * | 2006-06-29 | 2008-02-06 | 英特尔公司 | 多执行线程的分区流水线执行的方法和设备 |
Non-Patent Citations (1)
Title |
---|
徐甲同 等.程序相关图及其优化技术.《微电子学与计算机》.1992,(第10期),第35-38页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101655783A (zh) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8661449B2 (en) | Transactional computation on clusters | |
CN101655783B (zh) | 前瞻多线程划分方法 | |
Aiken et al. | Perfect pipelining: A new loop parallelization technique | |
Johnson et al. | Min-cut program decomposition for thread-level speculation | |
CN101807144B (zh) | 一种前瞻多线程并行执行优化方法 | |
Johnson et al. | Speculative thread decomposition through empirical optimization | |
Xiao et al. | A load balancing inspired optimization framework for exascale multicore systems: A complex networks approach | |
EP2836941B1 (en) | Method and system for converting a single-threaded software program into an application-specific supercomputer | |
Cai et al. | Meeting points: using thread criticality to adapt multicore hardware to parallel regions | |
Yi et al. | An ILP formulation for task mapping and scheduling on multi-core architectures | |
US7458065B2 (en) | Selection of spawning pairs for a speculative multithreaded processor | |
US20090077360A1 (en) | Software constructed stands for execution on a multi-core architecture | |
Srinath et al. | Architectural specialization for inter-iteration loop dependence patterns | |
Wei et al. | Throughput optimization for streaming applications on CPU-FPGA heterogeneous systems | |
Liu et al. | A thread partitioning approach for speculative multithreading | |
Naishlos et al. | Towards a first vertical prototyping of an extremely fine-grained parallel programming approach | |
Lin et al. | On-GPU thread-data remapping for branch divergence reduction | |
Barua et al. | Cost-driven thread coarsening for GPU kernels | |
Warg | Techniques to reduce thread-level speculation overhead | |
Wang et al. | Code transformations for enhancing the performance of speculatively parallel threads | |
Ottoni et al. | Communication optimizations for global multi-threaded instruction scheduling | |
Fiorentino et al. | Introducing KeyRing self‐timed microarchitecture and timing‐driven design flow | |
Kavi et al. | Concurrency, Synchronization, and Speculation—The Dataflow Way | |
Wang et al. | A flexible chip multiprocessor simulator dedicated for thread level speculation | |
Zhai | Compiler optimization of value communication for thread-level speculation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120516 Termination date: 20150508 |
|
EXPY | Termination of patent right or utility model |