CN102073482A - 一种前瞻失效线程的划分方法 - Google Patents

一种前瞻失效线程的划分方法 Download PDF

Info

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
Application number
CN2011100453506A
Other languages
English (en)
Other versions
CN102073482B (zh
Inventor
赵文江
杨旭涛
杨洪斌
吴悦
徐振坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN2011100453506A priority Critical patent/CN102073482B/zh
Publication of CN102073482A publication Critical patent/CN102073482A/zh
Application granted granted Critical
Publication of CN102073482B publication Critical patent/CN102073482B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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))                                               
Figure 36620DEST_PATH_IMAGE001
( Pm(yn)-Pm(y1))
Figure 25436DEST_PATH_IMAGE001
……
Figure 823103DEST_PATH_IMAGE001
( Pm(zn)-Pm(z1));
上述步骤D中所述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作步骤如下:
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,x
Figure 922777DEST_PATH_IMAGE002
T1、y
Figure 859640DEST_PATH_IMAGE002
T2,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
Figure 19357DEST_PATH_IMAGE003
T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径
Figure 304321DEST_PATH_IMAGE004
,则x到y沿路径
Figure 207686DEST_PATH_IMAGE004
的距离D
Figure 264635DEST_PATH_IMAGE004
(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径
Figure 329674DEST_PATH_IMAGE004
为唯一路径,则路径
Figure 101933DEST_PATH_IMAGE004
的距离和最大距离为:D(x,y)= D(x,y),N=max D
Figure 782761DEST_PATH_IMAGE004
(x,y);
D3、若一个前瞻失效线程中包含多个前瞻失效参数,x
Figure 221964DEST_PATH_IMAGE003
y,T1= T2,则x到y的距离和最大距离,D(x,y)= P1(xn)-P1(yn),N=maxD(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))
Figure 281187DEST_PATH_IMAGE001
( Pm(yn)- Pm(y1))
Figure 546862DEST_PATH_IMAGE001
……
Figure 312824DEST_PATH_IMAGE001
( Pm(zn)-Pm(z1)); 
步骤104、根据前瞻失效线程和前瞻失效线程的重启范围的描述求出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程划分基准N,其具体描述如下:
首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,x
Figure 188507DEST_PATH_IMAGE002
T1、y
Figure 469447DEST_PATH_IMAGE002
T2, 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
Figure 515376DEST_PATH_IMAGE003
T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径
Figure 401424DEST_PATH_IMAGE004
,则x到y沿路径的距离D
Figure 216244DEST_PATH_IMAGE004
(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径为唯一路径,则路径
Figure 540839DEST_PATH_IMAGE004
的距离和最大距离为:D(x,y)= D
Figure 758325DEST_PATH_IMAGE004
(x,y),N=max D
Figure 76173DEST_PATH_IMAGE004
(x,y);
步骤1043、若一个前瞻失效线程中包含多个前瞻失效参数,x
Figure 198326DEST_PATH_IMAGE003
y,T1= T2,则x到y的距离和最大距离,D(x,y)= P1(xn)-P1(yn),N=maxD(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
3.根据权利要求2所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤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))
Figure 634536DEST_PATH_IMAGE001
……( Pm(zn)-Pm(z1))。
4.根据权利要求2所述的一种前瞻失效线程的划分方法,其特征在于,上述步骤D中所述的根据前瞻失效线程和前瞻失效线程的重启范围的描述方法得出各个失效参数的距离和最大距离,将最大距离作为前瞻失效线程的划分基准N,其具体操作步骤如下:首先,令前瞻失效处理中任意前瞻失效参数x、y,线程T1、T2,x
Figure 261357DEST_PATH_IMAGE002
T1、y
Figure 55876DEST_PATH_IMAGE002
T2,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
Figure 597339DEST_PATH_IMAGE003
T2,且存在从一个前瞻线程T1到另一个前瞻线程T2的路径
Figure 957126DEST_PATH_IMAGE004
,则x到y沿路径
Figure 193941DEST_PATH_IMAGE004
的距离D
Figure 231298DEST_PATH_IMAGE004
(x,y)=[L1- P1(xn)]+[L2- P2(xn)];若一个前瞻线程T1到另一个前瞻线程路径为唯一路径,则路径
Figure 590528DEST_PATH_IMAGE004
的距离和最大距离为:D(x,y)= D
Figure 878421DEST_PATH_IMAGE004
(x,y),N=max D(x,y);
D3、若一个前瞻失效线程中包含多个前瞻失效参数,x
Figure 570226DEST_PATH_IMAGE003
y,T1= T2,则x到y的距离和最大距离,D(x,y)= P1(xn)-P1(yn),N=maxD(x,y)。
CN2011100453506A 2011-02-25 2011-02-25 一种前瞻失效线程的划分方法 Expired - Fee Related CN102073482B (zh)

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)

* Cited by examiner, † Cited by third party
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 上海大学 一种前瞻失效的线程识别方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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