CN107408056A - 用于动态循环‑处理器映射的调度设备和方法 - Google Patents
用于动态循环‑处理器映射的调度设备和方法 Download PDFInfo
- Publication number
- CN107408056A CN107408056A CN201580078206.9A CN201580078206A CN107408056A CN 107408056 A CN107408056 A CN 107408056A CN 201580078206 A CN201580078206 A CN 201580078206A CN 107408056 A CN107408056 A CN 107408056A
- Authority
- CN
- China
- Prior art keywords
- core
- type
- circulation
- parallel
- controlling equipment
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种调度设备以及一种用于将程序块映射到包括至少两种类型的核心c1、c2的异构多核系统的核心的方法,所述方法包括以下步骤:在运行时估计(S1)用于并行执行至少一个程序块的所述异构多核系统的可用资源;确定(S2)所述程序块中将与所述异构多核系统的所述至少两种类型的核心中的每一个相关联的第一循环数n1和第二循环数n2,其中所述程序块的总循环数N=n1+n2将在所述所估计的可用资源上在所述异构多核系统中执行;检查(S3)功耗条件,且如果不满足所述耗电条件,修改所述第一类型c1核心的时钟频率f1且再次确定将与所述至少两种类型c1、c2的核心相关联的所述第一循环数n1和所述第二循环数n2;以及在所述异构多核系统的所述第一类型c1的可用核心上并行执行(S4)所述确定的第一循环数n1且在所述第二类型c2的所述可用核心上并行执行所述确定的第二循环数n2。
Description
技术领域
本公开涉及主要采用用于多核计算系统的多核处理器形式的计算机架构中的多并行计算的领域,具体来说,涉及一种调度设备以及一种用于多核和众核异构计算系统中的动态循环-处理器映射的自适应性能和功率调度方法。
背景技术
多核和众核异构计算系统(multi-core and many-core heterogeneouscomputing system,MMCHCS)近来广泛用于联网移动系统,例如移动电话、PDA以及甚至小型笔记本电脑。
这些系统含有两种类型的处理器核心:期望高效运行的常见核心以及期望用于功率感知运行的低功率核心。第二种类型的核心允许在可能的情况下切断计算系统的能耗。这样还会导致计算系统的功耗减小,从而允许延长移动系统的电池使用寿命而无需再充电。所有核心或处理器通常位于同一芯片上,在此情况下这些系统被称为片上系统(system-on-chip,SoC)计算系统。
用于众核和多核异构计算系统的运行的常见系统软件包含编译器和调度器。编译器负责创建在此类系统上运行的程序,而调度器负责加载运行时将在所述系统上执行的程序。
针对这些系统的软件开发的主要问题涉及提供一种对以下问题的解决方案:何种核心应该用于当前程序块在众核和多核异构计算系统中的运行。在所有现代编译器中,程序员手动指定所要使用的核心种类。
这意味着遵循自身有关众核和多核异构计算系统的效率预测的想法的每名程序员决定将使用何种核心来运行当前程序块且自己手动将当前块固定地分配给程序中的核心类型。在以下程序运行期间,不可能以任何方式改变此分配。现代调度器也无法改变这些策略。这会导致众核和多核异构计算系统的效率由于计算不均衡而降低。
每个程序100由如图1中所示出的序列块101到109构成。第一块101和最后一个块109始终是序列块,但所有其它中间块103、105、107可以是序列块、并行块或大规模并行块。
并行块103与大规模并行块107之间的差异在于当并行块103在指定核心上运行时的并行循环的数目。例如,如果并行块103具有8个循环且计算系统含有8个可用核心,此块将是并行的或简单并行的,但不是大规模并行的,因为所有循环可同时加载到核心上。如果存在8个循环,但系统上只有2个可用核心,存在大规模并行块,因为需要4次才能加载所有循环。
下文使用以下大规模并行块的定义。块中存在K个核心或处理器以及N个并行循环。随后如果N/K>3,考虑的块是大规模并行的。否则所述块是简单并行的或并行的。因此,如果可以用1次、2次或3次加载所有可用循环,考虑的并行块是简单并行的或并行的。否则,当逐个循环加载并行块的所有可用循环需要4次或更多次时,存在大规模并行块。
当不同类型的复杂软件同时在众核和多核异构计算系统上运行时,不会考虑动态变化的环境。提供更好的性能以及防止在此类情况下功耗增加要求非常复杂的数学方法,例如,具有若干变量以及如等式和不等式的不同类型限制的非线性优化问题。最近,此类问题的解决方案主要由数值方法提供。但这些方法涉及高计算时间且在调度环境中由于所涉及的大开销而不可行。
EP 1 574 965 B1描述了片上网络设备,尤其是任选地含有可重新配置的硬件单元片的异构多处理器片上网络设备,以及用于控制所述设备的方法和操作系统。操作系统处理运行时间流量管理方法或任务迁移方法,或这些方法的组合。操作系统是部分分布式的但具有集中式主控器。流量管理方法和装置使用统计方法。描述了一种具有至少双片上网络的系统以及操作所述系统的方法。所述系统至少具有片上通信网络,所述片上通信网络包括第一片上数据流量网络和第二片上控制流量网络,所述系统具有控制网络接口组件和数据网络接口组件。
EP 1 966 673 A2描述了基于系统级功率管理的性能分析,其中提出自适应动态频率缩放和动态电压缩放技术。通过使用硬件性能计数器获得有关片上系统负载的运行时间信息来提供对SoC系统的动态分析。基于这些信息数据,形成有关提高或降低系统频率或电压的解决方案。
US 2008/0301474 A1描述了运行时间期间用于运行时的SoC的功率管理的动态性能分析。
发明内容
本发明的目的是提供一种用于针对多核和众核异构计算系统的多并行计算的改进技术。此技术动态地考虑计算系统的当前状态且定义可用于运行时的计算系统的动态及自适应加载和管理的空闲资源。目标是减小或甚至避免核心或处理器加载与任务完成的不均衡,且减小计算系统的功耗。
本发明的目的由独立权利要求的特征实现。另外的实施形式通过从属权利要求、说明书以及图式是显而易见的。
根据第一方面,提供一种用于将程序块动态地映射到异构多核系统的核心的方法,所述异构多核系统包括至少两种类型的核心c1和c2。所述方法包括以下步骤:在运行时估计用于并行执行至少一个程序块的异构多核系统的可用资源;确定程序块中将与异构多核系统的至少两种类型的核心中的每一个相关联的第一循环数n1和第二循环数n2,其中程序块的总循环数N=n1+n2将在所估计的可用资源上在异构多核系统中执行;检查功耗条件,且如果不满足功耗条件,修改第一类型c1核心的时钟频率f1且再次确定将与至少两种类型c1、c2的核心中的每一个相关联的第一循环数n1和第二循环数n2;以及在异构多核系统的第一类型c1的可用核心上并行执行确定的第一循环数n1且在第二类型c2的可用核心上并行执行确定的第二循环数n2。
下文中的表达式时钟频率或时钟速率是指多核处理器的核心运行的频率,且用作处理器速度的指示。核心的频率以时钟周期/秒为单位进行测量。
本发明的基本理念是建议将如在软件程序中调度的当前大规模并行的计算块自动地分配给众核和多核异构计算系统中的某些类型的核心,以提供这些系统的最大性能且同时满足功耗限制。本发明能够提供这些系统的适应性功率负载均衡。此方法在运行时在所考虑程序的大规模并行块上执行。
本发明有利地提供动态循环-处理器映射,也就是说,基于在运行时用于众核和多核处理器中的大规模并行块执行的可用资源将程序块动态地映射到异构多核/众核系统的核心。通过在大规模并行块执行之前估计众核和多核异构计算系统的可用资源,调度器决定多少循环以及哪些循环应与众核和多核异构计算系统的不同核心相关联。此解决方案最小化在大规模并行块执行期间不同类型核心加载的时延且对应于大规模并行块执行的预设功耗水平。
实现了在程序执行期间进行大量存储器级和指令级并行,甚至达到出现可用存储器或计算硬件资源完全饱和的程度。
本发明有利地提高众核和多核异构计算系统的性能。此外,提供最短完成时间以及最小功耗限制。本发明有利地解决优化问题,以便最小化每个特定应用的总完成时间且同时满足预设功耗水平。所提出的解决方案的本质在于搜索将使完成时间达到可能最小值且将满足底层计算系统的功耗限制的最佳循环-核心映射。
此外,本发明减少了开发用于异构硬件的并行应用的用户工作量,从而使得开发用于众核和多核异构计算系统硬件的并行应用的过程变得更加容易。最后,本发明减小软件开发的劳动成本或将现有代码有效移植到具体架构中。
所提出的本发明可适用于非常广泛范围的众核和多核异构计算系统。最常见使用案例之一是具有芯片级系统的信号处理器的系统,其中同时执行大量大规模并行块。
在根据第一方面的所述方法的第一可能实施形式中,可用资源的估计包括:与至少两种类型的核心中的第一类型对应的第一有效可用核心数的估计以及与至少两种类型的核心中的第二类型对应的第二有效可用核心数的估计。
这有利地提供将在大规模并行块执行期间不同类型核心加载的时延最小化且同时满足功耗限制的解决方案。
在根据第一方面本身或根据第一方面的任何前述实施形式的所述方法的第二可能实施形式中,根据以下关系确定与第一类型的核心c1相关联的第一循环数n1:
其中f1是第一类型c1的核心的时钟频率,f2是第二类型c2的核心的时钟频率,N=n1+n2是程序块的总循环数,且运算符表示地板函数。实值数字的地板函数表示通过省略数字的小数部分求数字的整数值。
当根据此关系确定第一循环数时,可精确地确定并因此控制多处理器系统的性能。
优选的是,功耗条件被定义为0≤n1≤(1-r)N,其中r表示功耗降低的系数。所述功耗降低的系数与性能下降系数有关。这两个系数均在0到1的范围内,但以不同方式改变。功耗降低系数相对于核心或处理器频率以二次方阶数改变,且性能下降系数以线性阶数改变。
这些系数中的一个系数由用户设定,而另一个系数取决于由用户所设定的系数。也就是说,以上提及的系数中只有一个系数是设定的,另一个系数取决于第一系数且针对所述第一系数求值。这些系数反映用户降低计算机系统的性能以节省功耗使用的替代方式。
在根据第一方面本身或根据所述第一方面的任何前述实施形式的所述方法的第三可能实施形式中,第一类型c1的核心的时钟频率f1被修改为f1=(α1/α2)f2,其中α1、α2是常数。常数α1和α2取决于核心的半导体的材料特性作为处理器核心的内部特征,且用于确定处理器核心的功耗。
在根据第一方面本身或根据所述第一方面的任何前述实施形式的所述方法的第四可能实施形式中,至少两种类型的循环唯一地与至少两种类型的核心相关。
这有利地使动态循环-处理器映射适用于众核和多核异构计算系统的当前至少两种类型的核心。
在根据第一方面本身或根据所述第一方面的任何前述实施形式的所述方法的第五可能实施形式中,将并行执行的步骤执行为大规模并行块执行。
这有利地允许通过由异构多核系统提供更多并行块执行资源来提供对应于指定功耗水平的提高的硬件缩放性能。
根据第二方面,本发明涉及一种用于将程序块动态地映射到异构多核系统的核心的调度设备,所述核心包括至少两种类型的核心c1、c2。调度设备包括:估计模块,用于在运行时估计用于并行执行至少一个程序块的异构多核系统的可用资源;求值模块,用于确定程序块中将与异构多核系统的至少两种类型的核心中的每一个相关联的第一循环数n1和第二循环数n2,其中程序块的总循环数N=n1+n2将在所估计的可用资源上在异构多核系统中执行;检查功耗条件;以及如果不满足功耗条件,修改第一类型c1核心的时钟频率f1并再次确定将与至少两种类型c1、c2的核心相关联的第一循环数n1和第二循环数n2;以及命令模块,用于命令在异构多核系统的第一类型c1的可用核心上的所确定第一循环数n1的并行块执行以及在第二类型c2的可用核心上的所确定第二循环数n2的并行块执行。
在根据第二方面的调度设备的第一可能实施形式中,调度设备用于估计与至少两种类型的核心中的第一类型对应的第一有效可用核心数以及估计与至少两种类型的核心中的第二类型对应的第二有效可用核心数。
这有利地提供一种将在大规模并行块执行期间不同类型核心加载的时延最小化的解决方案。
在根据第二方面本身或根据所述第二方面的任何前述实施形式的调度设备的第二可能实施形式中,根据以下关系确定与第一类型的核心c1相关联的第一循环数n1:
其中f1是第一类型的核心c1的时钟频率,f2是第二类型的核心c2的时钟频率,N=n1+n2是程序块的总循环数,运算符表示地板函数。实值数字的地板函数表示通过省略数字的小数部分求数字的整数值。
当根据此关系确定第一循环数时,可精确地确定并因此控制多处理器系统的性能。
优选的是,功耗条件被定义为0≤n1≤(1-r)N,其中r表示功耗降低的系数。
在根据第二方面本身或根据所述第二方面的任何前述实施形式的调度设备的第三可能实施形式中,第一类型的核心c1的时钟频率f1被修改为f1=(α1/α2)f2,其中α1、α2是常数。常数α1和α2取决于核心的半导体的材料特性作为处理器核心的内部特征,且用于确定处理器核心的功耗。
优选的是,调度设备用于对至少两种类型的循环的数目和类型进行求值。
这有利地提供显著存储器级和指令级并行,甚至达到出现可用存储器或计算硬件资源的完全饱和的程度。
在根据第二方面本身或根据所述第二方面的任何前述实施形式的调度设备的第四可能实施形式中,至少两种类型的循环唯一地与至少两种类型的核心相关。
这有利地使对应于功耗限值的动态循环-处理器映射适用于众核和多核异构计算系统的当前至少两种类型的核心。
在根据第二方面本身或根据所述第二方面的任何前述实施形式的调度设备的第四可能实施形式中,调度设备用于命令至少一个块执行为大规模并行块执行。
这有利地允许通过提供更多并行块执行资源来提供提高的硬件缩放性能。
根据第三方面,本发明涉及一种异构多核系统,所述异构多核系统包括根据第二方面本身或根据所述第二方面的任何前述实施形式的调度设备。
本文中描述的方法、系统和设备可实施为在数字信号处理器(Digital SignalProcessor,DSP)、微控制器或任何其它侧处理器中的软件或实施为专用集成电路(application specific integrated circuit,ASIC)内的硬件电路。
此外,描述的方法、系统和设备可实施为现场可编程门阵列(field-programmablegate array,FPGA),所述FPGA是设计用于在制造之后由客户或设计者配置的集成电路,因此是“现场可编程的”。
本发明可实施于数字电子电路或计算机硬件、固件、软件或其组合中,例如,实施于常规移动设备的可用硬件或专用于处理本文所描述的方法的新硬件中。
附图说明
本发明的其它实施例将参考以下附图进行描述,其中:
图1示出常规程序结构的实例;
图2示出根据实施形式的修改后的程序结构的实例;
图3示出根据本发明的实施例的用于动态循环-处理器映射的方法的流程图;
图4示出根据本发明的实施例的用于动态循环-处理器映射的调度设备的示意图。
图5示出映射到至少两个核心上的程序块中的循环数与功耗不等式的分隔线之间的关系。
具体实施方式
在图式中,相同参考符号表示相同或等效元件。另外,应注意,并未按比例绘制所有附图。
下面将参考本发明实施例中的附图,对本发明实施例中的技术方案清楚地、完整地进行描述。
显然,所描述的实施例仅是本发明的一些实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例都属于本发明保护的范围。
图1示出常规程序结构的实例。
每个程序可包括一系列块101、103、105、107、109,如图1中所示。第一块101和最后一个块109是序列块,但所有其它中间块103、105、107可以是序列块、并行块或大规模并行块。并行块与大规模并行块之间的差异在于当并行块在指定核心上运行时的并行循环数。
任选地,在本发明的一个实施例中,处理具有八个循环的并行块且使用具有八个可用核心的计算系统,随后此块将是并行的而不是大规模并行的,因为所有循环可同时加载到核心中。
任选地,在本发明的一个实施例中,处理八个循环,但如果使用仅具有两个可用核心的计算系统,存在大规模并行块,因为加载所有核心需要四次。因此,如果可以用一次或两次加载所有可用核心,考虑的并行块是简单并行的或并行的。否则,当必须用三次或更多次加载所有可用核心时,获得大规模并行块处理。
任选地,在本发明的一个实施例中,众核和多核异构计算系统具有k1个第一类型的核心以及k2个第二类型的核心,共计K=k1+k2个核心。此外,任选地,任何大规模并行块由N个循环构成,其中n1表示将在第一类型的核心上执行的循环数,而n2表示将在第二类型的核心上执行的循环数。此外,在n1和n2可用以下形式呈现的假设下,其中li、ki、mi(i=1,2)是整数:
n1=l1k1+m1
和
n2=l2k2+m2,
那么在众核和多核异构计算系统的i类型(i=1、2)的核心上的总执行时间将如下表示:
如果li>>1,Tfi≈liTi且ni=liki,(i=1、2)。在此情况下,不同类型的核心上的负载均衡条件可书写成如下
Tf1=Tf2
或
l1T1≈l2T2
或
在两种类型的核心上的大规模并行循环执行期间所耗费的功耗如下求值:
此处∝i是任何已知常数,其表示处理器核心的内部特征并用于对核心的功耗求值,且由核心的半导体的材料特性限定。此外,fi表示i类型(i=1、2)的核心的时钟频率。
如果所有操作在第一类型(i=1)的核心上以高性能和高功耗执行,n1=N,且n2=0,且
如果所有操作在第二类型(i=2)的核心上以低性能和低功耗执行,n1=0,且n2=N,且
对应于所考虑的大规模并行块执行的任何固定的中等功耗水平r定义如下
代替关于n1和n2的方程式(1)的解相反,限制的最小化问题可指定如下
n1+n2=N, (3)
通过对n2=N-n1进行求值并将其代入(2)中,关于n1对第一导数进行求值且将其设定成等于零,获得n1求值的以下表达式:
假设NB为对考虑的大规模并行块的循环进行求值所需的时钟周期数,那么T1和T2可表达如下T1=NB/f1且T2=NB/f2。通过将这些公式代入(5)中,n1和n2求值的最终公式获得如下:
此处运算符x表示地板函数,也称为最大整数函数或最大整数值,所述函数返回小于或等于x的最大整数。
现在关于未知值n1和n2分析两个方程(3)和(4)组。此处假设不等式(4)完全相等。解此方程组得到
n1=(1-r)N和n2=rN。 (7)
公式(7)定义直线(3)与功耗不等式(4)的分隔线的交点,如图5中所描绘。
在功耗的分隔线下方,不等式(4)有效,但在此直线上方不等式(4)无效。因此,(7)的所有解应属于直线(3)。属于轴n1上的段[0,(1-r)N]的任何解满足功耗不等式(4)。在轴n1上的段[(1-r)N,n1E]上,直线(3)位于功耗不等式的分隔线下方,因此不满足不等式(4)。n1E的值应计算如下
为了满足轴n1上的段[(1-r)N,n1E]上的功耗限制,举例来说,第一类型的核心的时钟频率可往下降低到以下值
f1=(∝2/∝1)f2。 (9)
在此情况下,根据(8)得到n1E=N,且功耗不等式的分隔线不再是直通类型而是变成具有断点[(1-r)N,rN]的虚线类型。对于n1≤(1-r)N,此直线具有前一形式且在[(1-r)N,rN]之后,所述直线与直线(3)重合。
图2示出根据本发明的实施形式的修改后的程序结构的实例。
任选地,在本发明的一个实施例中,对于众核和多核异构计算系统,在通过考虑所探究任务中的周期而求值之前,提供对计算系统的监视且对所考虑系统的核心的背景负载进行求值。为此目的,有可能使用不同动态监视工具。
图2中示出适当程序结构。任选地,在本发明的一个实施例中,序列块201之后是序列块203。接着之后是另一个序列块205,然后提供监视块207。随后,安排大规模并行块209,且最后呈现序列块211。
代替MMCHCS系统中的核心k1和k2的实数,使用其有效值k1eff和k2eff。此处,表达“有效值”意味着与背景负载无关的值。通常,核心1和2具有某种背景负载。这意味着其设施可能无法完全用于执行任务。举例来说,如果k1=10且核心的背景负载等于20%,那么这些核心的总设施等于80%*10=800%。在有效核心中不存在背景负载,因此在此情况下,第一类型的核心的有效数将等于800%/100%=8,意味着k1eff=8。
这些值可不仅具有整数类型而且还具有满足以下条件0≤ki eff≤ki,(i=1,2)的实数类型。
接着根据类似于公式(6)的以下公式计算出n1和n2
随后检查功耗条件(也被称为功耗不等式)。
0≤n1≤(1-r)N (11)
如果条件为真,那么不进行任何动作。如果条件为假,那么第一类型的核心的时钟频率减小到:
f1=(∝2/∝1)f2。 (12)。
以下实施例示出关于监视数据对k1eff和k2eff进行求值的方式。
任选地,在本发明的一个实施例中,所述系统具有第一类型的一个核心和第二类型的两个核心。可在开始当前周期之前监视所考虑的系统。作为一实例,假设此监视示出第一类型核心的背景负载等于10%且每个第二类型核心的背景负载等于20%。此外,假设k1eff=k1*0.9且k2eff=k2*0.8。这些值可基于监视结果而选择。
公式(10)预期用于对众核和多核异构计算系统的均衡负载进行求值。所述公式允许最小化在大规模并行块执行期间不同类型核心加载的时延。
图3示出根据本发明的实施例的用于动态循环-处理器映射的方法,也就是说,用于将程序块动态地映射到核心的方法的流程图。
图3中所说明的用于动态循环-处理器映射的方法包括以下步骤:
作为用于动态循环-处理器映射的方法的第一步骤S1,进行以下操作:在运行时估计用于至少一个并行块执行的异构多核系统10的可用资源,所述异构多核系统包括至少两种类型的核心。
作为用于动态循环-处理器映射的方法的第二步骤S2,进行以下操作:确定将与异构多核系统10的至少两种类型的核心中的每一个相关联的循环数。
作为所述方法的第三步骤S3,检查条件(11)且在否的情况下,在步骤S4处,根据(12)修改、具体来说降低第一类型核心的时钟频率f1,在这之后再次根据公式(10)对n1和n2进行求值。
作为用于动态循环-处理器映射的方法的另一步骤S5,进行以下操作:在异构多核系统10的核心上并行块执行确定的循环数。
用于动态循环-处理器映射的方法的目的之一是提高具有由两种类型核心组成的众核和多核架构的计算系统的使用效率。另一目的是能够以合适的劳动成本切实地实施所提出方法。
所述方法在并行性计算的情况下具有其范围。即,观察到一个初始任务的大量相同子任务的并行运行的情况。这种并行性在并行执行一个循环的不同迭代时存在。同时,所述循环正是占据整个程序的大部分执行时间的循环。这就是循环迭代的并行化是使用并行性的最有效方式之一的原因。
图4示出根据本发明的实施例的用于动态循环-处理器映射的调度设备的示意图。
用于动态循环-处理器映射的调度设备100可包括估计模块100-1、求值模块100-2和命令模块100-3。
任选地,在本发明的一个实施例中,估计模块100-1可用于在运行时估计用于至少一个并行块执行的异构多核系统的可用资源,所述异构多核系统包括至少两种类型的核心。
任选地,在本发明的一个实施例中,估算求值模块100-2可用于对将与异构多核系统的至少两种类型的核心中的每一个相关联的循环数以及循环类型进行求值并检查功耗不等式。在不满足(否分支)功耗不等式(11)的情况下,根据方程式(12)降低第一类型核心的时钟频率,在这之后对与每种类型的核心相关联的循环数进行再求值。
任选地,在本发明的一个实施例中,命令模块100-3可用于命令在异构多核系统的核心上并行块执行求值后的循环数。
异构多核系统10或任何其它众核和多核异构计算系统可耦合到调度设备100。任选地,在本发明的一个实施例中,异构多核系统10还可包括调度设备100作为集成单元。
异构多核系统10可包括至少两种类型的核心c1、c2,其中核心类型c1、c2在其核心时钟速度和/或存储器时钟速度和/或其它时钟速度方面不同。
众核和多核异构计算系统10具有k1个第一类型c1的核心以及k2个第二类型c2的核心,共计K=k1+k2个核心。异构多核系统10还可包括更多类型,即,n种核心类型c1、c2、c3、...、cn。
本公开还支持包含计算机可执行代码或计算机可执行指令的计算机程序产品,这些计算机可执行代码或计算机可执行指令在执行时使得至少一个计算机执行本文所述的执行及计算步骤。
通过以上启示,对于本领域技术人员来说,许多替代、修改和变化是显而易见的。当然,本领域技术人员容易认识到除本文所述的应用之外,还存在本发明的众多其它应用。
虽然已参考一个或多个特定实施例描述了本发明,但本领域技术人员将认识到在不偏离本发明的范围的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求书及其等效物的范围内,可用不同于本文具体描述的方式来实践本发明。
在权利要求书中,词语“包括”不排除其它元素或步骤,且不定冠词“一”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。
在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。
计算机程序可存储或分布在合适的媒体上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储媒体或者固态媒体,还可以其它形式,例如通过因特网或其它有线或无线电信系统分布。
Claims (13)
1.一种用于将程序块映射到包括至少两种类型的核心c1、c2的异构多核系统的核心的方法,其特征在于,所述方法包括以下步骤:
在运行时估计(S1)用于并行执行至少一个程序块的所述异构多核系统的可用资源;
确定(S2)所述程序块中将与所述异构多核系统的所述至少两种类型的核心中的每一个相关联的第一循环数n1和第二循环数n2,其中所述程序块的总循环数N=n1+n2将在所述所估计的可用资源上在所述异构多核系统中执行;
检查(S3)功耗条件,
如果不满足所述功耗条件,修改(S4)所述第一类型c1的核心的时钟频率f1并再次确定将与所述至少两种类型c1、c2的核心中的每一个相关联的所述第一循环数n1和所述第二循环数n2;
在所述异构多核系统的所述第一类型c1的可用核心上并行执行(S5)所述确定的第一循环数n1以及在所述第二类型c2的所述可用核心上并行执行所述确定的第二循环数n2。
2.根据权利要求1所述的方法,
其特征在于,所述可用资源的所述估计(S1)包括估计与所述至少两种类型的核心中的所述第一类型c1对应的可用核心的第一有效数目k1eff,以及估计与所述至少两种类型的核心中的所述第二类型c2对应的第二有效数目k2eff。
3.根据权利要求2所述的方法,
其特征在于,根据以下关系确定与所述第一类型的核心c1相关联的所述第一循环数n1:
其中f1是所述第一类型c1的核心的所述时钟频率,f2是所述第二类型c2的核心的时钟频率,N=n1+n2是所述程序块的所述总循环数,且运算符表示地板函数。
4.根据权利要求3所述的方法,
其特征在于,所述第一类型c1的核心的所述时钟频率f1被修改为f1=(α1/α2)f2,其中α1、α2是常数。
5.根据前述权利要求中任一权利要求所述的方法,
其特征在于,至少两种类型的循环唯一地与所述至少两种类型的核心相关。
6.根据前述权利要求中任一权利要求所述的方法,
其特征在于,所述并行执行步骤执行为大规模并行块执行。
7.一种用于将程序块映射到包括至少两种类型的核心c1、c2的异构多核系统(10)的核心的调度设备(100),其特征在于,所述设备包括:
估计模块(100-1),用于在运行时估计用于并行执行至少一个程序块的所述异构多核系统的可用资源;
求值模块(100-2),用于确定所述程序块中将与所述异构多核系统的所述至少两种类型的核心中的每一个相关联的第一循环数n1和第二循环数n2,其中所述程序块的总循环数N=n1+n2将在所述所估计的可用资源上在所述异构多核系统中执行;检查功耗条件;以及如果不满足所述功耗条件,修改所述第一类型c1核心的时钟频率f1且再次确定将与所述至少两种类型的核心c1、c2中的每一个相关联的所述第一循环数n1和所述第二循环数n2;以及
命令模块(100-3),用于命令在所述异构多核系统的所述第一类型c1的可用核心上并行块执行所述确定的第一循环数n1以及在所述第二类型c2的所述可用核心上并行块执行所述确定的第二循环数n2。
8.根据权利要求7所述的调度设备(100),
其特征在于,所述调度设备用于估计与所述至少两种类型的核心中的所述第一类型对应的可用核心的第一有效数目k1eff,并估计与所述至少两种类型的核心中的第二类型对应的可用核心的第二有效数目k2eff。
9.根据权利要求8所述的调度设备(100),
其特征在于,所述调度设备(100)用于根据以下关系确定与所述第一类型的核心(c1)相关联的所述第一循环数n1:
其中f1是所述第一类型c1的核心的所述时钟频率,f2是所述第二类型c2的核心的时钟频率,N=n1+n2是所述程序块的所述总循环数,且所述运算符表示地板函数。
10.根据权利要求9所述的调度设备(100),
其特征在于,所述调度设备用于将所述第一类型c1的核心的所述时钟频率f1修改为f1=(α1/α2)f2,其中α1、α2是常数。
11.根据权利要求8到10中任一权利要求所述的调度设备(100),
其特征在于,至少两种类型的循环唯一地与所述至少两种类型的核心相关。
12.根据前述权利要求7到11中任一权利要求所述的调度设备(100),
其特征在于,所述调度设备用于命令所述至少一个块作为大规模并行块的所述执行。
13.一种异构多核系统(10),其特征在于,包括根据权利要求7到12中任一权利要求所述的调度设备(100)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2015/000181 WO2016153379A1 (en) | 2015-03-26 | 2015-03-26 | Scheduler device and method for dynamic loop-to-processor mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408056A true CN107408056A (zh) | 2017-11-28 |
CN107408056B CN107408056B (zh) | 2021-01-05 |
Family
ID=54337326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580078206.9A Active CN107408056B (zh) | 2015-03-26 | 2015-03-26 | 用于动态循环-处理器映射的调度设备和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107408056B (zh) |
WO (1) | WO2016153379A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140082380A1 (en) * | 2012-09-17 | 2014-03-20 | Travis T. Schluessler | Distributing Power To Heterogeneous Compute Elements Of A Processor |
US20140189299A1 (en) * | 2012-12-28 | 2014-07-03 | Paolo Narvaez | Hetergeneous processor apparatus and method |
CN103988145A (zh) * | 2011-12-15 | 2014-08-13 | 英特尔公司 | 功率管理策略的用户级控制 |
CN104169879A (zh) * | 2012-04-24 | 2014-11-26 | 英特尔公司 | 用于有效功率管理的动态中断重新配置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1574965B1 (en) | 2003-11-25 | 2007-06-13 | Interuniversitair Micro-Elektronica Centrum | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
-
2015
- 2015-03-26 CN CN201580078206.9A patent/CN107408056B/zh active Active
- 2015-03-26 WO PCT/RU2015/000181 patent/WO2016153379A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103988145A (zh) * | 2011-12-15 | 2014-08-13 | 英特尔公司 | 功率管理策略的用户级控制 |
CN104169879A (zh) * | 2012-04-24 | 2014-11-26 | 英特尔公司 | 用于有效功率管理的动态中断重新配置 |
US20140082380A1 (en) * | 2012-09-17 | 2014-03-20 | Travis T. Schluessler | Distributing Power To Heterogeneous Compute Elements Of A Processor |
US20140189299A1 (en) * | 2012-12-28 | 2014-07-03 | Paolo Narvaez | Hetergeneous processor apparatus and method |
Also Published As
Publication number | Publication date |
---|---|
CN107408056B (zh) | 2021-01-05 |
WO2016153379A8 (en) | 2016-10-20 |
WO2016153379A1 (en) | 2016-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10748237B2 (en) | Adaptive scheduling for task assignment among heterogeneous processor cores | |
US8707314B2 (en) | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations | |
Dastgeer et al. | Auto-tuning SkePU: a multi-backend skeleton programming framework for multi-GPU systems | |
Marathe et al. | A run-time system for power-constrained HPC applications | |
US9038088B2 (en) | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases | |
CN103069389B (zh) | 混合计算环境中的高吞吐量计算的方法和系统 | |
US20150046679A1 (en) | Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems | |
US10152354B2 (en) | Optimized thread scheduling on processor hardware with performance-relevant shared hardware components | |
Xu et al. | A heuristic virtual machine scheduling method for load balancing in fog-cloud computing | |
CN109992366A (zh) | 任务调度方法及调度装置 | |
US10162679B2 (en) | Method and system for assigning a computational block of a software program to cores of a multi-processor system | |
CN108139929B (zh) | 用于调度多个任务的任务调度装置和方法 | |
Funston et al. | Placement of Virtual Containers on {NUMA} systems: A Practical and Comprehensive Model | |
Teng et al. | An energy-efficient vm placement in cloud datacenter | |
Lordan et al. | Energy-aware programming model for distributed infrastructures | |
KR20140005808A (ko) | 프로세싱 유닛에 대한 전력 관리 시스템 및 방법 | |
US20190250919A1 (en) | Method for managing computation tasks on a functionally asymmetric multi-core processor | |
US20120042322A1 (en) | Hybrid Program Balancing | |
CN107408056A (zh) | 用于动态循环‑处理器映射的调度设备和方法 | |
Knorst et al. | Etcf–energy-aware cpu thread throttling and workload balancing framework for cpu-fpga collaborative environments | |
CN110858159A (zh) | 电子装置和用于多核处理器中的负载均衡的方法 | |
Lastovetsky et al. | How pre-multicore methods and algorithms perform in multicore era | |
Sartzetakis et al. | Edge/Cloud Infinite-time Horizon Resource Allocation for Distributed Machine Learning and General Tasks | |
Capko et al. | Dynamic repartitioning of large data model in distribution management systems | |
Mistry et al. | Dynamic load balancing in multi-agent spatial simulation |
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 |