CN102073482A - 一种前瞻失效线程的划分方法 - Google Patents
一种前瞻失效线程的划分方法 Download PDFInfo
- Publication number
- CN102073482A CN102073482A CN2011100453506A CN201110045350A CN102073482A CN 102073482 A CN102073482 A CN 102073482A CN 2011100453506 A CN2011100453506 A CN 2011100453506A CN 201110045350 A CN201110045350 A CN 201110045350A CN 102073482 A CN102073482 A CN 102073482A
- Authority
- CN
- China
- Prior art keywords
- thread
- outlook failure
- outlook
- failure
- parameter
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种前瞻失效线程的划分方法,其具体步骤如下:A、检测前瞻失效线程;B、对确定前瞻失效线程的描述;C、对确定前瞻失效线程的重启范围的描述;D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将的距离中距离最大距离作为前瞻失效线程划分基准N;E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足新的线程体积和划分基准N相近;F、前瞻失效线程划分结束。该方法能够消除线程间的数据相关性,减少线程的控制开销,减少了线程重启所消耗的资源和时间。
Description
技术领域
本发明涉及一种前瞻失效线程的划分方法,属于计算机技术领域。
背景技术
目前,高性能处理器仅仅提高处理器主频和复杂的指令流水线技术已经难以显著提高其性能,而且这样做还会导致高功耗和散热等棘手问题,因此,单片多核处理器(Chip Multi-Processors, CMP)技术成为提高处理器性能的关键技术之一。虽然CMP技术对并行执行多线程有很好的效果,但现在大多数程序还都是串行程序,如何将这些串行程序应用于CMP平台,并让其高效的运行,这些问题一直阻碍着高性能计算的发展。
基于线程级前瞻(Thread-Level Speculative, TLS)的并行技术是解决这些问题的主要途径之一。但是前瞻技术推断得出的结果并不一定总是正确,这表示有一部分线程必然会前瞻失效,前瞻失效线程的重启可能造成极大的资源开销。
发明内容
本发明的目的在于针对现有技术存在问题,是提供一种前瞻失效线程的划分方法,该方法能够对前瞻失效线程进行再次划分,消除线程间的数据相关性,减少线程的控制开销,又能够保持线程间的访存负载平衡,减少线程重启所消耗的资源和时间。
为达到上述目的,本发明的构思是:将前瞻失效线程划分为更小的颗粒,在进行线程划分时,兼顾线程的体积、线程间的数据相关性、线程间的缓存负载平衡的制约因素,其中,线程体积为线程所含的指令数,相对均等的线程体积能够使程序加载运行过程中各个处理器核在指令执行、访存负载更加均衡,线程的体积足够大能忽略线程的控制开销,有利于挖掘线程级并行性,发挥多线程结构的优势。
根据上述的发明构思,本发明采用下述技术方案:
一种前瞻失效线程的划分方法,其特征在于,其具体操作步骤如下:
A、检测前瞻失效线程;
B、对确定前瞻失效线程的描述;
C、对确定前瞻失效线程的重启范围的描述;
D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将距离中最大距离作为前瞻失效线程划分基准N;
E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足划分后的线程体积和划分基准N相近;
F、前瞻失效线程划分结束。
上述步骤B中所述的对前瞻失效线程的描述,其具体描述如下:
B1、令前瞻失效线程中的任意一个前瞻失效参数xn在线程Tm的第k行处第n次引入,记为Pm(xn)=k,线程Tm的总代码行数记为Lm;
上述步骤C中所述的对确定前瞻失效线程的重启范围的描述,其具体如下:
C1、若前瞻失效线程中有一个失效参数x,则该前瞻失效线程的重启范围为:Pm(x1)到Pm(xn),记为Pm(xn)-Pm(x1),其中n为该参数最后一次调用,m为线程号;
C2、若前瞻失效线程中有多个失效参数x,y …… z,则前瞻失效线程的重启范围为该多个失效参数的重启范围的并集,记为(Pm(xn)-Pm(x1)) ( Pm(yn)-Pm(y1))……( Pm(zn)-Pm(z1));
上述步骤D中所述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作步骤如下:
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,xT1、yT2,x到y的距离表示前瞻失效参数x到前瞻失效参数y的代码行数,记为D(x,y),然后,分别求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下:
D1、若一个前瞻失效线程中包含一个前瞻失效参数,x=y,T1= T2,则x到y的距离和最大距离为: D(x,y)= P1(xn)-P1(xn-1),N=maxD(x,y);
D2、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y,T1 T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径,则x到y沿路径的距离D(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径为唯一路径,则路径的距离和最大距离为:D(x,y)= D(x,y),N=max D(x,y);
本发明的一种前瞻失效线程的划分方法与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点:该方法对前瞻失效线程进行再次划分能够消除线程间的数据相关性,减少线程的控制开销,又能够保持线程间的访存负载平衡,增加了正确线程执行的重用性、减少了线程重启所消耗的资源和时间。
附图说明
图1是本发明的一种前瞻失效线程的划分方法的流程图。
具体实施方式
下面结合说明书附图和具体实施方式对本发明作进一步详细的说明。
本实施例所述方案的应用环境是面向多核处理器的前瞻线程并行执行环境,本实施例不限定所述技术方案应用环境中多核处理器架构和线程划分方式。
参照图1,本发明的一种前瞻失效线程的划分方法,其具体步骤如下:
步骤101、检测前瞻失效线程;
步骤102、对确定前瞻失效线程进行描述,其描述如下:令前瞻失效线程中的任一个前瞻失效参数y在线程Tm的第k行第n次被引入,该前瞻失效线程中的参数的最后一次被调用,记为Pm(yn)=k,线程Tm的代码行数记为Lm;
步骤103、确定前瞻失效线程的重启范围,其描述如下:若前瞻失效线程中有一个失效参数y,则该前瞻失效线程的重启范围为: Pm(y1)到Pm(yn),记为Pm(yn)-Pm(y1),其中,n为该参数最后一次调用,m为线程号;若前瞻失效线程中有多个失效参数x、y …… z,则前瞻失效线程的重启范围为该多个失效参数的重启范围的并集,记为(Pm(xn)-Pm(x1))( Pm(yn)- Pm(y1))……( Pm(zn)-Pm(z1));
步骤104、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程划分基准N,其具体描述如下:
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,xT1、yT2, x到y的距离表示前瞻失效参数x到前瞻失效参数y的代码行数,记为D(x,y),然后,分别求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下:
步骤1041、若一个前瞻失效线程中包含一个前瞻失效参数,x=y,T1= T2,则x到y的距离和最大距离为: D(x,y)= P1(xn)-P1(xn-1),N=maxD(x,y);
步骤1042、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y,T1 T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径,则x到y沿路径的距离D(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径为唯一路径,则路径的距离和最大距离为:D(x,y)= D(x,y),N=max D(x,y);
步骤105、根据步骤104所求出的距离和最大距离将前瞻失效线程进行划分,合并小线程,满足线程体积和划分基准N相近;
步骤106、前瞻失效线程划分结束。
以上是对本发明的一种前瞻失效线程的划分方法详细的介绍,本发明结合说明书附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想;同时,对于本领域的一般技术人员,依据本发明的方法和思想,在具体实施方式和应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种前瞻失效线程的划分方法,其特征在于该方法是:将前瞻失效线程划分为更小的颗粒,在进行线程划分时,兼顾线程的体积、线程间的数据相关性、线程间的访存负载平衡的制约因素,其中,线程的体积为线程所含的指令数,相对均等的线程体积能够使程序加载运行过程中各个处理器核在指令执行、访存负载更加均衡,线程的体积足够大能忽略线程的控制开销,有利于挖掘线程级并行性,发挥多线程结构的优势,其具体步骤如下:
A、检测前瞻失效线程;
B、对确定前瞻失效线程的描述;
C、对确定前瞻失效线程的重启范围的描述;
D、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将距离中最大距离作为前瞻失效线程划分基准N;
E、根据步骤D得到的距离和最大距离对前瞻失效线程进行划分,合并小线程,满足划分后的线程体积和划分基准N相近;
F、前瞻失效线程划分结束。
2.根据权利要求1所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤B中所述的对前瞻失效线程的描述,其具体描述如下:
B1、令前瞻失效线程中的任意一个前瞻失效参数xn在线程Tm的第k行处第n次引入,记为Pm(xn)=k,线程Tm的总代码行数记为Lm。
4.根据权利要求2所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤D中所述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法得出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作步骤如下:首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,xT1、yT2,x到y的距离表示前瞻失效参数x到前瞻失效参数y的代码行数,记为D(x,y),然后,分别求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体如下:
D1、若一个前瞻失效线程中包含一个前瞻失效参数,x=y,T1= T2,则x到y的距离和最大距离为: D(x,y)= P1(xn)-P1(xn-1),N=maxD(x,y);
D2、若一个前瞻实效参数包含在多个前瞻失效线程中,x=y,T1 T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径,则x到y沿路径的距离D(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径为唯一路径,则路径的距离和最大距离为:D(x,y)= D(x,y),N=max D(x,y);
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100453506A CN102073482B (zh) | 2011-02-25 | 2011-02-25 | 一种前瞻失效线程的划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100453506A CN102073482B (zh) | 2011-02-25 | 2011-02-25 | 一种前瞻失效线程的划分方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073482A true CN102073482A (zh) | 2011-05-25 |
CN102073482B CN102073482B (zh) | 2013-11-20 |
Family
ID=44032032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100453506A Expired - Fee Related CN102073482B (zh) | 2011-02-25 | 2011-02-25 | 一种前瞻失效线程的划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073482B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077561A1 (en) * | 2007-07-05 | 2009-03-19 | International Business Machines Corporation | Pipeline Processing Method and Apparatus in a Multi-processor Environment |
CN101807144A (zh) * | 2010-03-17 | 2010-08-18 | 上海大学 | 一种前瞻多线程并行执行优化方法 |
CN101814019A (zh) * | 2010-03-25 | 2010-08-25 | 上海大学 | 一种前瞻失效的线程识别方法 |
-
2011
- 2011-02-25 CN CN2011100453506A patent/CN102073482B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077561A1 (en) * | 2007-07-05 | 2009-03-19 | International Business Machines Corporation | Pipeline Processing Method and Apparatus in a Multi-processor Environment |
CN101807144A (zh) * | 2010-03-17 | 2010-08-18 | 上海大学 | 一种前瞻多线程并行执行优化方法 |
CN101814019A (zh) * | 2010-03-25 | 2010-08-25 | 上海大学 | 一种前瞻失效的线程识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102073482B (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10748237B2 (en) | Adaptive scheduling for task assignment among heterogeneous processor cores | |
US10095657B2 (en) | Processor, accelerator, and direct memory access controller within a core reading/writing local synchronization flag area for parallel | |
KR101839544B1 (ko) | 이종 코어의 자동 부하 균형 | |
US9348594B2 (en) | Core switching acceleration in asymmetric multiprocessor system | |
CN101923492B (zh) | 面向嵌入式异构多核上执行动态分配指令的方法 | |
US20150046679A1 (en) | Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems | |
US20120256922A1 (en) | Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit | |
CN102981807A (zh) | 一种基于cuda并行环境的gpu程序优化方法 | |
CN106575220B (zh) | 多个经集群极长指令字处理核心 | |
CN102253919A (zh) | 基于gpu和cpu协同运算的并行数值模拟方法和系统 | |
US20140053161A1 (en) | Method for Adaptive Scheduling of Multimedia Jobs | |
TW202009692A (zh) | 在中央處理單元(cpu)中執行指令的方法 | |
WO2016041126A1 (zh) | 基于gpu的数据流处理方法和装置 | |
US10558500B2 (en) | Scheduling heterogenous processors | |
KR101770234B1 (ko) | 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템 | |
Cheng et al. | Many-core needs fine-grained scheduling: A case study of query processing on Intel Xeon Phi processors | |
CN102073482B (zh) | 一种前瞻失效线程的划分方法 | |
US20110320781A1 (en) | Dynamic data synchronization in thread-level speculation | |
CN102012841B (zh) | 一种前瞻失效线程重启调度方法 | |
US8549508B2 (en) | Mechanism for performing instruction scheduling based on register pressure sensitivity | |
US20130166887A1 (en) | Data processing apparatus and data processing method | |
Tomiyama et al. | Automatic parameter optimization for edit distance algorithm on GPU | |
CN101520724B (zh) | 重启优化的前瞻线程颗粒及其重启优化方法 | |
Xiangwu et al. | Optimizing parallel join of column-stores on heterogeneous computing platforms | |
US20200211146A1 (en) | Data processing systems |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131120 Termination date: 20170225 |