CN105808358B - 一种用于众核系统的数据相关性线程分组映射方法 - Google Patents
一种用于众核系统的数据相关性线程分组映射方法 Download PDFInfo
- Publication number
- CN105808358B CN105808358B CN201610188032.8A CN201610188032A CN105808358B CN 105808358 B CN105808358 B CN 105808358B CN 201610188032 A CN201610188032 A CN 201610188032A CN 105808358 B CN105808358 B CN 105808358B
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- different
- core
- threads
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于众核系统的线程数据相关性分组映射方法,该方法通过计算数据重用距离分析应用程序线程内部数据局部性,用线程相关性矩阵度量不同线程间的数据相关性;根据应用程序的数据相关性及众核处理器架构特点,利用最小生成树将应用线程分为能反映不同线程数据相关性逻辑组。最终实现线程到具体处理器不同处理核硬件线程的合理映射,降低线程间共享存储访问冲突,减少额外传输开销,为充分利用众核系统计算资源,提升程序计算性能提供了一个有效的解决方法。
Description
【技术领域】
本发明属于计算机系统结构领域,涉及一种线程分组映射方法,尤其涉及一种用于众核系统的基于数据相关性的线程分组映射方法。
【背景技术】
如何充分利用众核处理器高计算能力,降低系统能耗是众核系统面临的关键问题。随着多核/众核技术的发展,众核处理器片内集成的处理器核数越来越多,进一步加剧了多个处理核对片上共享计算资源(如共享cache,共享带宽)的争用。同时由于众核处理器采用多级层次化的存储结构,导致其存储访问更加复杂。如果在程序运行过程中任务分配不合理,将具有频繁信息交互的线程分配到不同处理核的硬件线程之上,会引入较高的存储访问延迟,造成高的数据传输开销;如果将无数据相关性的多个线程分配到同一处理核上,会因不同线程访问不同数据,导致共享cache数据的频繁换入换出,造成高的共享存储访问冲突,增加额外传输开销。在将应用线程映射到众核处理器时,只有将应用程序数据局部性和处理器存储架构特点有效的结合起来,实现应用程序到处理核的合理映射,才能降低不同线程之间共享存储访问冲突、减少额外传输开销,提高计算资源利用率,提升应用程序的计算性能,降低异构系统整体能耗。
已有的根据程序局部性特点静态进行任务分配的研究工作,通过对反映程序数据及存储访问相关性的信息进行剖分、离线分析,然后划分任务。不考虑运行平台物理架构特点,直接将线程映射到处理核上,不能客观反映不同线程在具体运行平台上运行时的数据相关性特点。已有的根据程序运行时的局部性特点动态线程映射的研究工作,主要通过动剖分及迁移实现线程到处理核的映射,但动态剖分及迁移线程都会引入额外的运行时开销,有的还需特定的硬件支持,限制了其通用性。在处理核数目众多且存储结构复杂的众核系统上,由于同时要考虑计算性能和系统的整体能耗,以上线程映射方法不能满足众核系统高效能的计算需求。
针对以上存在的问题,目前还没有一种能够将众核系统架构特征和应用线程间固有的数据相关性特点结合、通过应用线程分组、实现线程到处理核的映射,以提高众核系统整体计算效能的有效方法。
【发明内容】
本发明的目的在于克服上述现有技术中的问题,提供一种用于众核系统的数据相关性线程分组映射方法,该线程分组映射方法以线程间的数据相关性为基础,实现应用线程数据局部性和处理核空间局部性的较好匹配,以最大化核内数据共享,最小化核间信息交互,可以在不引入额外运行时开销的情况下提升众核系统的整体计算效能。
为达到上述目的,本发明采用以下技术方案予以实现:
一种用于众核系统的线程数据相关性分组映射方法,包括如下步骤:
1)根据运行平台所支持的最大硬件线程数,采用均匀分配的方法将应用程序划分为相应数量的应用线程;
2)并行统计每个线程的存储访问数据,采用将访问数据插入平衡二叉树的方式,在插入数据结点的同时计算数据重用距离,并将相应数据重用信息记录在对应的数据结点内;
3)遍历生成的平衡二叉树,计算反映整个线程数据局部性的线程平均数据重用距离;
4)根据线程平均数据重用距离,标识出不同线程的局部性模式,不同的局部性模式反映不同线程内部数据局部性特点;
5)以线程数据局部性模式为依据,将线程归并为不同的模式类;统计同一模式类内不同线程间相同数据的访问量,用线程相关性矩阵Affinity Matrix度量不同线程之间的数据相关性;
6)将相关性矩阵转化成能直观反映线程之间局部性的相关性图Affinity Graph;
7)将线程相关性图和具体的硬件运行平台存储层次架构图相结合,将线程相关性图分解成K棵子树,实现将具有高数据共享的线程划分到同一个线程组内,将具有较强数据访问争用关系的线程划分到不同的线程组内;
8)根据众核处理器架构特点,通过静态绑定线程组到处理核的方法,实现应用线程到众核处理器处理核不同硬件线程的映射。
本发明进一步的改进在于:
所述步骤2)中,线程数据重用距离指相同访问数据最近两次访问间隔内不同访问数据的个数。
所述步骤4)中,数据局部性模式定义如下:
DSP:RDj<Dmin,该模式为数据共享模式,数据重用距离RDj小于阈值Dmin线程所访问数据的时间局部性好;
DIP:RDj>Dmax,该模式为数据无关模式,数据重用距离RDj大于阈值Dmax,线程所访问数据的时间局部性差,数据之间相互独立,无数据相关性;
DDP:Dmin≤RDj≤Dmax,该模式为数据相关模式,数据重用距离RDj介于阈值Dmin与Dmax之间,线程所访问数据之间存在数据依赖关系;
其中Dmin及Dmax为反映不同数据访存特点的数据重用距离阈值。
所述步骤5)中,线程相关性矩阵反映了不同线程间的数据共享特性,矩阵行和列标分别代表不同的线程ID,矩阵中的每个元素值代表对应行列所指线程间的数据共享量。
所述步骤8)中,具体映射方法为:
8-1)将同一线程组中的应用线程尽量分配到同一个处理核的不同硬件线程之上;如果该处理核线程已经全部分配,则将应用线程分配到相邻处理核的硬件线程之上;
8-2)将不同线程组中的应用线程分配到不同处理核的硬件线程之上,使无共享数据的线程分散到具有独立cache空间的不同处理核。
与现有技术相比,本发明具有以下有益效果:
本发明针对众核系统下线程到处理核的映射问题,通过计算不同线程数据重用距离来分析应用程序本身的数据相关性,根据不同应用线程内部和不同线程之间的数据相关性进行线程分组,以实现应用线程数据局部性和处理核空间局部性的较好匹配,最大化处理核内部线程间的数据局部性,最小化处理核之间的数据相关性,合理利用处理器片上cache层次,减少共享存储访问冲突,降低不必要的数据传输开销,在不增加程序运行时额外开销和无需特殊硬件支持的情况下提高程序的计算性能,降低系统能耗。
【附图说明】
图1为本发明的总体框架:
图2为具体的数据相关性线程分组映射实现框架。
【具体实施方式】
下面结合附图对本发明做进一步详细描述:
参见图1,本发明包括以下步骤:
1)根据众核处理器所支持的最大硬件线程数,将应用程序划分成相应数量的逻辑线程;
2)使用Intel Pin API编写Pin工具,并行统计每个线程的存储访问数据;
3)线程数据访问信息的统计通过在二叉树中插入结点的方式实现。数据结点的插入采用以数据时间戳(时间戳代表数据被访问的次序)为主键的平衡二叉树中序插入算法。
4)每插入一个结点的同时将相关数据项信息记录在该结点的数据结构中,节点数据结构定义如下:Node(TS;Element;Frequency;Weight;RD)。每个数据项存储以下信息:
TS(Time stamp):时间戳,记录数据被访问的先后次序;Element:所访问的数据元素;Frequency:频度,记录数据被访问的次数,用于统计整个线程的数据访问量;Weight:权重,记录当前结点所包含的子结点个数,用于计算重用距离;RD(Reuse Distance):数据重用距离。
5)整个计算线程数据重用距离是一个在平衡二叉树中插入结点、删除结点和遍历结点的过程。当依次扫描完线程所访问的数据后,随即生成一棵记录了线程数据重用距离信息的平衡二叉树;
6)遍历每个线程对对应的平衡二叉树,计算出每个线程的平均数据重用距离,以此量化线程内数据局部性。
设线程总数为K,每个线程的平均数据重用距离为RDj(j=1,2,…,K),线程内部每个数据的重用距离为rdi,线程访问的不同数据总数为M(平衡二叉树结点个数),则线程平均数据重用距离为:
7)根据数据存储访问特点,设置反映不同数据访存特点的数据重用距离阈值Dmin及Dmax,以重用距离阈值为基准,将数据重用距离划分为三个不同的区间,分别对应三种不同的局部性模式。将不同线程平均数据重用距离和重用距离阈值比较后,标识出线程所属的局部性模式。数据局部性模式定义如下:
DSP(Data Sharing Pattern):RDj<Dmin,该模式下,线程所访问的数据有很强的时间局部性,数据间有较强的数据相关性;DIP(Data Isolation Pattern):RDj>Dmax,该模式下,线程所访问数据的时间局部性差,数据之间相互独立,无数据相关性;DDP(DataDependency Pattern):Dmin≤RDj≤Dmax,该模式下,线程所访问数据有一定的时间局部性,数据之间存在数据依赖关系,有一定的数据相关性。其中Dmin及Dmax为反映不同数据访存特点的数据重用距离阈值。
8)将线程归并为不同的模式类;
9)比较同一个模式类内不同线程之间所访问的相同数据个数,并记入线程相关性矩阵(Affinity Matrix)中。线程相关性矩阵反映了不同线程间的数据共享特性,矩阵行标和列标分别代表不同的线程ID,矩阵中的每个元素值代表对应行列所指线程间的数据共享量,矩阵元素值越大表明对应线程之间数据共享性越好,线程间的相关性越强;
10)将线程相关性矩阵转换成能直观反映线程间数据相关性的相关性图(Affinity Graph)。相关性图是一个顶点代表不同线程ID,边代表对应两线程间数据共享量的无向图;
11)线程逻辑分组。在线程相关性图的基础上,将线程相关性图分解为K棵子树,实现将具有高数据共享的线程划分到同一个线程组内,将具有较强数据访问争用关系的线程划分到不同的线程组内,从而降低因不同线程之间相互竞争共享计算资源引起的高存储访问冲突。
12)线程组到处理核的映射。以线程相关性子图和硬件架构存储层次图为基础,通过线程到处理核的静态绑定,实现线程到处理核硬件线程的映射。
本发明能够对应用程序不同线程的数据相关性进行度量,根据线程数据相关性进行应用线程的逻辑分组后实现线程到处理核的映射执行,从而在不引入额外运行时开销的情况下提升众核系统整体计算效能。具体的数据相关性线程分组映射过程如图2所示。
本发明针对众核系统下线程到处理核的映射问题,利用不同线程内部数据局部性及不同线程间的数据相关性特点,结合具体硬件架构特征,对线程进行逻辑分组;在线程逻辑分组的基础上,将线程映射到能充分利用数据局部性的不同处理核的不同硬件线程之上。本发明可以根据应用线程间的数据相关性特点,实现应用线程数据局部性和处理核空间局部性的较好匹配,减少共享存储访问冲突,降低不必要的数据传输开销,在不增加程序运行时额外开销和无需特殊硬件支持的情况下提高程序的计算性能,降低系统能耗,为众核系统提供了一种有效的线程到处理核的映射方法。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (1)
1.一种用于众核系统的线程数据相关性分组映射方法,其特征在于,包括如下步骤:
1)根据运行平台所支持的最大硬件线程数,采用均匀分配的方法将应用程序划分为相应数量的应用线程;
2)并行统计每个线程的存储访问数据,采用将访问数据插入平衡二叉树的方式,在插入数据结点的同时计算数据重用距离,并将相应数据重用信息记录在对应的数据结点内;线程数据重用距离指相同访问数据最近两次访问间隔内不同访问数据的个数;
3)遍历生成的平衡二叉树,计算反映整个线程数据局部性的线程平均数据重用距离;
4)根据线程平均数据重用距离,标识出不同线程的局部性模式,不同的局部性模式反映不同线程内部数据局部性特点;数据局部性模式定义如下:
DSP:RDj<Dmin,该模式为数据共享模式,数据重用距离RDj小于阈值Dmin线程所访问数据的时间局部性好;
DIP:RDj>Dmax,该模式为数据无关模式,数据重用距离RDj大于阈值Dmax,线程所访问数据的时间局部性差,数据之间相互独立,无数据相关性;
DDP:Dmin≤RDj≤Dmax,该模式为数据相关模式,数据重用距离RDj介于阈值Dmin与Dmax之间,线程所访问数据之间存在数据依赖关系;
其中Dmin及Dmax为反映不同数据访存特点的数据重用距离阈值;
5)以线程数据局部性模式为依据,将线程归并为不同的模式类;统计同一模式类内不同线程间相同数据的访问量,用线程相关性矩阵Affinity Matrix度量不同线程之间的数据相关性;
线程相关性矩阵反映了不同线程间的数据共享特性,矩阵行和列标分别代表不同的线程ID,矩阵中的每个元素值代表对应行列所指线程间的数据共享量;
6)将相关性矩阵转化成能直观反映线程之间局部性的相关性图AffinityGraph;
7)将线程相关性图和具体的硬件运行平台存储层次架构图相结合,将线程相关性图分解成K棵子树,实现将具有高数据共享的线程划分到同一个线程组内,将具有较强数据访问争用关系的线程划分到不同的线程组内;
8)根据众核处理器架构特点,通过静态绑定线程组到处理核的方法,实现应用线程到众核处理器处理核不同硬件线程的映射;具体映射方法为:
8-1)将同一线程组中的应用线程尽量分配到同一个处理核的不同硬件线程之上;如果该处理核线程已经全部分配,则将应用线程分配到相邻处理核的硬件线程之上;
8-2)将不同线程组中的应用线程分配到不同处理核的硬件线程之上,使无共享数据的线程分散到具有独立cache空间的不同处理核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610188032.8A CN105808358B (zh) | 2016-03-29 | 2016-03-29 | 一种用于众核系统的数据相关性线程分组映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610188032.8A CN105808358B (zh) | 2016-03-29 | 2016-03-29 | 一种用于众核系统的数据相关性线程分组映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808358A CN105808358A (zh) | 2016-07-27 |
CN105808358B true CN105808358B (zh) | 2019-10-18 |
Family
ID=56454120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610188032.8A Active CN105808358B (zh) | 2016-03-29 | 2016-03-29 | 一种用于众核系统的数据相关性线程分组映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808358B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255603A (zh) * | 2017-12-04 | 2018-07-06 | 广州供电局有限公司 | 文本数据分析优化方法、系统、存储介质和计算机设备 |
CN109710403B (zh) * | 2018-12-20 | 2020-08-14 | 深圳大学 | 应用进程映射方法、电子装置及计算机可读存储介质 |
CN110377428A (zh) * | 2019-07-23 | 2019-10-25 | 上海盈至自动化科技有限公司 | 一种集散式数据分析控制系统 |
CN111143042A (zh) * | 2019-11-14 | 2020-05-12 | 武汉纺织大学 | 一种通过依赖性分析加速gpu的并行化方法及系统 |
CN111176831B (zh) * | 2019-12-05 | 2023-05-02 | 西安交通大学 | 基于多线程共享内存通信的动态线程映射优化方法及装置 |
CN113139704B (zh) * | 2020-01-17 | 2024-04-09 | 中国石油化工股份有限公司 | 一种用于钻井仿真的钻井多参数计算系统及方法 |
CN116755864A (zh) * | 2023-08-14 | 2023-09-15 | 南京翼辉信息技术有限公司 | 一种避免大小核处理器激进迁移的控制方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7376808B2 (en) * | 2006-01-31 | 2008-05-20 | International Business Machines Corporation | Method and system for predicting the performance benefits of mapping subsets of application data to multiple page sizes |
US8914781B2 (en) * | 2008-10-24 | 2014-12-16 | Microsoft Corporation | Scalability analysis for server systems |
CN102081551A (zh) * | 2011-01-28 | 2011-06-01 | 中国人民解放军国防科学技术大学 | 一种感知微体系结构信息的操作系统线程调度方法 |
WO2013071485A1 (en) * | 2011-11-15 | 2013-05-23 | Intel Corporation | Scheduling thread execution based on thread affinity |
CN102929723B (zh) * | 2012-11-06 | 2015-07-08 | 无锡江南计算技术研究所 | 基于异构众核处理器的并行程序段划分方法 |
CN103914363B (zh) * | 2012-12-31 | 2016-10-26 | 华为技术有限公司 | 一种内存监控方法及相关装置 |
CN104572501B (zh) * | 2015-01-08 | 2017-05-17 | 北京航空航天大学 | 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法 |
-
2016
- 2016-03-29 CN CN201610188032.8A patent/CN105808358B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105808358A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105808358B (zh) | 一种用于众核系统的数据相关性线程分组映射方法 | |
CN106844703B (zh) | 一种面向数据库一体机的内存数据仓库查询处理实现方法 | |
Zheng et al. | Real-time big data processing framework: challenges and solutions | |
CN100594497C (zh) | 一种实现网络查询缓存的系统和查询方法 | |
CN103970602B (zh) | 一种面向x86多核处理器的数据流程序调度方法 | |
CN107329828A (zh) | 一种面向cpu/gpu异构集群的数据流编程方法和系统 | |
CN107273524A (zh) | 一种智能配电大数据应用系统 | |
CN103188346A (zh) | 支持分布式决策的大规模高并发访问i/o服务器负载均衡系统 | |
CN103207920A (zh) | 一种元数据并行采集系统 | |
CN107291539B (zh) | 基于资源重要程度的集群程序调度方法 | |
CN106502875A (zh) | 一种基于云计算的日志生成方法及系统 | |
Fan et al. | Intelligent resource scheduling based on locality principle in data center networks | |
CN103294912B (zh) | 一种面向移动设备基于预测的缓存优化方法 | |
CN110705716A (zh) | 一种多模型并行训练方法 | |
CN102404406A (zh) | 基于私有云存储的海洋实时数据同步系统 | |
CN105893151B (zh) | 一种基于cpu+mic异构平台的高维数据流的处理方法 | |
CN106897458A (zh) | 一种面向机电设备数据的存储及检索方法 | |
CN110019549A (zh) | 针对物联网平台的大数据存储系统 | |
Zhou et al. | Canary: Decentralized distributed deep learning via gradient sketch and partition in multi-interface networks | |
Wei | Load Balancing Optimization of In-Memory Database for Massive Information Processing of Internet of Things (IoTs) | |
CN102521153A (zh) | 一种多核处理器共享缓存分配方法 | |
Li | Construction of an interactive sharing platform for competitive intelligence data of marine resources under the background of intelligence construction | |
Subedi et al. | Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows | |
Bai et al. | An efficient skyline query algorithm in the distributed environment | |
Gao et al. | Construction and Optimization of Co-occurrence-attribute-interaction Model for Column Semantic Recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |