CN104820618B - 一种任务调度方法、任务调度装置及多核系统 - Google Patents
一种任务调度方法、任务调度装置及多核系统 Download PDFInfo
- Publication number
- CN104820618B CN104820618B CN201510202014.6A CN201510202014A CN104820618B CN 104820618 B CN104820618 B CN 104820618B CN 201510202014 A CN201510202014 A CN 201510202014A CN 104820618 B CN104820618 B CN 104820618B
- Authority
- CN
- China
- Prior art keywords
- processor core
- energy consumption
- scheduler task
- task
- cluster
- 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
-
- 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
- Power Sources (AREA)
Abstract
本发明实施例提供一种任务调度方法、任务调度装置及多核系统,能够通过合理的任务调度使得多核系统的能耗最小。方法包括:计算第一待调度任务的绝对负载;计算R个cluster管理的P个处理器核分别工作在相应运行频率下运行第一待调度任务时的所述多核系统的系统能耗估算参数;根据R个cluster管理的P个处理器核分别工作在相应运行频率下运行第一待调度任务时的所述多核系统的系统能耗估算参数,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。本发明适用于计算机领域。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种任务调度方法、任务调度装置及多核系统。
背景技术
调度子系统作为多核系统中的一个关键部分,主要负责任务的调度。当前,任务调度的主要作用是在调度子系统满足吞吐率及实时性的性能要求下,决定何时选取何任务在哪个处理器核上运行。
随着个人手持终端、智能手机的大量普及,以及世界范围内节能减排的要求,操作系统对低功耗的要求越来越高。为了满足要求,一些对功耗的控制技术随之产生,比如动态调频调压(Dynamic voltage and frequency scaling,简称:DVFS)技术就是根据处理器核的负载,调节处理器核的电压频率,当处理器核上有较少任务运行时,处理器核负载变低,相应的DVFS技术会使处理器核的频率降低,相应的功耗就会减少。
然而,DVFS技术仅仅根据处理器核的负载判断如何调整功耗,其对在处理器核上运行的任务并不感知。当处理器核上有较多任务运行时,处理器核负载变高,相应的DVFS技术会使处理器核的频率升高,相应的功耗就会增大。
因此,如何进行任务调度使得多核系统的能耗最小,成为目前亟待解决的问题。
发明内容
本发明实施例提供一种任务调度方法、任务调度装置及多核系统,能够通过合理的任务调度使得多核系统的能耗最小。
为达到上述目的,本发明实施例提供如下技术方案:
第一方面,提供一种任务调度方法,所述方法包括:
计算第一待调度任务的绝对负载;
计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
在第一方面第一种可能的实现方式中,结合第一方面,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是通过如下步骤得到的:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
在第一方面第二种可能的实现方式中,结合第一方面或第一方面第一种可能的实现方式,所述第nr个处理器核的能耗是通过如下步骤得到的:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
在第一方面第三种可能的实现方式中,结合第一方面或第一方面第一种可能的实现方式或第一方面第二种可能的实现方式,所述第r个cluster的能耗是通过如下步骤得到的:
根据所述第r个cluster的功耗值,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗值×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
在第一方面第四种可能的实现方式中,结合第一方面至第一方面第三种可能的实现方式中任一种可能的实现方式,所述计算第一待调度任务的绝对负载,包括:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
在第一方面第五种可能的实现方式中,结合第一方面至第一方面第四种可能的实现方式中任一种可能的实现方式,所述方法还包括:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
第二方面,提供一种任务调度装置,所述任务调度装置包括:第一计算单元、第二计算单元、第一确定单元、控制单元、以及调度单元;
所述第一计算单元,用于计算第一待调度任务的绝对负载;
所述第二计算单元,用于计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
所述第一确定单元,用于根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元,用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元,用于将所述第一待调度任务调度在所述目标处理器核上运行。
在第二方面第一种可能的实现方式中,结合第二方面,所述第二计算单元具体用于:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
在第二方面第二种可能的实现方式中,结合第二方面或第二方面第一种可能的实现方式,所述第二计算单元还用于:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
在第二方面第三种可能的实现方式中,结合第二方面或第二方面第一种可能的实现方式或第二方面第二种可能的实现方式,所述第二计算单元还用于:
根据所述第r个cluster的功耗,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
在第二方面第四种可能的实现方式中,结合第二方面至第二方面第三种可能的实现方式中任一种可能的实现方式,所述第一计算单元具体用于:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
在第二方面第五种可能的实现方式中,结合第二方面至第二方面第四种可能的实现方式中任一种可能的实现方式,所述任务调度装置还包括第二确定单元;
所述第一计算单元还用于计算第二待调度任务的绝对负载;
所述第二确定单元,用于:在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元还用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元还用于将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
第三方面,提供一种多核系统,包括:
总线;
与所述总线相连的多核处理器;
与所述总线相连的存储器;
其中,所述多核处理器包括多个处理器核,当前处理器核通过所述总线调用所述存储器中的执行指令,以用于:
计算第一待调度任务的绝对负载;
计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
在第三方面第一种可能的实现方式中,结合第三方面,在计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数的方面,所述当前处理器核具体用于:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
在第三方面第二种可能的实现方式中,结合第三方面或第三方面第一种可能的实现方式,所述当前处理器核还用于:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
在第三方面第三种可能的实现方式中,结合第三方面或第三方面第一种可能的实现方式或第三方面第二种可能的实现方式,所述当前处理器核还用于:
根据所述第r个cluster的功耗值,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗值×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
在第三方面第四种可能的实现方式中,结合第三方面至第三方面第三种可能的实现方式中任一种可能的实现方式,在计算第一待调度任务的绝对负载的方面,当前处理器核具体用于:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
在第三方面第五种可能的实现方式中,结合第三方面至第三方面第四种可能的实现方式中任一种可能的实现方式,当前处理器核通过所述总线调用所述存储器中的执行指令,还用于:
计算第二待调度任务的绝对负载。
在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载,根据所述第二待调度任务的绝对负载相同的情况下,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率,其中,所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行。
基于本发明实施例提供的任务调度方法、任务调度装置及多核系统,由于本发明实施例在进行任务调度时,能够首先计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,并根据该系统能耗估算参数,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;进而控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。即,通过将第一待调度任务的绝对负载量化,第一待调度任务运行在不同处理器核及不同运行频率下时的系统能耗量化的方式,确定系统能耗估算参数最小的调度方案后进行任务调度,因此,可以保证调度第一待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的任务调度方法、任务调度装置或多核系统应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的任务调度方法、任务调度装置或多核系统应用在个人计算机(Personal Computer,简称:PC)或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。
进一步的,由于本发明实施例在进行任务调度时,还可以将确定的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案)以第一对应关系形式存储在多核系统的存储器中,这样在后续的任务调度过程中,可以不用一边计算一边得到最优调度方案,而是直接查询已经存储的最优调度方案,根据该最优调度方案进行调度即可,这样可以大大减少系统的计算量,从而减少管理开销,能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
第四方面,本发明实施例提供一种任务调度方法,所述方法包括:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
第五方面,本发明实施例提供一种任务调度装置,所述任务调度装置包括:计算单元、确定单元、控制单元、以及调度单元;
所述计算单元,用于计算第二待调度任务的绝对负载;
所述确定单元,用于在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元,用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元,用于将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
第六方面,本发明实施例提供一种多核系统,包括:
总线;
与所述总线相连的多核处理器;
与所述总线相连的存储器;
其中,所述多核处理器包括多个处理器核,当前处理器核通过所述总线调用所述存储器中的执行指令,以用于:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
基于本发明实施例提供的任务调度方法、任务调度装置及多核系统,由于本发明实施例在进行任务调度时,可以通过直接查询预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案),获得最优调度方案后,根据该最优调度方案进行任务调度。一方面,该最优调度方案可以保证调度第二待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的任务调度方法、任务调度装置或多核系统应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的任务调度方法、任务调度装置或多核系统应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。另一方面,由于该最优调度方案不用计算,因此不用增加多核系统的管理开销。综上,本发明实施例提供的任务调度方法、任务调度装置和多核系统能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的多核系统结构示意图一;
图2为本发明实施例的多核系统结构示意图二;
图3为本发明实施例提供的任务调度方法流程示意图一;
图4为本发明实施例提供的多核系统中cluster、处理器核、运行频率、以及系统能耗估算参数的映射关系示意图;
图5为本发明实施例提供的任务调度方法流程示意图二;
图6为本发明实施例提供的任务调度装置结构示意图一;
图7为本发明实施例提供的任务调度装置结构示意图二;
图8为本发明实施例提供的任务调度装置结构示意图三。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关概念的简要介绍:
第一,多核系统:
如图1所示,多核系统100包括:总线101、与所述总线101相连的多核处理器102、以及与所述总线101相连的存储器103。
其中,所述多核处理器102包括多个处理器核,如处理器核102a、处理器核102b、……、处理器核102c,这些处理器核具体可以是中央处理单元(Central ProcessingUnit,简称:处理器)核,也可以是图形处理器(Graphic Processing Unit,简称:GPU)核,本发明实施例对此不作具体限定。其中,这些处理器核主要用于执行计算。
第二,簇(cluster)
一般多核系统的最小组织是硬件线程,一个处理器核可以包含几个硬件线程。比如intel的v3处理器就是四核八线程。如图2所示,在图2所示的多核系统100中,每一个处理器核有自己的一级(Level 1,简称:L1)cache,但是多个处理器核涉及到相互之间的通讯,cache一致性问题等,为了统一管理处理器核,在处理器核之上建立cluster的概念。通常,每四个处理器核组成一个cluster,每一个cluster共用一个二级(Level2,简称:L2)cache,若多核系统中存在大于一个cluster在运行,则会通过总线(比如,一致性互连器件(CacheCoherent Interconnect cache,简称:CCI))进行cache一致性等的操作。其中,在每个cluster中,包含两部分能耗:一部分为该cluster管理的每个处理器核的能耗;另一部分为电路、L2Cache等公共区域的能耗,其中,电路、L2Cache等公共区域的能耗统称为cluster的能耗。当然,一个cluster中也可以包含小于四个处理器核,本发明实施例在此不作具体限定。
应当理解的是:本发明实施例的多核系统例如可以是服务器或者移动终端,本发明方案的应用场景可以是服务器或者移动终端的多核系统任务调度,本发明实施例包括但不限于此。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
实施例一、
本发明实施例提供一种任务调度方法,本实施例的方法可以由多核系统中的当前处理器核执行,本发明实施例的多核系统可以是服务器或移动终端。参照图3,当任务调度开始后,本发明实施例提供的任务调度方法包括如下步骤:
S301、计算第一待调度任务的绝对负载。
具体的,绝对负载的概念是相对于进程负载的概念提出的。进程负载是指,进程在处理器核上的运行时间除以处理器核的总运行时间,也就是说该进程的处理器核占用率。然而,由于进程在处理器核上运行时,处理器核的频率是可以变化的,因此本发明实施例提出绝对负载的概念。其中,绝对负载与处理器核的运行频率无关,可以理解成任务的绝对工作量,是一个定值,只随任务的不同而变化。而进程负载还会随着处理器核的运行频率的不同而变化。
S302、计算多核系统中R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的。
其中,nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数。
具体的,本发明实施例中,在计算第一待调度任务的绝对负载之后,需要遍历该多核系统中的P个处理器核,假设第一待调度任务在第nr个处理器核的第mr个运行频率下运行,根据第nr个处理器核的能耗、第r个cluster的能耗、多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗,计算多核系统的处理器核的系统能耗估算参数。其中,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的。
图4为多核系统中cluster、处理器核、运行频率、以及系统能耗估算参数之间的映射关系示意图。所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数包括:第1个cluster管理的第1个处理器核工作在第1个运行频率下运行所述待调度任务时,所述多核系统的系统能耗E1,第1个cluster管理的第1个处理器核工作在第2个运行频率下运行所述待调度任务时,所述多核系统的系统能耗E2,……,第R个cluster管理的第NR个处理器核工作在第M个运行频率下运行所述待调度任务时,所述多核系统的系统能耗Ej。
其中, 表示将r从1取值到R时的累计求和。
S303、根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率。
具体的,在计算多核系统中R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数之后,将各个系统能耗估算参数进行排序,可以确定最小系统能耗估算参数,该最小系统能耗估算参数对应的处理器核即为目标处理器核,对应的运行频率即为目标运行频率。
S304、控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
具体的,在确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率之后,可以控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。这样,可以保证调度第一待调度任务后,多核系统的系统能耗最小。
进一步的,具体的,在执行步骤S302之前,当前处理器核可能需要获取多核系统中R个cluster管理的P个处理器核的功耗电气特性与所述R个cluster的功耗值,其中,所述R个cluster管理的P个处理器核的功耗电气特性包括第r个cluster管理的Nr个处理器核的功耗电气特性,所述R个cluster的功耗值包括第r个cluster的功耗值,所述第r个cluster管理的Nr个处理器核的功耗电气特性包括:Mr个运行频率、以及所述Mr个运行频率下的静态功耗参数和动态功耗参数,所述Mr个运行频率下的静态功耗参数和动态功耗参数包括第mr个运行频率下的静态功耗参数和动态功耗参数。
其中,本发明实施例中的功耗电气特性是一系列固定的数值,它不随调度任务的多少而变化,仅随着芯片的设计以及制作工艺而变化,通常在芯片出厂时已经写到芯片内部。比如,存储在如图2所示的L1Cache中。当然,处理器核的功耗电气特性也可以存储在如图1或图2所示的存储器中,本发明实施例对此不作具体限定。
具体的,一个cluster管理的多个处理器核的功耗电气特性相同,不同cluster管理的多个处理器核的功耗电气特性可能相同,也可能不相同,本发明实施例对此不作具体限定。所述R个cluster管理的P个处理器核的功耗电气特性包括第r个cluster管理的Nr个处理器核的功耗电气特性是指,所述R个cluster管理的P个处理器核的功耗电气特性包括第1个cluster管理的N1个处理器核的功耗电气特性,……,第R-1个cluster管理的N(R-1)个处理器核的功耗电气特性,第R个cluster管理的NR个处理器核的功耗电气特性。
其中,所述第r个cluster管理的Nr个处理器核的功耗电气特性包括:Mr个运行频率、以及所述Mr个运行频率下的静态功耗参数和动态功耗参数。所述Mr个运行频率下的静态功耗参数和动态功耗参数包括第mr个运行频率下的静态功耗参数和动态功耗参数是指,所述Mr个运行频率下的静态功耗参数和动态功耗参数包括第1个运行频率下的静态功耗参数和动态功耗参数,……,第Mr-1个运行频率下的静态功耗参数和动态功耗参数,第Mr个运行频率下的静态功耗参数和动态功耗参数。
所述R个cluster的功耗值包括第r个cluster的功耗值是指,所述R个cluster的功耗值包括第1个cluster的功耗值,……,第R-1个cluster的功耗值,第R个cluster的功耗值。其中,根据cluster的功耗值,可以计算cluster的能耗。如具体实施方式前序部分所述,cluster的能耗,是指该cluster中电路、L2Cache等公共区域的能耗。cluster的功耗值是一系列固定的数值,它不随调度任务的多少而变化,仅随着芯片的设计以及制作工作而变化。
需要说明的是,本发明实施例中所述的“功耗值”的概念不同于“能耗”的概念,“功耗值”是一个瞬时值,“能耗”是功耗值对时间的积分。
示例性的,表一为本发明实施例提供的cluster0和cluster1管理的多个处理器核的功耗电气特性列表与该cluster的功耗值。
表一
处理器核的运行频率 | 静态功耗参数 | 动态功耗参数 |
0.2 | 0.1 | 0.4 |
0.4 | 0.2 | 0.9 |
0.6 | 0.3 | 1.5 |
0.8 | 0.4 | 2.2 |
1.0 | 0.5 | 3.2 |
Active | Down | |
Cluster0 | 2.4 | 0 |
Cluster1 | 2.4 | 0 |
由表一可以看出,在不同的运行频率下,处理器核的静态功耗参数与动态功耗参数并不相同,比如工作在0.2单位频率的时候,处理器核的静态功耗参数为0.1,动态功耗参数为0.4;而工作在0.4单位频率的时候,处理器核的静态功耗参数为0.2,动态功耗参数为0.9。cluster在上电(Active)状态下的功耗值为2.4,下电(Down)状态下功耗值为0。
需要说明的是,本发明实施例中的运行频率采用“单位运行频率”进行描述,“单位运行频率”是指该处理器能达到的极限频率的百分比,比如,处理器核的最高运行频率为2.0Ghz,则0.2单位就是400Mhz。
需要说明的是,本发明实施例中cluster的功耗值具体是指Active状态下的功耗值。
需要说明的是,表一中列出的功耗电气特性与功耗值仅用于示例性说明,处理器核的功耗电气特性与cluster的功耗值还可以为其它,本发明实施例对此不作具体限定。
需要说明的是,表一以cluster0管理的多个处理器核的功耗电气特性与cluster1管理的多个处理器核的功耗电气特性相同为例进行说明,当然,如上所述,cluster0管理的多个处理器核的功耗电气特性与cluster1管理的多个处理器核的功耗电气特性也可能不同,此时需要分别提供一个耗电气特性列表,本发明实施例对该情况不作具体限定。
一种可能的实现方式中,本发明实施例步骤S302中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是通过如下步骤得到的:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
即,所述多核系统的系统能耗估算参数等于所述多核系统中R个簇cluster管理的P个处理器核+R个cluster的能耗,其中,第r个cluster管理的Nr处理器工作在所述第mr个运行频率下。
当然,还可能存在其他的方法计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,本发明实施例对此不作具体限定。
一种可能的实现方式中,本发明实施例步骤S302中,所述第nr个处理器核的能耗是通过如下步骤得到的:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
当然,还可能存在其他的方法计算所述第nr个处理器核的能耗,本发明实施例对此不作具体限定。
一种可能的实现方式中,本发明实施例步骤S302中,所述第r个cluster的能耗是通过如下步骤得到的:
根据所述第r个cluster的功耗值,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗值×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
当然,还可能存在其他的方法所述第r个cluster的能耗,本发明实施例对此不作具体限定。
一种可能的实现方式中,本发明实施例步骤S301中,所述计算第一待调度任务的绝对负载,在具体实现时,可以包括步骤a-步骤c:
步骤a:获取所述第一待调度任务的运行时间。
步骤b:获取运行所述第一待调度任务的处理器核的运行时间及运行频率。
步骤c:根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
其中,步骤a中,可以通过打点记录的方式获取第一待调度任务的运行时间,具体可以包括:首先,在第一待调度任务开始时打点记录时间;其次,在任务休眠时,再次打点记录休眠时间;最后,通过两次的时间差值计算出第一待调度任务的运行时间。
其中,步骤b中,也可以通过打点记录的方式获取运行所述第一待调度任务的处理器核的运行时间,具体可以包括:首先,在处理器核开始工作时打点记录时间;其次,在处理器核休眠时,再次打点记录休眠时间;最后,通过两次的时间差值计算出处理器核的运行时间。
进而,如上述步骤S301中所述,通过第一待调度任务的运行时间与运行该第一待调度任务的处理器核的运行时间的比值,可以确定第一待调度任务的相对负载(也即进程负载),也即,确定出任务到底占用了多少百分比的处理器核来运行自己。比如,假设在200MHZ下,某个任务的运行时间等于处理器核的运行时间,则说明该任务相对负载是1。进一步的,由于本发明实施例考虑到不同运行频率下的能耗,因此,需要将相对负载乘以当前处理器核的运行频率,计算出该任务的绝对负载,即:绝对负载=运行频率×相对负载。比如,假设任务相对负载是1,处理器核的当前运行频率是0.2,则表示该任务的绝对负载就是0.2;当处理器核的运行频率升高到0.4,虽然其绝对负载还是0.2,但是其相对负载变成了0.5。
本领域普通技术人员容易理解,本发明实施例中的绝对负载最大是1。因为我们只可以用100%的时间去干一件事,无法用大于100%的时间去干这件事。
下面将结合一个具体示例说明本发明实施例上述计算第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数的方法。
示例性的,假设将该任务调度方法运用到某款智能手机上,该智能手机的多核系统中包含1个cluster,该cluster中包含4个处理器核,分别为处理器核0、处理器核1、处理器核2和处理器核3,该cluster管理的处理器核的功耗电气特性以及cluster的功耗值如表一所示。当前用户正在使用这款智能手机听音乐,该任务的绝对负载为0.2,任务运行在该cluster的处理器核0上,当用户使用该款智能手机同时看电子书时,假设该第一待调度任务的绝对负载为0.1,此时,分别计算该cluster管理的第n个处理器核工作在第m个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数。其中,表二和表三分别为r=1,n=1,m=2与r=1,n=2,m=1时的系统能耗估算参数计算列表。
表二
表三
其中,这里给出r=1,n=1,m=2时系统能耗估算参数的计算方法如下:
第一,计算处理器核0的能耗:
此时处理器核0的绝对负载inst=0.2+0.1=0.3,根据表一可知,第2个运行频率CC=0.4,对应的PL=0.2,PD=0.9,因此,根据上述第nr个处理器核的能耗计算公式,E(处理器核0)=(PL+PD)×(inst/CC)=(0.2+0.9)×(0.3/0.4)=0.825。
第二,计算多核系统中其它处理器核的能耗:
由于该多核系统中仅包含1个cluster,该cluster中包含处理器核0、处理器核1、处理器核2、处理器核3共4个处理器核,因此获取多核系统中其它处理器核的能耗也即获取处理器核1、处理器核2、处理器核3的能耗。
由于此时第一待调度任务并未运行在处理器核1、处理器核2、处理器核3上,因此处理器核1、处理器核2、处理器核3的能耗根据处理器核1、处理器核2、处理器核3上当前运行的任务的情况确定。比如,假设处理器核1、处理器核2、处理器核3上当前未运行任何任务,即绝对负载均为0,则E(处理器核1)=E(处理器核2)=E(处理器核3)=0。
第三,计算cluster的能耗:
根据表一可知,cluster的功耗值=2.4,由于该cluster中当前仅处理器核0在运行,因此运行时间最长的处理器核的运行时间为处理器核0的运行时间,而处理器核0的运行时间=处理器核0的绝对负载/处理器核0的运行频率=0.3/0.4=0.75,因此,根据上述第r个cluster的能耗计算公式,cluster的能耗=cluster的功耗值×处理器核0的运行时间=2.4×0.75=1.8。
第四.计算多核系统中其它cluster的能耗:
由于该多核系统中仅包含1个cluster,因此多核系统中其它cluster的能耗为0。
第五,计算系统能耗估算参数:
根据上述多核系统的能耗估算参数计算公式,可知第1个cluster管理的第1个处理器核工作在第2个运行频率下运行所述第一待调度任务时,所述多核系统的系统能耗估算参数=第1个cluster管理的第1个处理器核的能耗+第1个cluster的能耗+多核系统中其它处理器核的能耗+多核系统中其它cluster的能耗=E(处理器核0)+E(处理器核1)+E(处理器核2)+E(处理器核3)+cluster的能耗+多核系统中其它处理器核的能耗+多核系统中其它cluster的能耗=0.825+1.8=2.625。
类似的,r、n、m分别取r=1,n=2,m=1或其它数值时,多核系统的能耗估算参数的计算方法可参考上述示例,此处不再一一赘述。
需要说明的是,上述示例仅以多核系统中包含1个cluster,该cluster中仅包含4个处理器核,仅处理器核0上有1个任务在运行为例进行说明,当然,多核系统中也可能包含大于1个cluster,1个cluster中也可能包含并非4个处理器核,该多核系统中也可能并非仅有1个任务在运行,系统能耗的计算方法均可参考上述计算过程,本发明实施例在此不再一一举例说明。
需要说明的是,假设多核系统中有2个cluster,第1个cluster中有处理器核在运行,第2个cluster中没有处理器核在运行,通常优先考虑将所述第一待调度任务调度在第1个cluster上运行,因为若将所述第一待调度任务调度在第2个cluster上运行,会引入第2个cluster的能耗,进而导致系统能耗较大,这可以通过上述计算过程加以验证。当然,若第1个cluster管理的处理器核均不空闲,需要将待调度任务调度在第2个cluster上运行,本发明实施例对此不作具体限定。
在计算所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数之后,可以根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率。比如,在上述示例中,经过遍历计算可知,处理器核0工作在1.0单位运行频率下运行所述待调度任务时,多核系统的系统能耗估算参数最小,则可以确定系统能耗最小的情况下运行所述第一待调度任务的目标处理器核为处理器核0,相应的目标运行频率为1.0单位运行频率,进而控制处理器核0工作在1.0单位的运行频率下,并将所述第一待调度任务调度在处理器核0上运行即可。
基于本发明实施例提供的任务调度方法,由于本发明实施例在进行任务调度时,能够首先计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,并根据该系统能耗估算参数,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;进而控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。即,通过将第一待调度任务的绝对负载量化,第一待调度任务运行在不同处理器核及不同运行频率下时的系统能耗量化的方式,确定系统能耗估算参数最小的调度方案后进行任务调度,因此,可以保证调度第一待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的任务调度方法应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的任务调度方法应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。
进一步的,如图5所示,在本发明实施例提供的任务调度方法中,在图3所示的任务调度结束后,还可以包括:
S501、计算第二待调度任务的绝对负载。
其中,计算第二待调度任务的绝对负载的过程可参考上述实施例中计算第一待调度任务的绝对负载的描述,此处不再赘述。
S502、在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、所述系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率。
其中,所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
具体的,本发明实施例中,在上述步骤S303中,当前处理器核确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率之后,可以将上述第一对应关系存储在多核系统的存储器中,本发明实施例对此不作具体限定。
其中,该第一对应关系可以如表四所示:
表四
比如,假设预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系如表四所示,第二待调度任务的调度场景与上述示例中的相同,即,假设将该任务调度方法运用到某款智能手机上,该智能手机的多核系统中包含1个cluster,该cluster中包含4个处理器核,分别为处理器核0、处理器核1、处理器核2和处理器核3,该cluster管理的处理器核的功耗电气特性以及cluster的功耗值如表一所示。当前用户正在使用这款智能手机听音乐,该任务的绝对负载为0.2,任务运行在该cluster的处理器核0上,当用户使用该款智能手机同时看电子书时,假设该第二待调度任务的绝对负载为0.1,则根据该第一对应关系可知,所述第二待调度任务对应的所述系统能耗估算参数最小的情况下运行所述第二待调度任务的目标处理器核的标识为处理器核0,相应的目标运行频率为1.0单位运行频率。
S503、控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行。
即,本发明实施例提供的任务调度方法中,可以将确定的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案)以第一对应关系形式存储在多核系统的存储器中,这样在后续的任务调度过程中,可以不用一边计算一边得到最优调度方案,而是直接查询已经存储的最优调度方案,根据该最优调度方案进行调度即可,这样可以大大减少系统的计算量,从而减少管理开销,能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
需要说明的是,图5所示的实施例也可以独立执行,即不论所述第一对应关系是否是通过图3所示的任务调度方法获得的,只要在所述多核系统的存储器中存储所述第一关系的情况下,即可执行图5所述的方法实施例,本发明实施例对此不作具体限定。
实施例二、
本发明实施例提供一种任务调度装置600,如图6所示,所述任务调度装置600包括:第一计算单元602、第二计算单元603、第一确定单元604、控制单元605、以及调度单元606。
所述第一计算单元602,用于计算第一待调度任务的绝对负载。
所述第二计算单元603,用于计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数。
所述第一确定单元604,用于根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率。
所述控制单元605,用于控制所述目标处理器核工作在所述目标运行频率下,以及,所述调度单元606,用于将所述第一待调度任务调度在所述目标处理器核上运行。
进一步的,所述第二计算单元603具体用于:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
进一步的,所述第二计算单元603还用于:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗。其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
进一步的,所述第二计算单元603还用于:
根据所述第r个cluster的功耗,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
进一步的,所述第一计算单元602具体用于:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
基于本发明实施例提供的任务调度装置,由于本发明实施例提供的任务调度装置在进行任务调度时,能够首先计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,并根据该系统能耗估算参数,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;进而控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。即,本发明实施例提供的任务调度装置通过将第一待调度任务的绝对负载量化,第一待调度任务运行在不同处理器核及不同运行频率下时的系统能耗量化的方式,确定系统能耗估算参数最小的调度方案后进行任务调度,因此,可以保证调度第一待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的任务调度装置应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的任务调度装置应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。
进一步的,如图7所示,所述任务调度装置600还包括第二确定单元607。
所述第一计算单元602还用于计算第二待调度任务的绝对负载。
所述第二确定单元607,用于:在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、所述系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率。
其中,所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
所述控制单元605,还用于控制所述目标处理器核工作在所述目标运行频率下。
所述调度单元606,还用于将所述第二待调度任务调度在所述目标处理器核上运行。
由于本发明实施例提供的任务调度装置,可以不用一边计算一边得到最优调度方案,而是直接查询预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案),根据该最优调度方案进行调度即可,这样可以大大减少系统的计算量,从而减少管理开销,能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
具体的,通过图6或图7提供的任务调度装置600进行任务调度的方法可参考实施例一的描述,本发明实施例在此不再赘述。
需要说明的是,本发明实施例提供的任务调度装置的功能可以对应实施例四当前处理器核执行的功能,本发明实施例对此不作具体限定。
实施例三、
本发明实施例提供一种任务调度装置800,如图8所示,所述任务调度装置800包括:计算单元801、确定单元802、控制单元803、以及调度单元804。
所述计算单元801,用于计算第二待调度任务的绝对负载。
所述确定单元802,用于在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率,其中,所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
所述控制单元803,用于控制所述目标处理器核工作在所述目标运行频率下。
所述调度单元804,用于将所述第二待调度任务调度在所述目标处理器核上运行。
具体的,通过本发明实施例提供的任务调度装置800进行任务调度的方法可参考实施例一的描述,本发明实施例在此不再赘述。
需要说明的是,本发明实施例提供的任务调度装置的功能可以对应实施例五当前处理器核执行的功能,本发明实施例对此不作具体限定。
由于本发明实施例提供的任务调度装置,可以通过直接查询预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案),获得最优调度方案后,根据该最优调度方案进行任务调度。一方面,该最优调度方案可以保证调度第二待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的任务调度方法应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的任务调度方法应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。另一方面,由于该最优调度方案不用计算,因此不用增加多核系统的管理开销。综上,本发明实施例提供的任务调度装置能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
实施例四、
本发明实施例提供一种多核系统100,如图1或图2所示,包括:
总线101;
与所述总线101相连的多核处理器102;
与所述总线101相连的存储器103;
其中,所述多核处理器102包括多个处理器核,如处理器核102a、处理器核102b、……、处理器核102c、处理器核102d。其中,当前处理器核(可以为处理器核102a、处理器核102b、……、处理器核102c、处理器核102d中的任意一个处理器核)通过所述总线101调用所述存储器103中的执行指令,以用于:
计算第一待调度任务的绝对负载。
计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数。
根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率。
控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
一种可能的实现方式中,在计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数的方面,当前处理器核具体用于:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
可选地,当前处理器核还用于:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
可选地,当前处理器核还用于:
根据所述第r个cluster的功耗值,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗值×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
一种可能的实现方式中,在计算第一待调度任务的绝对负载的方面,当前处理器核具体用于:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
进一步的,当前处理器核通过所述总线101调用所述存储器103中的执行指令,还可以用于:
计算第二待调度任务的绝对负载。
在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载,根据所述第二待调度任务的绝对负载相同的情况下,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率,其中,所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行。
在一些实施方式中,存储器103存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用模块,包含各种应用程序,用于实现各种应用业务。
应用模块中包括但不限于第一计算单元、第二计算单元、第一确定单元、第二确定单元、控制单元、以及调度单元,其中各单元的功能参见前述实施例,在此不赘述。
基于本发明实施例提供的多核系统,由于该多核系统中的当前处理器核在进行任务调度时,能够首先计算多核系统中R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,并根据该系统能耗估算参数,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;进而控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。即,本发明实施例提供的该多核系统中的当前处理器核通过将第一待调度任务的绝对负载量化,第一待调度任务运行在不同处理器核及不同运行频率下时的系统能耗量化的方式,确定系统能耗估算参数最小的调度方案后进行任务调度,因此,可以保证调度第一待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的多核系统应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的多核系统应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。
进一步的,由于本发明实施例提供的多核系统中的当前处理器核还用于直接查询预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案),根据该最优调度方案进行调度,而不用一边计算一边得到最优调度方案,因此可以大大减少系统的计算量,从而减少管理开销,能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
实施例五、
本发明实施例提供一种多核系统100,如图1或图2所示,包括:
总线101;
与所述总线101相连的多核处理器102;
与所述总线101相连的存储器103;
其中,所述多核处理器102包括多个处理器核,如处理器核102a、处理器核102b、……、处理器核102c、处理器核102d。其中,当前处理器核(可以为处理器核102a、处理器核102b、……、处理器核102c、处理器核102d中的任意一个处理器核)通过所述总线101调用所述存储器103中的执行指令,以用于:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
在一些实施方式中,存储器103存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用模块,包含各种应用程序,用于实现各种应用业务。
应用模块中包括但不限于计算单元、确定单元、控制单元、以及调度单元,其中各单元的功能参见前述实施例,在此不赘述。
基于本发明实施例提供的多核系统,由于该多核系统中的当前处理器核在进行任务调度时,可以通过直接查询预先存储的所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系(也即最优调度方案),获得最优调度方案后,根据该最优调度方案进行任务调度。一方面,该最优调度方案可以保证调度第二待调度任务后,多核系统的系统能耗最小。进而,将本发明实施例提供的多核系统应用在手持终端方面,能够在相同的使用场景下,使得续航时间更长,从而增加巡航能力,增加用户体验;将本发明实施例提供的多核系统应用在PC或大规模服务器集群方面,能够在相同的使用场景下,使得消耗电能最小,从而可以节省电力的消耗,节能减排。另一方面,由于该最优调度方案不用计算,因此不用增加多核系统的管理开销。综上,本发明实施例提供的多核系统能够在多核系统的吞吐率、响应性/实时性不受实质影响的情况下,节省系统能耗。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种任务调度方法,其特征在于,所述方法包括:
计算第一待调度任务的绝对负载;
计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
2.根据权利要求1所述的任务调度方法,其特征在于,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是通过如下步骤得到的:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
3.根据权利要求1或2所述的任务调度方法,其特征在于,所述第nr个处理器核的能耗是通过如下步骤得到的:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
4.根据权利要求1或2所述的任务调度方法,其特征在于,所述第r个cluster的能耗是通过如下步骤得到的:
根据所述第r个cluster的功耗值,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗值×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
5.根据权利要求1或2所述的任务调度方法,其特征在于,所述计算第一待调度任务的绝对负载,包括:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
6.根据权利要求1或2所述的任务调度方法,其特征在于,所述方法还包括:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
7.一种任务调度方法,其特征在于,所述方法包括:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
8.一种任务调度装置,其特征在于,所述任务调度装置包括:第一计算单元、第二计算单元、第一确定单元、控制单元、以及调度单元;
所述第一计算单元,用于计算第一待调度任务的绝对负载;
所述第二计算单元,用于计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
所述第一确定单元,用于根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元,用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元,用于将所述第一待调度任务调度在所述目标处理器核上运行。
9.根据权利要求8所述的任务调度装置,其特征在于,所述第二计算单元具体用于:
根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)处理器核的能耗以及其它(R-1)cluster的能耗,计算所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述系统能耗估算参数=第nr个处理器核的能耗+第r个cluster的能耗+多核系统中其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
10.根据权利要求8或9所述的任务调度装置,其特征在于,所述第二计算单元还用于:
根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数,计算所述第nr个处理器核的能耗,其中,
E=(PL+PD)×(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr个运行频率下的静态功耗参数;PD表示所述第mr个运行频率下的动态功耗参数;inst表示所述第nr个处理器核的绝对负载,所述第nr个处理器核的绝对负载包含所述第一待调度任务的绝对负载和所述第nr个处理器核上其它调度任务的绝对负载;CC表示所述第mr个运行频率。
11.根据权利要求8或9所述的任务调度装置,其特征在于,所述第二计算单元还用于:
根据所述第r个cluster的功耗,以及所述Nr个处理器核中运行时间最长的处理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r个cluster的功耗×所述Nr个处理器核中运行时间最长的处理器核的运行时间。
12.根据权利要求8或9所述的任务调度装置,其特征在于,所述第一计算单元具体用于:
根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行频率×(任务的运行时间/处理器核的运行时间)。
13.根据权利要求8或9所述的任务调度装置,其特征在于,所述任务调度装置还包括第二确定单元;
所述第一计算单元还用于计算第二待调度任务的绝对负载;
所述第二确定单元,用于:在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元还用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元还用于将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
14.一种任务调度装置,其特征在于,所述任务调度装置包括:计算单元、确定单元、控制单元、以及调度单元;
所述计算单元,用于计算第二待调度任务的绝对负载;
所述确定单元,用于在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
所述控制单元,用于控制所述目标处理器核工作在所述目标运行频率下;
所述调度单元,用于将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
15.一种多核系统,其特征在于,包括:
总线;
与所述总线相连的多核处理器;
与所述总线相连的存储器;
其中,所述多核处理器包括多个处理器核,当前处理器核通过所述总线调用所述存储器中的执行指令,以用于:
计算第一待调度任务的绝对负载;
计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的系统能耗估算参数包括:第nr个处理器核工作在第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述第nr个处理器核工作在所述第mr个运行频率下运行所述第一待调度任务时,所述第nr个处理器核的能耗、第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第nr个处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第mr个运行频率下的静态功耗参数和动态功耗参数计算得到的;nr表示所述R个cluster中第r个cluster管理的Nr个处理器核中的第n个处理器核,Nr表示所述第r个cluster管理的处理器核的个数,mr表示所述第r个cluster管理的处理器核的Mr个运行频率中第m个运行频率,Mr表示所述第r个cluster管理的处理器核的运行频率的个数,1≤r≤R,R≥1,1≤mr≤Mr,1≤Nr≤P,1≤nr≤Nr,Mr≥1,P>1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调度在所述目标处理器核上运行。
16.一种多核系统,其特征在于,包括:
总线;
与所述总线相连的多核处理器;
与所述总线相连的存储器;
其中,所述多核处理器包括多个处理器核,当前处理器核通过所述总线调用所述存储器中的执行指令,以用于:
计算第二待调度任务的绝对负载;
在所述第二待调度任务的绝对负载与存储的第一待调度任务的绝对负载相同的情况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应的目标运行频率;
控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调度在所述目标处理器核上运行,其中,
所述存储的第一对应关系包括:系统能耗估算参数最小的情况下运行所述第一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510202014.6A CN104820618B (zh) | 2015-04-24 | 2015-04-24 | 一种任务调度方法、任务调度装置及多核系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510202014.6A CN104820618B (zh) | 2015-04-24 | 2015-04-24 | 一种任务调度方法、任务调度装置及多核系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104820618A CN104820618A (zh) | 2015-08-05 |
CN104820618B true CN104820618B (zh) | 2018-09-07 |
Family
ID=53730920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510202014.6A Active CN104820618B (zh) | 2015-04-24 | 2015-04-24 | 一种任务调度方法、任务调度装置及多核系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104820618B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760270B (zh) * | 2016-01-21 | 2019-01-01 | 西北工业大学 | 一种能耗估算的方法及装置 |
CN105807889A (zh) * | 2016-02-29 | 2016-07-27 | 宇龙计算机通信科技(深圳)有限公司 | 指令处理方法、指令处理装置和终端 |
CN105955827B (zh) * | 2016-05-31 | 2017-11-24 | 广东欧珀移动通信有限公司 | 处理器计算资源的分配方法及装置 |
EP3492931A1 (en) * | 2016-07-29 | 2019-06-05 | Shimadzu Corporation | Analysis control system |
CN107797853B (zh) * | 2016-09-07 | 2020-09-08 | 深圳市中兴微电子技术有限公司 | 一种任务调度方法、装置及多核处理器 |
CN108037988A (zh) * | 2017-12-11 | 2018-05-15 | 郑州云海信息技术有限公司 | 一种samba多线程性能打点方法及装置 |
CN111913855A (zh) * | 2020-09-21 | 2020-11-10 | 北京百度网讯科技有限公司 | 确定目标任务计算量的方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337339B1 (en) * | 2005-09-15 | 2008-02-26 | Azul Systems, Inc. | Multi-level power monitoring, filtering and throttling at local blocks and globally |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN102508714A (zh) * | 2011-11-03 | 2012-06-20 | 南京邮电大学 | 一种云计算中基于绿色计算的虚拟机调度方法 |
CN102567117A (zh) * | 2010-09-30 | 2012-07-11 | 国际商业机器公司 | 调度处理器中的线程的方法和系统 |
CN102681902A (zh) * | 2012-05-15 | 2012-09-19 | 浙江大学 | 一种基于多核系统任务分配的负载均衡方法 |
CN103329100A (zh) * | 2011-01-21 | 2013-09-25 | 英特尔公司 | 异质的计算环境中的负载平衡 |
CN104049716A (zh) * | 2014-06-03 | 2014-09-17 | 中国科学院计算技术研究所 | 一种结合温度感知的计算机节能方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060168571A1 (en) * | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
US9250682B2 (en) * | 2012-12-31 | 2016-02-02 | Intel Corporation | Distributed power management for multi-core processors |
-
2015
- 2015-04-24 CN CN201510202014.6A patent/CN104820618B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337339B1 (en) * | 2005-09-15 | 2008-02-26 | Azul Systems, Inc. | Multi-level power monitoring, filtering and throttling at local blocks and globally |
CN102567117A (zh) * | 2010-09-30 | 2012-07-11 | 国际商业机器公司 | 调度处理器中的线程的方法和系统 |
CN103329100A (zh) * | 2011-01-21 | 2013-09-25 | 英特尔公司 | 异质的计算环境中的负载平衡 |
CN102184125A (zh) * | 2011-06-02 | 2011-09-14 | 首都师范大学 | 异构多核环境下基于程序行为在线分析的负载均衡方法 |
CN102508714A (zh) * | 2011-11-03 | 2012-06-20 | 南京邮电大学 | 一种云计算中基于绿色计算的虚拟机调度方法 |
CN102681902A (zh) * | 2012-05-15 | 2012-09-19 | 浙江大学 | 一种基于多核系统任务分配的负载均衡方法 |
CN104049716A (zh) * | 2014-06-03 | 2014-09-17 | 中国科学院计算技术研究所 | 一种结合温度感知的计算机节能方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104820618A (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104820618B (zh) | 一种任务调度方法、任务调度装置及多核系统 | |
CN105893148B (zh) | 一种基于rm策略的偶发任务低能耗调度方法 | |
Li et al. | An energy-efficient scheduling approach based on private clouds | |
TWI425422B (zh) | 多cpu領域行動電子裝置與其操作方法 | |
CN105359057B (zh) | 设置计算机参数使得电源工作在基于电源的功率效率峰值的范围内 | |
CN109873868A (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN102981890B (zh) | 一种在虚拟化数据中心内的计算任务及虚拟机部署方法 | |
Kessaci et al. | A multi-start local search heuristic for an energy efficient VMs assignment on top of the OpenNebula cloud manager | |
CN102158513A (zh) | 一种服务器集群节能的方法、装置和服务器集群 | |
Xiao et al. | Minimizing schedule length of energy consumption constrained parallel applications on heterogeneous distributed systems | |
CN102306111A (zh) | 用于提高事件处理的涡轮加速性能的方法和装置 | |
CN109510869A (zh) | 一种基于边缘计算的物联网服务动态卸载方法及装置 | |
CN101794169B (zh) | 基于改变控制模式进行机群系统能耗管控的方法 | |
CN114710563A (zh) | 一种集群节能方法及装置 | |
CN110633152A (zh) | 用于实现业务集群水平伸缩的方法和装置 | |
Zhang et al. | Reliability-aware low energy scheduling in real time systems with shared resources | |
CN115204612A (zh) | 电力系统碳排放量的确定方法、装置、设备和存储介质 | |
CN105549723A (zh) | 一种服务器节电控制方法、装置及电子设备节电控制装置 | |
CN115373860B (zh) | Gpu任务的调度方法、装置、设备和存储介质 | |
Christobel et al. | Efficient scheduling of scientific workflows with energy reduction using novel discrete particle swarm optimization and dynamic voltage scaling for computational grids | |
Cho et al. | A high performance load balance strategy for real‐time multicore systems | |
CN113422366B (zh) | 一种基于大数据分析和需求响应的电力调度方法及其系统 | |
CN115269145A (zh) | 一种面向海上无人设备的高能效异构多核调度方法及装置 | |
Wu et al. | Energy-efficient task allocation for VFI-based real-time multi-core systems | |
Xu et al. | Minimizing energy cost for internet-scale datacenters with dynamic traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |