CN106598731A - 基于异构多核架构的运行时系统及其控制方法 - Google Patents
基于异构多核架构的运行时系统及其控制方法 Download PDFInfo
- Publication number
- CN106598731A CN106598731A CN201611092647.7A CN201611092647A CN106598731A CN 106598731 A CN106598731 A CN 106598731A CN 201611092647 A CN201611092647 A CN 201611092647A CN 106598731 A CN106598731 A CN 106598731A
- Authority
- CN
- China
- Prior art keywords
- core
- frequency
- task
- electric energy
- idle
- 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
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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
本发明提供一种基于异构多核架构的运行时系统及其控制方法,所述运行时系统包括:任务分配模块,用于根据所述性能差异比为为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务;任务窃取模块,用于根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡。本发明通过主核和从核的性能差异比为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务,并根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡,可以在相同异构多核架构中获取更低的能耗,在无需升级硬件设备与不增加能耗的提前下,极大化并行计算性能。
Description
技术领域
本发明涉及芯片技术领域,特别是涉及运行时系统技术领域,具体为一种基于异构多核架构的运行时系统及其控制方法。
背景技术
运行时系统(Runtime system),是程序运行模型中的控制部分。运行时系统是在程序执行的生命周期里工作。每一种编程语言都会设计其自身的运行模型,而大多数编程语言都实现了一定形式的运行时系统,主要功能是在程序运行时,实现该语言所要求的控制功能,满足语言所具备的特性。其中,最著名的例子是MIT Cilk运行时系统,它是一个并行编程模型,它的运行时系统主要用于实现程序运行的并行化特性。我们还需要一个运行时系统来处理编译后的代码。
为了满足高性能计算的迫切需求,许多新兴的计算机技术越来越依赖于并行计算,例如一个CPU上整合多个运算核心的多核架构。现如今,多核处理器已经在学术界和工业界成为了主流,大至数据中心,小至个人电脑和智能手机,多核处理器可谓是无处不在。因为多核处理器无论是在单位能耗上的性能表现还是在运算能力上,都要优于单核处理器。
对于多核处理器架构而言,均衡多个核之间的负载是必要的,这样每个核才能得以充分地利用,提升整体的CPU利用率。研究人员发现,在运行时系统中,动态任务调度是一种十分有效的负载均衡手段。任务窃取(Work-stealing)和任务共享(Work-sharing)就是动态任务调度中最常见的两种策略。
任务共享策略是将让所有核共享一个共享任务池,而任务窃取策略则是为每一个核都设置一个独立的任务队列。在大多数的任务窃取策略中,每个核在从自己的任务队列中添加或删除任务时都不需要加锁保护,直到当其队列为空,该核就会尝试从其他核的任务队列中窃取任务,此时需要一次加锁保护。但因为有多个核的任务队列可选择,因此相比于只有一个共享任务池的任务共享策略,任务窃取策略发生锁竞争的概率相对较低。正是如此,在传统的同构多核架构中,任务窃取策略具有良好的性能表现。
然而,芯片供应商开始生产异构的多核芯片(AMC),形成异构多核的芯片架构,所谓异构是指包含两个性能地位不同的处理核:主核(性能较强)和从核(性能较弱)。在保证高性能的前提下,满足在不同类型的负载中低能耗的要求。在AMC架构中,例如Arm的Big-Little和Intel的Quick-IA芯片,主核即“大”核(性能较强)负责处理较复杂的计算任务,而“小”核即从核(性能较弱)负责处理简单事务性的工作。Intel在Quick-IA的设计中就提出,构建一个AMC架构的芯片时,将多个异构的CPU整合到一个共享内存的计算机中,每个CPU内的核是同构的,而CPU间是异构的,这样的AMC架构芯片会更加高效。一台计算机同时整合了多个CPU时,内存一般会按非一致性内存访问结构(NUMA)进行组织。在基于NUMA内存系统的AMC芯片中,每个CPU(NUMA节点)都有自己的本地内存节点,并且一个核从本地内存节点访问数据要比通过互连链路访问远程内存节点要快。因此,传统的任务窃取策略由于无法感知异构CPU,就会导致大量的远程内存节点访问,增加了运行时系统的能耗。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于异构多核架构的运行时系统及其控制方法,用于解决现有技术中异构多核架构中动态任务调度能耗较大的问题。
为实现上述目的及他相关目的,本发明在一方面提供一种基于异构多核的运行时系统,所述运行时系统包括:任务分配模块,用于为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务,包括:异构特征和性能获取单元,用于获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中所述主核和所述从核的性能;差异比设定单元,用于根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比;任务分配单元,用于根据所述性能差异比为所述主核和所述从核分配任务;任务窃取模块,用于根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡;所述任务窃取模块包括:空闲核检测单元,用于检测主核和从核中的空闲核;电能余量策略选择单元,用于计算将所述空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式;任务窃取单元,用于在确定所述电能余量的运用模式为独占模式时,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核;频率调整单元,用于在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率;差异比迭代更新单元,用于根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值,将每次更新的所述性能差异比输出至所述任务分配单元。
于本发明的一实施例中,所述性能差异比的初始值设为1。
于本发明的一实施例中,当同一个CPU内核间负载不均衡时,所述任务窃取单元根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。
于本发明的一实施例中,当不同CPU之间的负载不均衡时,所述频率调整单元将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
于本发明的一实施例中,所述频率调整单元利用DVFS动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
实现上述目的,本发明在另外一方面还提供一种芯片,所述芯片为异构多核硬件结构,所述芯片内装设有如上所述的基于异构多核的运行时系统。
为实现上述目的,本发明在另外一方面还提供一种基于异构多核的运行时系统的控制方法,所述控制方法包括:获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中异构的至少两个CPU的主核和从核的性能;根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比;根据所述性能差异比为所述主核和所述从核分配任务;根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式;在确定所述电能余量的运用模式为独占模式时,从其它所述主核或所述从核窃取任务以提供给所述空闲核;在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率;根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,根据更新的所述性能差异比为所述主核和所述从核分配任务,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值。
于本发明的一实施例中,所述性能差异比的初始值设为1。
于本发明的一实施例中,当同一个CPU内核间负载不均衡时,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。
于本发明的一实施例中,当不同CPU之间的负载不均衡时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
于本发明的一实施例中,利用DVFS动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
如上所述,本发明的一种基于异构多核架构的运行时系统及其控制方法,具有以下有益效果:
1、本发明提供了一套基于异构多核架构的任务窃取机制,通过主核和从核的性能差异比为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务,并根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡,可以在相同异构多核架构中获取更低的能耗,在无需升级硬件设备与不增加能耗的提前下,极大化并行计算性能。
2、本发明面向用户提供程序动态任务调度服务,可以间接为潜在的异构多核芯片提供调度技术的支持。
3、本发明简单实用,具有良好的市场前景和广泛的适用性。
附图说明
图1显示为本发明的一种基于异构多核的运行时系统的控制方法的流程示意图。
图2显示为本发明的一种基于异构多核的运行时系统的原理框图。
图3显示为本发明与现有的软件层的关系架构图。
图4显示为本发明的一种基于异构多核的运行时系统对应的异构多核硬件的结构示意图。
图5显示为本发明的基于异构多核架构的运行时系统及其控制方法的实施过程示意图。
元件标号说明
1 基于异构多核的运行时系统
10 任务分配模块
101 异构特征和性能获取单元
102 差异比设定单元
103 任务分配单元
20 任务窃取模块
201 空闲核检测单元
202 电能余量策略选择单元
203 任务窃取单元
204 频率调整单元
205 差异比迭代更新单元
S101~S107 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本实施例的目的在于提供一种基于异构多核架构的运行时系统及其控制方法,用于解决现有技术中异构多核架构中动态任务调度能耗较大的问题。以下将详细阐述本发明的一种基于异构多核架构的运行时系统及其控制方法的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种基于异构多核架构的运行时系统及其控制方法。
具体地,本实施例旨在设计、实现一个高性能、低能耗、基于异构多核架构的任务窃取运行时系统其控制方法,提供非对称感知的任务分配和可选择的任务窃取,分别完成基于异构CPU的任务分配和运行时的任务窃取工作,便于应用开发人员可以在无需升级硬件设备和保证高性能的前提下,就可以在相同异构多核架构中获取更低的能耗。
以下对本实施例的基于异构多核架构的运行时系统及其控制方法进行详细说明。
如图1所示,本实施例提供一种基于异构多核的运行时系统的控制方法,所述控制方法包括:
步骤S101,获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中异构的至少两个CPU的主核和从核的性能。主核即性能较强,从核即性能较弱,例如,为双CPU双核的异构多核硬件结构,一个CPU性能较强作为主核,另外一个CPU性能较弱作为从核,分别获取主核和从核的性能。
步骤S102,根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比。其中,所述性能差异比(定义为Alpha表示)决定了数据分布,再按照数据分布情况,就近地将任务分配至数据所在的CPU上,以减少远程内存访问。其中,所述性能差异比的初始值设为1,表示初始时大核与小核的运算性能相同。通过所述性能差异比可以使得所述主核和所述从核的性能差异得到量化。
步骤S103,根据所述性能差异比为所述主核和所述从核分配任务。
步骤S104,根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式。具体地,由于负载不均衡的存在,一旦所述主核和所述从核中有核处于等待状态,本实施例中,假定将该空闲核的频率调整至最低频率,则这部分通过调整频率所节约的能耗称为电能余量。空闲核的电能余量具有两种使用方式:电能余量共享的共享模式和电能余量独占的独占模式。
电能余量独占模式是指空闲核独占由自己所产生的电能余量,换言之,空闲核通过任务窃取模式的方式重新回到运行状态;而电能余量共享模式则是指通过调频技术提高其他核的频率来充分利用空闲核产生的电能余量。如此一来,就可以在保证能耗不增加的情况下最大化程序的运行性能。
步骤S105,在确定所述电能余量的运用模式为独占模式时,从其它所述主核或所述从核窃取任务以提供给所述空闲核。
步骤S106,在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
由于跨NUMA节点进行任务窃取的开销,不低于远程内存访问,因此电能余量独占模式更适合应用于同一个CPU内;而当出现CPU间的负载不均衡时,就需要计算远程任务窃取开销,如果其所产生的性能增益不大于1,就采用电能余量共享模式,降低空闲核的频率同时提高其他正在运行的核的频率。当所有任务队列已经为空,并且还有少数核仍然在执行最后的任务时,更适合采用电能余量共享模式。
所以,于本实施例中,当同一个CPU内核间负载不均衡时,确定所述电能余量的运用模式为独占模式,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。
当不同CPU之间的负载不均衡时,确定所述电能余量的运用模式为共享模式,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
具体地,于本实施例中,利用DVFS(Dynamic voltage and frequency scaling,动态电压频率调整)动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
步骤S107,根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,根据更新的所述性能差异比为所述主核和所述从核分配任务,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值。
每一轮远程内存访问次数迭代开始之时,对比上上轮迭代和上一轮迭代中远程内存访问的次数,来决定性能差异比(定义为Alpha)的变化走向,直到收敛至一个局部最优解为止。
为实现上述基于异构多核的运行时系统的控制方法,本实施例提供一种基于异构多核的运行时系统,如图2所示,所述基于异构多核的运行时系统1包括:非对称感知的任务分配模块10和可选择的任务窃取模块20。以下对本实施例中的任务分配模块10和任务窃取模块20进行详细说明。
如图3所示,本实施例中基于异构多核的运行时系统1运行时系统的软件架构分为三层:用户API层、编译层和运行时系统层。其中,用户API层:用户API层主要由用户源代码所组成,用户通过编写C语言源代码,并按照规范对程序进行并行化,便可在异构多核架构上运行。本实施例中的非对称感知的任务分配模块10运行于编译层,即编译层包括原有的代码编译模块和新增的非对称感知的任务分配模块10。本实施例中的可选择的任务窃取模块20运行于运行时系统层,运行时系统层是主要的软件系统,于本实施例中,在用户可执行程序运行时,运行时系统通过可选择任务窃取模块20实时地进行异构核间的负载均衡工作。
所述代码编译模块负责编译用户源代码。首先将用户源代码中调用API接口的代码段翻译成C语言程序,并将程序执行入口代码段、运行时系统控制代码段等添加至用户源代码中,再编译成生成可执行程序。
本实施例中的非对称感知的任务分配模块10运行于编译层,即编译层包括原有的代码编译模块和新增的非对称感知的任务分配模块10。非对称感知任务分配模块10与代码编译模块是一个有机整体,但各司其职。所述任务分配模块10负责静态地感知硬件的异构特征,并初始化多核硬件本体中所述主核和所述从核的性能差异比Alpha为1,表示初始时所述主核和所述从核(大核与小核)的运算性能相同。所述任务分配模块10的第二个功能是将非对称感知的负载均衡算法添加至用户源代码中,算法的一种实例如表1所示:
表1
该算法通过不同迭代中远程内存访问次数的差异,在运行时启发式地求解出alpha的局部最优解。所述任务分配模块10的第三个功能是为运行时系统中可选择任务窃取模块20提供必需的编译分析信息。
于本实施例中,所述任务分配模块10用于为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务。具体地,所述任务分配模块10包括:异构特征和性能获取单元101,差异比设定单元102以及任务分配单元103。
其中,于本实施例中,所述异构特征和性能获取单元101用于获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中所述主核和所述从核的性能。主核即性能较强,从核即性能较弱,例如,为双CPU双核的异构多核硬件结构,一个CPU性能较强作为主核,另外一个CPU性能较弱作为从核,分别获取主核和从核的性能。
于本实施例中,所述差异比设定单元102用于根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比。其中,所述性能差异比(定义为Alpha表示)决定了数据分布,再按照数据分布情况,就近地将任务分配至数据所在的CPU上,以减少远程内存访问。其中,所述性能差异比的初始值设为1,表示初始时大核与小核的运算性能相同。通过所述性能差异比可以使得所述主核和所述从核的性能差异得到量化。
于本实施例中,所述任务分配单元103用于根据所述性能差异比为所述主核和所述从核分配任务。
本实施例中的可选择的任务窃取模块20运行于运行时系统层,所述运行时系统层中的用户可执行程序由用户源代码的代码逻辑和编译过程中所添加代码段所组成,编译过程中将程序执行入口代码、启发式更新alpha值算法等代码段添加至用户可执行程序中,并且在运行时阶段,启发式更新alpha值算法在每一轮迭代开始时进行工作,更新alpha直到求解出局部最优解,表示所述主核和所述从核(大核与小核)间的性能差异通过alpha得到量化。
于本实施例中,所述任务窃取模块20用于根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡。可选择的任务窃取模块20负责在用户可执行程序运行时,动态地感知硬件的异构特征,并且通过电能余量共享或电能余量独占的模式实现负载均衡。具体地,于本实施例中,所述任务窃取模块20包括:空闲核检测单元201,电能余量策略选择单元202,任务窃取单元203,频率调整单元204以及差异比迭代更新单元205。
于本实施例中,所述空闲核检测单元201用于检测主核和从核中的空闲核;所述电能余量策略选择单元202用于计算将所述空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式。
具体地,由于负载不均衡的存在,一旦所述主核和所述从核中有核处于等待状态,本实施例中,假定将该空闲核的频率调整至最低频率,则这部分通过调整频率所节约的能耗称为电能余量。空闲核的电能余量具有两种使用方式:电能余量共享的共享模式和电能余量独占的独占模式。
其中,所述电能余量独占模式是指空闲核独占由自己所产生的电能余量,换言之,空闲核通过任务窃取模式的方式重新回到运行状态;而电能余量共享模式则是指通过调频技术提高其他核的频率来充分利用空闲核产生的电能余量。如此一来,就可以在保证能耗不增加的情况下最大化程序的运行性能。
于本实施例中,所述任务窃取单元203,用于在确定所述电能余量的运用模式为独占模式时,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。所述频率调整单元204用于在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
由于跨NUMA节点进行任务窃取的开销,不低于远程内存访问,因此电能余量独占模式更适合应用于同一个CPU内;而当出现CPU间的负载不均衡时,就需要计算远程任务窃取开销,如果其所产生的性能增益不大于1,就采用电能余量共享模式,降低空闲核的频率同时提高其他正在运行的核的频率。当所有任务队列已经为空,并且还有少数核仍然在执行最后的任务时,更适合采用电能余量共享模式。
具体地,于本实施例中,所述频率调整单元204利用DVFS(Dynamic voltage andfrequency scaling,动态电压频率调整)动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
所以,于本实施例中,当同一个CPU内核间负载不均衡时,确定所述电能余量的运用模式为独占模式,所述任务窃取单元203根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。当不同CPU之间的负载不均衡时,确定所述电能余量的运用模式为共享模式,所述频率调整单元204将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
于本实施例中,所述差异比迭代更新单元205用于根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值,将每次更新的所述性能差异比输出至所述任务分配单元103。
每一轮远程内存访问次数迭代开始之时,对比上上轮迭代和上一轮迭代中远程内存访问的次数,来决定性能差异比(定义为Alpha)的变化走向,直到收敛至一个局部最优解为止。
此外,本实施例还提供一种芯片,所述芯片为异构多核硬件结构,所述芯片内装设有如上所述的基于异构多核的运行时系统1。上述已经对所述基于异构多核的运行时系统1进行了详细说明,在此不再赘述。
为使本领域技术人员进一步理解本实施例汇总的一种基于异构多核的运行时系统1及其控制方法,以下以具体实例说明本实施例中基于异构多核的运行时系统1及其控制方法的实施过程。
与本实施例中,底层硬件是一个基于NUMA(Non Uniform Memory AccessArchitecture,非统一内存访问)内存系统的异构多核架构。如图4所示,是一个双核双CPU的AMC芯片示意图。图中“B”代表主核(大核,性能较强),“L”代表从核(小核,性能较弱),每个核具有独立的L1Cache和L2Cache,在同一个CPU内的所有核有一个共享的SharedL3Cache,CPU间通过一个高速互连链路相连。NUMA内存节点:如图4所示,每个CPU有独立的NUMA内存节点,远程内存数据访问需要通过高速互连链路,所产生的开销在远大于本地内存访问。NUMA节点:每个CPU称为NUMA节点,对应一个NUMA内存节点;在异构多核架构下,不同CPU之间的性能存在差异。如图5所示,本实施例中基于异构多核的运行时系统1及其控制方法的实施过程如下:
1)用户编写程序:属于用户API层功能。用户通过调用“用户API层”的API函数,按照编程模型的要求编写代码。用户与用户API层的交互:用户根据用户API层提供的API编写源程序;经过本地调试和验证正确后,编写正确的程序。
2)API代码段翻译并初始化参数:属于编译层功能之一。由于部分API代码的调用不是GNU C标准库里的函数,因此在这个过程中,需要将用户调用的相关API翻译成C语言,并且初始化必要的参数,例如Alpha值。
3)添加启发式更新Alpha代码段:属于编译层功能之一。由于Alpha值决定了每轮迭代的初始任务分配,因此只能通过在运行时系统里动态地获取迭代间的历史信息,利用上述的启发式算法更新Alpha值。
4)添加程序入口代码段等:属于编译层功能之一。编译过程中一项必要的工作,为用户自定义程序添加程序入口代码,在运行时引导程序启动等。
5)编译:属于编译模块功能之一。
6)编译成功判断:属于编译层功能之一。如果编译成功,则由用户决定是否执行;如果编译失败,则返回用户错误信息,直到用户完成代码修正并再次进入编译流程。
7)可执行程序执行:属于运行时系统层功能之一。
8)更新Alpha值:属于运行时系统层功能之一。启发式更新Alpha算法根据历史信息更新Alpha值。每一轮迭代开始之时,对比上上轮迭代和上一轮迭代中远程内存访问的频次,来决定Alpha值的变化走向,直到收敛至一个局部最优解为止。
9)根据新的Alpha分配任务:属于运行时系统层功能之一。Alpha值决定了数据分布,再按照数据分布情况,就近地将任务分配至数据所在的CPU上,以减少远程内存访问。
10)任务执行:属于运行时系统层功能之一。
11)电能余量共享或电能余量独占:属于运行时系统层功能之一。根据此时任务队列的情况,如果所有队列为空,只有部分核仍在处理自己最后的任务,则采用电能余量共享模式;如果在同一个CPU内发生负载不均衡,此时采用电能余量独占模式进行任务窃取,既不会产生额外的远程内存访问也能提高CPU的整体计算能力;如果发生CPU间的负载不均衡,需要计算远程任务窃取的开销估值,若远程任务窃取所产生的性能增益不大于1,则采用电能余量共享模式,否则采用电能余量独占模式进行任务窃取。
用户与编译层的交互包括:不同的AMC芯片,远程任务窃取所产生的开销不尽相同。对于新的AMC芯片,用户可通过离线分析的方法,分析并计算远程任务窃取的性能增益,如果恒大于1,则在编译层中可以指定当出现CPU间负载不均衡时,直接采用电能余量独占进行远程任务窃取;否则,直接采用电能余量共享模式。
12)迭代结束判断:属于运行时系统层功能之一。迭代结束则输出计算结果;否则进入新一轮迭代。其中,用户与运行时系统层的交互包括:指定运行时的迭代次数,运行时系统返回结果给用户。
于本实施例中,编译层与运行时系统层的交互包括:编译层需要给用户源代码中添加不同代码段,例如启发式更新Alpha算法代码段,运行时系统层在程序执行过程中调用编译层所添加的代码段,完成动态Alpha值更新等。
综上所述,本发明提供了一套基于异构多核架构的任务窃取机制,通过主核和从核的性能差异比为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务,并根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡,可以在相同异构多核架构中获取更低的能耗,在无需升级硬件设备与不增加能耗的提前下,极大化并行计算性能;本发明面向用户提供程序动态任务调度服务,可以间接为潜在的异构多核芯片提供调度技术的支持;本发明简单实用,具有良好的市场前景和广泛的适用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (11)
1.一种基于异构多核的运行时系统,其特征在于,所述运行时系统包括:
任务分配模块,用于为异构多核硬件本体中异构的至少两个CPU的各主核和各从核分配任务,包括:
异构特征和性能获取单元,用于获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中所述主核和所述从核的性能;
差异比设定单元,用于根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比;
任务分配单元,用于根据所述性能差异比为所述主核和所述从核分配任务;
任务窃取模块,用于根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量进行负载均衡;所述任务窃取模块包括:
空闲核检测单元,用于检测主核和从核中的空闲核;
电能余量策略选择单元,用于计算将所述空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式;
任务窃取单元,用于在确定所述电能余量的运用模式为独占模式时,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核;
频率调整单元,用于在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率;
差异比迭代更新单元,用于根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值,将每次更新的所述性能差异比输出至所述任务分配单元。
2.根据权利要求1所述的基于异构多核的运行时系统,其特征在于,所述性能差异比的初始值设为1。
3.根据权利要求1所述的基于异构多核的运行时系统,其特征在于,当同一个CPU内核间负载不均衡时,所述任务窃取单元根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。
4.根据权利要求1所述的基于异构多核的运行时系统,其特征在于,当不同CPU之间的负载不均衡时,所述频率调整单元将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
5.根据权利要求1所述的基于异构多核的运行时系统,其特征在于,所述频率调整单元利用DVFS动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
6.一种芯片,所述芯片为异构多核硬件结构,其特征在于,所述芯片内装设有如权利要求1至权利要求5任一权利要求所述的基于异构多核的运行时系统。
7.一种基于异构多核的运行时系统的控制方法,其特征在于,所述控制方法包括:
获取异构多核硬件本体的异构特征并根据所述异构特征获取异构多核硬件本体中异构的至少两个CPU的主核和从核的性能;
根据所述主核和所述从核的性能获取所述主核和所述从核的性能差异比;
根据所述性能差异比为所述主核和所述从核分配任务;
根据将所述主核和所述从核中的空闲核的频率调节至最低频率时所能节约的能耗形成的电能余量并确定所述电能余量的运用模式为独占模式或共享模式;
在确定所述电能余量的运用模式为独占模式时,从其它所述主核或所述从核窃取任务以提供给所述空闲核;
在确定所述电能余量的运用模式为共享模式时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率;
根据远程内存访问次数进行迭代对比,并根据迭代对比的结果判断所述性能差异比的变化趋势,通过所述性能差异比的变化趋势更新所述性能差异比,根据更新的所述性能差异比为所述主核和所述从核分配任务,直至所述性能差异比更新为体现远程内存访问次数最少时的最优值。
8.根据权利要求7所述的基于异构多核的运行时系统的控制方法,其特征在于,所述性能差异比的初始值设为1。
9.根据权利要求7所述的基于异构多核的运行时系统的控制方法,其特征在于,当同一个CPU内核间负载不均衡时,根据所述空闲核的电能余量从其它所述主核或所述从核窃取任务以提供给所述空闲核。
10.根据权利要求7所述的基于异构多核的运行时系统的控制方法,其特征在于,当不同CPU之间的负载不均衡时,将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
11.根据权利要求7或10所述的基于异构多核的运行时系统的控制方法,其特征在于,利用DVFS动态调频方法将所述空闲核的频率调节至最低频率并根据所述空闲核的电能余量提升其它所述主核或所述从核的频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611092647.7A CN106598731B (zh) | 2016-12-01 | 2016-12-01 | 基于异构多核架构的运行时系统及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611092647.7A CN106598731B (zh) | 2016-12-01 | 2016-12-01 | 基于异构多核架构的运行时系统及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598731A true CN106598731A (zh) | 2017-04-26 |
CN106598731B CN106598731B (zh) | 2019-11-19 |
Family
ID=58594665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611092647.7A Active CN106598731B (zh) | 2016-12-01 | 2016-12-01 | 基于异构多核架构的运行时系统及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598731B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193660A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种numa架构下cpu频率的调整方法及其装置 |
CN109002659A (zh) * | 2018-09-07 | 2018-12-14 | 西安交通大学 | 一种基于超级计算机的流体机械仿真程序优化方法 |
CN109725700A (zh) * | 2017-10-29 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 动态调压调频装置和方法 |
CN110413409A (zh) * | 2019-07-15 | 2019-11-05 | 北京控制工程研究所 | 一种多探头星敏感器多核系统任务分配的方法及介质 |
CN112035578A (zh) * | 2020-11-06 | 2020-12-04 | 北京谷数科技股份有限公司 | 基于众核处理器的数据并行处理方法及装置 |
CN112291346A (zh) * | 2020-10-29 | 2021-01-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 面向异构节点集群的拟态应用部署管理系统、方法及介质 |
CN112346557A (zh) * | 2019-08-06 | 2021-02-09 | 三星电子株式会社 | 多核系统及其控制操作 |
CN112559440A (zh) * | 2020-12-30 | 2021-03-26 | 海光信息技术股份有限公司 | 多小芯片系统中实现串行业务性能优化的方法及装置 |
CN113031920A (zh) * | 2021-05-20 | 2021-06-25 | 华控清交信息科技(北京)有限公司 | 一种芯片和用于芯片的批量模运算方法 |
CN113157417A (zh) * | 2021-04-23 | 2021-07-23 | 复旦大学 | 针对多核数据独立任务的启发式调度算法 |
CN114895773A (zh) * | 2022-04-08 | 2022-08-12 | 中山大学 | 异构多核处理器的能耗优化方法、系统、装置及存储介质 |
CN112346557B (zh) * | 2019-08-06 | 2024-05-24 | 三星电子株式会社 | 多核系统及其控制操作 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150242240A1 (en) * | 2012-04-10 | 2015-08-27 | Empire Technology Development Llc | Balanced processing using heterogeneous cores |
-
2016
- 2016-12-01 CN CN201611092647.7A patent/CN106598731B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150242240A1 (en) * | 2012-04-10 | 2015-08-27 | Empire Technology Development Llc | Balanced processing using heterogeneous cores |
Non-Patent Citations (1)
Title |
---|
陈全: ""面向复杂并行架构的高性能低功耗任务调度的研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193660A (zh) * | 2017-05-25 | 2017-09-22 | 深信服科技股份有限公司 | 一种numa架构下cpu频率的调整方法及其装置 |
CN109725700A (zh) * | 2017-10-29 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 动态调压调频装置和方法 |
CN109002659A (zh) * | 2018-09-07 | 2018-12-14 | 西安交通大学 | 一种基于超级计算机的流体机械仿真程序优化方法 |
CN109002659B (zh) * | 2018-09-07 | 2020-08-28 | 西安交通大学 | 一种基于超级计算机的流体机械仿真程序优化方法 |
CN110413409B (zh) * | 2019-07-15 | 2021-08-10 | 北京控制工程研究所 | 一种多探头星敏感器多核系统任务分配的方法及介质 |
CN110413409A (zh) * | 2019-07-15 | 2019-11-05 | 北京控制工程研究所 | 一种多探头星敏感器多核系统任务分配的方法及介质 |
CN112346557A (zh) * | 2019-08-06 | 2021-02-09 | 三星电子株式会社 | 多核系统及其控制操作 |
CN112346557B (zh) * | 2019-08-06 | 2024-05-24 | 三星电子株式会社 | 多核系统及其控制操作 |
CN112291346A (zh) * | 2020-10-29 | 2021-01-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 面向异构节点集群的拟态应用部署管理系统、方法及介质 |
CN112291346B (zh) * | 2020-10-29 | 2022-08-16 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 面向异构节点集群的拟态应用部署管理系统、方法及介质 |
CN112035578A (zh) * | 2020-11-06 | 2020-12-04 | 北京谷数科技股份有限公司 | 基于众核处理器的数据并行处理方法及装置 |
CN112559440A (zh) * | 2020-12-30 | 2021-03-26 | 海光信息技术股份有限公司 | 多小芯片系统中实现串行业务性能优化的方法及装置 |
CN112559440B (zh) * | 2020-12-30 | 2022-11-25 | 海光信息技术股份有限公司 | 多小芯片系统中实现串行业务性能优化的方法及装置 |
CN113157417A (zh) * | 2021-04-23 | 2021-07-23 | 复旦大学 | 针对多核数据独立任务的启发式调度算法 |
CN113031920A (zh) * | 2021-05-20 | 2021-06-25 | 华控清交信息科技(北京)有限公司 | 一种芯片和用于芯片的批量模运算方法 |
CN114895773A (zh) * | 2022-04-08 | 2022-08-12 | 中山大学 | 异构多核处理器的能耗优化方法、系统、装置及存储介质 |
CN114895773B (zh) * | 2022-04-08 | 2024-02-13 | 中山大学 | 异构多核处理器的能耗优化方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106598731B (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598731A (zh) | 基于异构多核架构的运行时系统及其控制方法 | |
CN100511151C (zh) | 多路多核服务器及其cpu的虚拟化处理方法 | |
US20170123857A1 (en) | Runspace method, system and apparatus | |
CN102270159B (zh) | 一种虚拟化环境中的准入控制与负载均衡方法 | |
Hormati et al. | Flextream: Adaptive compilation of streaming applications for heterogeneous architectures | |
Ravi et al. | A dynamic scheduling framework for emerging heterogeneous systems | |
CN103207782A (zh) | 基于multi-kernel MOS 的分区系统构建方法 | |
CN101788920A (zh) | 一种基于处理器分区技术的cpu虚拟化方法 | |
WO2012067688A1 (en) | Codeletset representation, manipulation, and execution-methods, system and apparatus | |
CN103279445A (zh) | 运算任务的计算方法及超算系统 | |
CN104375805A (zh) | 采用多核处理器仿真可重构处理器并行计算过程的方法 | |
CN102508712A (zh) | 异构多核可重构混合系统中的中间件系统及任务执行方法 | |
Torng et al. | Asymmetry-aware work-stealing runtimes | |
Goli et al. | Heterogeneous algorithmic skeletons for fast flow with seamless coordination over hybrid architectures | |
CN111352727A (zh) | 一种应用于图像混合集群处理系统的图像处理方法 | |
CN110502334A (zh) | 基于混合内存架构的带宽感知任务窃取方法、系统及芯片 | |
Pathania et al. | Distributed scheduling for many-cores using cooperative game theory | |
CN105975341A (zh) | 面向多核处理器的内存管理系统 | |
Escobar et al. | Energy‐aware load balancing of parallel evolutionary algorithms with heavy fitness functions in heterogeneous CPU‐GPU architectures | |
Padoin et al. | Managing power demand and load imbalance to save energy on systems with heterogeneous CPU speeds | |
Rodríguez et al. | Lightweight asynchronous scheduling in heterogeneous reconfigurable systems | |
Serban et al. | Autonomic scheduling of tasks from data parallel patterns to CPU/GPU core mixes | |
CN109144722A (zh) | 一种多应用高效共用fpga资源的管理系统及方法 | |
Issenin et al. | Data-reuse-driven energy-aware cosynthesis of scratch pad memory and hierarchical bus-based communication architecture for multiprocessor streaming applications | |
Hippold et al. | Task pool teams for implementing irregular algorithms on clusters of SMPs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |