一种能耗估算的方法及装置与流程

文档序号:13744855阅读:195来源:国知局
本发明涉及计算机
技术领域
,尤其涉及一种能耗估算的方法及装置。
背景技术
:随着科学技术的发展,减少碳排放已成为一个世界性的课题,节能减排也是我国的一项重要国策。计算机系统,尤其是大规模计算机系统,耗费的电力非常可观。对计算机系统功耗进行测量和估算是计算运营成本,在不同系统间进行业务迁移的重要依据。使用功率分析仪可以获得特定计算机系统的准确能耗,但是功率分析仪价格昂贵,每次能测量的设备数目有限。处理器能耗在计算机系统能耗中占据最大比例,并且这部分能耗会随负载不同而变化。处理器能耗的估算是计算机系统能耗估算的难点和重点。模块化多核心架构已经成为多核处理器的主流架构,包括AMD(AdvancedMicroDevices,超微半导体公司)公司的推土机架构(Bulldozer)和Intel(英特尔)公司的Nehalem都是模块化多核心架构。以AMD的推土机架构(Bulldozer)为例进行说明。如图1所示,在AMD的推土机架构中,包含多个模块。每一个模块中有2个整数运算的内核,每个内核有4个整数运算通道。4个运算通道内,2个ALU(ArithmeticLogicUnit,算术逻辑单元)和AGU(AddressGenerationUnits,地址产成单元)为一组。每个模块共享L2级缓存,所有模块共享L3缓存,但每个模块最多使用2ML3缓存。所有模块共享总线,Crossbar(交叉开关矩阵或纵横式交换矩阵),内存接口等外围组件。由架构图可见,由于不同组件的共享范围不同,随着CPU(CentralProcessingUnit,中央处理器)利用率的增加,不同的组件参与运算,其能耗增长规律不符合线性增长模型。而现有技术中,主要以线性模型的方式进行计算机的能耗的预测。即为预测计算机的能耗的方法是采集性能数据,并利用性能数据预测计算机的能耗。在上述预测计算机的能耗时,发明人发现至少存在如下问题:在多核处理器的计算机中,由于内核间共享组件,使能耗与CPU利用率之间的关系变得复杂,不满足传统的线性模型,导致采用传统的线性模型进行计算机的能耗预测时,预测误差较大。技术实现要素:本发明的实施例提供一种能耗估算的方法及装置,用以提高计算机的能耗预测的准确性。为达到上述目的,本发明的实施例采用如下技术方案:本发明实施例提供了一种能耗估算的方法,包括:获取基准功耗数据;所述基准功耗数据包括待估算计算机的每个内核的功耗特征数据,所述待估算计算机的每个模块内共享组件的最大功耗及所述待估算计算机的全局共享组件的最大功耗;所述待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核;内核的功耗特征数据是内核处理器的预设的特征利用率对应的所述待估算计算机的功耗;获取所述待估算计算机的每个内核的当前利用率;根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,分别获取所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗;根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,获取所述待估算计算机的当前功耗。可选的,根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,获取所述待估算计算机的内核的每个当前功耗包括:根据所述待估算计算机的第i个内核的当前利用率,确定所述第i个内核当前利用率所属的特征利用率区间为第i个内核的第j个特征利用率区间;其中,i为大于0且不大于q的整数;q为所述待估算计算机中内核的总数;所述第i个内核的特征利用率区间是由所述第i个内核的预设的特征利用率形成的;j为大于0且不大于k的整数;k为第i个内核的特征利用率区间的总个数;根据所述基准功耗数据,利用公式获取所述待估算计算机的内核的第i个内核的当前功耗;其中,表示所述待估算计算机的内核的第i个内核的当前功耗;aj表示第i个内核的第j个特征利用率对应的待估算计算机的功耗;aj+1表示第i个内核的第j+1个特征利用率对应的待估算计算机的功耗;j表示第j个特征利用率区间;Ui表示所述待估算计算机的第i个内核的当前利用率。可选的,所述根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,获取所述待估算计算机的每个模块内共享组件的当前功耗包括:根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>获取所述待估算计算机的每个模块内共享组件的当前功耗;其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;n表示所述待估算计算机的第t个模块内包含的内核的总个数;Wmodule_maxpower表示所述待估算计算机的第t个模块内共享组件的最大功耗;表示所述待估算计算机的第t个模块内共享组件的当前功耗;t为大于0且不大于m的整数;所述m表示所述待估算计算机内包含的模块的总数。可选的,所述根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,获取所述待估算计算机的全局共享组件的当前功耗包括:根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取所述待估算计算机的全局共享组件的当前功耗;其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;m表示所述待估算计算机内包含的模块的总数;n表示所述待估算计算机的模块内包含的内核的总个数;Wshare表示所述待估算计算机的全局共享组件的当前功耗;Wshare_maxpower表示所述待估算计算机的全局共享组件的最大功耗。可选的,所述根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,获取所述待估算计算机的当前功耗包括:根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,利用公式获取所述待估算计算机的当前功耗;其中,表示所述待估算计算机的第i个内核的当前功耗,表示所述待估算计算机的第t个模块内共享组件的当前功耗;Wshare表示所述待估算计算机的全局共享组件的当前功耗;Wtotal表示所述待估算计算机的当前功耗。进一步的,本发明实施例提供了一种能耗估算的装置,包括:获取单元,用于获取基准功耗数据;所述基准功耗数据包括待估算计算机的每个内核的功耗特征数据,所述待估算计算机的每个模块内共享组件的最大功耗及所述待估算计算机的全局共享组件的最大功耗;所述待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核;内核的功耗特征数据是内核处理器的预设的特征利用率对应的所述待估算计算机的功耗;所述获取单元,还用于获取所述待估算计算机的每个内核的当前利用率;处理单元,用于根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,分别获取所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗;所述处理单元,还用于根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,获取所述待估算计算机的当前功耗。可选的,所述处理单元根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率获取所述待估算计算机的每个内核的当前功耗具体为:所述处理单元,具体用于根据所述待估算计算机的第i个内核的当前利用率,确定所述第i个内核当前利用率所属的特征利用率区间为第i个内核的第j个特征利用率区间;其中,i为大于0且不大于q的整数;所述q为所述待估算计算机中内核的总数;所述第i个内核的特征利用率区间是由所述第i个内核的预设的特征利用率形成的;所述j为大于0且不大于k的整数;所述k为第i个内核的特征利用率区间的总个数;根据所述基准功耗数据,利用公式获取所述待估算计算机的内核的第i个内核的当前功耗;其中,表示所述待估算计算机的内核的第i个内核的当前功耗;aj表示第i个内核的第j个特征利用率对应的待估算计算机的功耗;aj+1表示第i个内核的第j+1个特征利用率对应的待估算计算机的功耗;j表示第j个特征利用率区间;Ui表示所述待估算计算机的第i个内核的当前利用率。可选的,所述处理单元根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,获取所述待估算计算机的每个模块内共享组件的当前功耗具体为:所述处理单元,具体用于根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>获取所述待估算计算机的每个模块内共享组件的当前功耗;其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;n表示所述待估算计算机的第t个模块内包含的内核的总个数;Wmodule_maxpower表示所述待估算计算机的第t个模块内共享组件的最大功耗;表示所述待估算计算机的第t个模块内共享组件的当前功耗;t为大于0且不大于m的整数;所述m表示所述待估算计算机内包含的模块的总数。可选的,所述处理单元根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,获取所述待估算计算机的全局共享组件的当前功耗具体为:所述处理单元,具体用于根据所述基准功耗数据及所述待估算计算机的每个内核的当前利用率,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取所述待估算计算机的全局共享组件的当前功耗;其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;m表示所述待估算计算机内包含的模块的总数;n表示所述待估算计算机的模块内包含的内核的总个数;Wshare表示所述待估算计算机的全局共享组件的当前功耗;Wshare_maxpower表示所述待估算计算机的全局共享组件的最大功耗。可选的,所述处理单元用于根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,获取所述待估算计算机的当前功耗具体包括:所述处理单元,具体用于根据所述待估算计算机的每个内核的当前功耗,所述待估算计算机的每个模块内共享组件的当前功耗,所述待估算计算机的全局共享组件的当前功耗,利用公式获取所述待估算计算机的当前功耗;其中,表示所述待估算计算机的第i个内核的当前功耗,表示所述待估算计算机的第t个模块内共享组件的当前功耗;Wshare表示所述待估算计算机的全局共享组件的当前功耗;Wtotal表示所述待估算计算机的当前功耗。本发明实施例提供了一种能耗估算的方法及装置,包括:获取基准功耗数据;基准功耗数据包括待估算计算机的每个内核的功耗特征数据,待估算计算机的每个模块内共享组件的最大功耗及所述待估算计算机的全局共享组件的最大功耗;待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核;内核的功耗特征数据是内核处理器的预设的特征利用率对应的待估算计算机的功耗;获取待估算计算机的每个内核的当前利用率;根据基准功耗数据及待估算计算机的每个内核的当前利用率,分别获取所述待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗;根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗。这样,能耗估算的装置在进行待估算计算机的能耗估算时,可以获取待估算计算机的每个内核的当前利用率,根据待估算计算机的每个内核的当前利用率及基准功耗数据,分别获取待估算计算机的每个内核的当前功耗,每个模块内的共享组件的当前功耗,以及全局共享组件的当前功耗,进而可以计算出待估算计算机的当前功耗。也就是说,相对于现有技术中的采集性能数据,并利用性能数据预测计算机的能耗,本发明是根据待估算计算机的实际负载情况及基准功耗数据,分别计算出待估算计算机中的不同部件的当前功耗,进而计算出待估算计算机的当前功耗,因此提高了计算机的能耗预测的准确性。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中的AMD的推土机架构的示意图;图2为本发明实施例提供的一种能耗估算的方法的流程示意图;图3为本发明实施例提供的一种能耗估算的装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种能耗估算的方法,如图2所示,包括:步骤101、获取基准功耗数据。其中,基准功耗数据包括待估算计算机的每个内核的功耗特征数据,待估算计算机的每个模块内共享组件的最大功耗及待估算计算机的全局共享组件的最大功耗。待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核。内核的功耗特征数据是内核处理器的预设的特征利用率对应的待估算计算机的功耗。具体的,能耗估算的装置在需要对待估算计算机的能耗进行估算时,需先获取此待估算计算机的基准功耗数据。此时,能耗估算的装置可以通过以下方法获取基准功耗数据:在获取基准功耗数据中的待估算计算机的每个内核的功耗特征数据时,需要能耗估算的装置分别对待估算计算机的每个内核独立施加不同的负载,同时控制待估算计算机的其他内核的负载为0,测试出在其他内核的负载为0,对当前待测试的内核施加不同的负载时,待估算计算机的功耗。也就是说,能耗估算的装置依次将待估算计算机的一个内核的利用率设置为预设的特征利用率,并控制其他内核的利用率为0,测试出在此内核的利用率设置为预设的特征利用率时,分别对应的待估算计算机的功耗,进而可以获取待估算计算机的每个内核的功耗特征数据。即为,能耗估算的装置在获取第i个内核的功耗特征数据时,可以将待估算计算机中的除第i个内核外的其他内核的负载均置为0,这样可以将第i个内核的负载即为利用率分别设置为预设的特征利用率,检测待估算计算机的功耗,这样一来,可以获取到第i个内核的功耗特征数据,进而可以获取到待估算计算机的每个内核的功耗特征数据。需要说明的是,内核的预设的特征利用率是预先设置的,内核的不同利用率。例如,内核的预设的特征利用率可以是内核的利用率分别为0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100%。进一步的,可以根据内核的预设的特征利用率,将相邻的两个特征利用率作为一个特征利用率区间的起始点,确定出此内核的特征利用率区间。例如,在内核的预设的特征利用率为0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100%时,将相邻的两个特征利用率作为一个特征利用率区间的起始点,可以得到10个特征利用率区间,即为[0%,10%]为第一个特征利用率区间,[10%,20%]为第二个特征利用率区间,[20%,30%]为第三个特征利用率区间,[30%,40%]为第四个特征利用率区间,[40%,50%]为第五个特征利用率区间,[50%,60%]为第六个特征利用率区间,[60%,70%]为第七个特征利用率区间,[70%,80%]为第八个特征利用率区间,[80%,90%]为第九个特征利用率区间,[90%,100%]为第十个特征利用率区间。这样,由于能耗估算的装置已经获取了每个预设的特征利用率对应的待估算计算机的功耗,因此也可以将每个内核的预设的特征利用率对应的待估算计算机的功耗划分为不同的区间。在获取待估算计算机的每个模块内共享组件的最大功耗据时,需要先确定出待估算计算机中的每个模块包含的内核的核数。由于同一个模块内部的内核依次施加负载,待估算计算机增加的能耗数低于不同模块内的内核施负载时,待估算计算机增加的能耗数。基于此,能耗估算的装置可以将待估算计算机的第一个内核的利用率设置为a%,记录此时待估算计算机的功耗。然后可以依次将待估算计算机的其他内核设置为a%,得到在将待估算计算机的第一个内核的利用率设置为a%,并依次将待估算计算机的其他内核也设置为a%时,待估算计算机的功耗。从而可以确定出相对于将待估算计算机的第一个内核的利用率设置为a%时待估算计算机的功耗,在依次将待估算计算机的其他内核也设置为a%时,待估算计算机的功耗的增加量,并将对应的待估算计算机的功耗的增加量小于第一阀值的内核,确定为与第一内核是同一个模块的内核。这样,在确定出与第一个内核同一个模块的内核后,可以依次利用上述方法确定出待估算计算机的不同模块内的内核的个数。即为,能耗估算的装置在获取待估算计算机的每个模块内共享组件的最大功耗时,可以将待估算计算机的第一个内核的利用率设置为a%,同时记录此时待估算计算机的功耗。然后,能耗估算的装置可以将待估算计算机的第二个内核的利用率设置为a%,同时记录此时待估算计算机的功耗。这样,可以得到能耗估算的装置在将待估算计算机的第二个内核的利用率也设置为a%时,相对于仅有第一个内核的利用率设置为a%时,待估算计算机的功耗的增加量可以即为第一增加量。在得出第一增加量后,能耗估算的装置可以将待估算计算机的第二个内核的利用率置为0%,并将待估算计算机的第三个内核的利用率置为a%,同时记录此时待估算计算机的功耗。这样,可以得到能耗估算的装置在将待估算计算机的第三个内核的利用率也设置为a%时,相对于仅有第一个内核的利用率设置为a%时,待估算计算机的功耗的增加量,可以即为第二增加量。同理,在得出第二增加量后,能耗估算的装置可以将待估算计算机的第三个内核的利用率置为0%,并将待估算计算机的第四个内核的利用率置为a%,同时记录此时待估算计算机的功耗。这样,可以得到能耗估算的装置在将待估算计算机的第四个内核的利用率也设置为a%时,相对于仅有第一个内核的利用率设置为a%时,待估算计算机的功耗的增加量,可以即为第三增加量。同理,可以将待估算计算机内的其他内核的利用率依次设置为a%,并记录待估算计算机的功耗。这样可以依次获取到将待估算计算机的其他内核的利用率也设置为a%时,相对于仅有第一个内核的利用率设置为a%时,待估算计算机的功耗的增加量。这样,能耗估算的装置可以根据各个内核对应的待估算计算机的功耗的增加量,确定出对应的待估算计算机的功耗的增加量小于第一阀值的内核,并将此内核确定为与第一个内核为同一个模块。通过上述方法,可以确定出待估算计算机内的每个模块的内核数。能耗估算的装置在确定出待估算计算机内每个模块的内核数后,可以将待估算计算机内的所有模块内的所有内核的负载均施加到100%,即为,将待估算计算机内的所有模块内的所有内核的利用率均施加到100%,然后以模块为单位,逐个将模块内的所有内核的负载降为0%,即为依次将模块内所有内核的利用率降为0%,在模块内的所有内核的利用率降为0%时,可以出现降幅大于第二阀值非线性降低,从而可以得到模块内的共享组件的最大功耗拐点,进而可以得到模块内的共享组件的最大功耗。这样,可以得到待估算计算机的每个模块的每个模块内共享组件的最大功耗。即为,能耗估算的装置在确定出待估算计算机内的每个模块的内核数后,可以将待估算计算机内的所有模块内的所有内核的利用率均施加到100%,然后以模块为单位,将第一个模块内所有内核的利用率降为0%,在第一个模块内的所有内核的利用率降为0%时,待估算计算机的功耗会出现降幅大于第二阀值非线性降低,从而可以得到第一个模块内的共享组件的最大功耗拐点,进而可以得到第一个模块内的共享组件的最大功耗。这样,利用上述方法可以依次得到待估算计算机的其他模块内的共享组件的最大功耗。在获取待估算计算机的全局共享组件的最大功耗时,能耗估算的装置可以将待估算计算机的所有内核的负载均施加为100%,即为将待估算计算机的所有内核的利用率设置为100%,逐个将内核的负载降为0%,即为逐个将待估算计算机的内核的利用率降为0%,待估算计算机的功耗会出现降幅大于第三阀值非线性降低,从而可以得到全局共享组件的最大功耗拐点,进而可以得到全局共享组件的最大功耗。需要说明的是,上述的a%,第一阀值,第二阀值,及第三阀值均是用户根据实际需求预先设置的。这样,能耗估算的装置可以利用上述方法完成基准功耗数据的获取。需要说明的是,能耗估算的装置可以在第一次获取基准功耗数据时,利用上述方法获取基准功耗数据。而在获取了基准功耗数据后,能耗估算的装置可以将基准功耗数据存储至数据库中。这样,能耗估算的装置在以后需要获取基准功耗数据后,可以到数据库中直接获取基准功耗数据。示例性的,待估算计算机为8核计算机,即为在待估算计算机中有8个内核,这样,能耗估算的装置需要先获取基准功耗数据。此时能耗估算的装置在获取8个内核的功耗特征数据时,可以将第二至第八个内核的利用率设置为0%,而第一个内核的利用率依次设置为0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100%,并记录将第一个内核的利用率分别设置为0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100%时,待估算计算机的功耗。这样,就可以得到第一个内核的功耗特征数据。这样,能耗估算的装置可以利用上述方法依次得到第二至第八个内核的功耗特征数据。进一步的,能耗估算的装置在可以根据每个内核的预设利用率,将相邻的两个特征利用率作为一个特征利用率区间的起始点,确定出此内核的特征利用率区间。即为将内核的预设的特征利用率0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100%中的,相邻的两个特征利用率作为一个特征利用率区间的起始点,可以得到10个特征利用率区间,即为[0%,10%]为第一个特征利用率区间,[10%,20%]为第二个特征利用率区间,[20%,30%]为第三个特征利用率区间,[30%,40%]为第四个特征利用率区间,[40%,50%]为第五个特征利用率区间,[50%,60%]为第六个特征利用率区间,[60%,70%]为第七个特征利用率区间,[70%,80%]为第八个特征利用率区间,[80%,90%]为第九个特征利用率区间,[90%,100%]为第十个特征利用率区间。由于能耗估算的装置已经获取了每个预设的特征利用率对应的待估算计算机的功耗,因此也可以将每个内核的预设的特征利用率对应的待估算计算机的功耗划分为不同的区间。即为,可以将每个内核对应的待估算计算机的功耗划分为10个区间。能耗估算的装置在获取待估算计算机的每个模块内共享组件的最大功耗时,可以先确定出待估算计算机中的每个模块包含的内核的核数。此时能耗估算的装置可以将待估算计算机的第一个内核的利用率设置为50%,记录待估算计算机的功耗。然后,将第二个内核的利用率设置为50%,记录此时待估算计算机的第一个内核的利用率为50%且第二个内核的利用率为50%时,待估算计算机的功耗。并可以获取到待估算计算机的第一个内核的利用率为50%且第二个内核的利用率为50%,相对于仅有待估算计算机的第一个内核的利用率为50%,待估算计算机的功耗的增加量,即为第一增加量。然后,将第二个内核的利用率设置为0%,并将第三个内核的利用率设置为50%,记录此时待估算计算机的第一个内核的利用率为50%且第三个内核的利用率为50%时,待估算计算机的功耗。并可以获取到待估算计算机的第一个内核的利用率为50%且第三个内核的利用率为50%,相对于仅有待估算计算机的第一个内核的利用率为50%,待估算计算机的功耗的增加量,即为第二增加量。然后,将第三个内核的利用率设置为0%。同理可以获取到将第四个内核的利用率设置为50%时,待估算计算机的功耗的增加量,即为第三增加量。将第五个内核的利用率设置为50%时,待估算计算机的功耗的增加量,即为第四增加量。将第六个内核的利用率设置为50%时,待估算计算机的功耗的增加量,即为第五增加量。将第七个内核的利用率设置为50%时,待估算计算机的功耗的增加量,即为第六增加量。将第八个内核的利用率设置为50%时,待估算计算机的功耗的增加量,即为第七增加量。能耗估算的装置可以根据上述七个增加量,确定出对应的增加量小于第一阀值的内核,假设此内核为第二个内核,此时能耗估算的装置可以确定出第一个内核及第二个内核为同一个模块内的内核。然后,能耗估算的装置可以利用上述方法,分别确定出第三个内核与第四个内核为同一个模块的内核,第五个内核与第六个内核为同一个模块的内核,第七个内核与第八个内核为同一个模块的内核。也就是说,待估算计算机内每个模块中包含有2个内核,共有四个模块。能耗估算的装置在确定出待估算计算机内每个模块中包含有2个内核,共有四个模块后,可以将待估算计算机内每个模块的每个内核的利用率均置为100%,并先将第一个模块内的两个内核的利用率均置为0%,此时待估算计算机的功耗会出现降幅大于第二阀值非线性降低,从而可以得到第一个模块内的共享组件的最大功耗拐点,进而可以得到第一个模块内的共享组件的最大功耗。这样,利用上述方法可以依次得到待估算计算机的第2个模块内的共享组件的最大功耗,待估算计算机的第3个模块内的共享组件的最大功耗,待估算计算机的第4个模块内的共享组件的最大功耗。能耗估算的装置在获取待估算计算机的全局共享组件的最大功耗时,能耗估算的装置将待估算计算机内每个模块的每个内核的利用率均置为100%,逐个将估算计算机的内核的利用率降为0%,待估算计算机的功耗会出现降幅大于第三阀值非线性降低,从而可以得到全局共享组件的最大功耗拐点,进而可以得到全局共享组件的最大功耗。这样,能耗估算的装置可以得到待估算计算机的基准功耗数据。因此,本发明实施例中的能耗估算的装置获取待估算计算机的基准功耗数据并不是由用户提供的,而是通过上述方法由能耗估算的装置计算得出的,从而避免了由用户提供基准功耗数据时,不同用户提供的基准功耗数据可能不同,导致对待估算计算机的当前功耗预测不正确的问题。可以在能耗估算的装置在进行待估算计算机的当前功耗的预测时,进一步提高计算机的能耗预测的准确性。步骤102、获取待估算计算机的每个内核的当前利用率。具体的,能耗估算的装置在获取了待估算计算机的基准功耗数据后,若需要估算出待估算计算机当前的能耗情况,此时能耗估算的装置可以获取待估算计算机的每个内核的当前利用率。需要说明的是,能耗估算的装置可以通过待估算计算机中的负载监测软件来获取待估算计算机的每个内核的当前利用率。如上例所述,能耗估算的装置在获取了待估算计算机的基准功耗数据后,可以进一步分别获取待估算计算机中8个内核的当前利用率。步骤103、根据基准功耗数据及待估算计算机的每个内核的当前利用率,分别获取待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗。具体的,由于待估算计算机在运行时,待估算计算机的内核需要工作,模块内的共享组件需要工作,全局共享组件也需要工作。因此,在对待估算计算机进行能耗估算时,需要估算出待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,及待估算计算机的全局共享组件的当前功耗。因此,能耗估算的装置在获取了待估算计算机的每个内核的当前利用率后,可以根据基准功耗数据中的待估算计算机的每个内核的功耗特征数据及待估算计算机的每个内核的当前利用率计算出待估算计算机的每个内核的当前功耗。能耗估算的装置可以根据待估算计算机的每个内核的当前利用率及基准功耗数据中的待估算计算机的每个模块内共享组件的最大功耗,获取待估算计算机的每个模块内共享组件的当前功耗。能耗估算的装置可以根据待估算计算机的每个内核的当前利用率及基准功耗数据中的待估算计算机的全局共享组件的最大功耗,获取待估算计算机的全局共享组件的当前功耗。进一步的,根据基准功耗数据及待估算计算机的每个内核的当前利用率,获取待估算计算机的内核的每个当前功耗包括:根据待估算计算机的第i个内核的当前利用率,确定第i个内核当前利用率所属的特征利用率区间为第i个内核的第j个特征利用率区间。根据基准功耗数据,利用公式获取待估算计算机的内核的第i个内核的当前功耗。其中,i为大于0且小于q的整数,q为待估算计算机中内核的总数。第i个内核的特征利用率区间是由第i个内核的预设的特征利用率形成的,j为大于0且小于k的整数,k为第i个内核的特征利用率区间的总个数。表示待估算计算机的内核的第i个内核的当前功耗;aj表示第i个内核的第j个特征利用率对应的待估算计算机的功耗;aj+1表示第i个内核的第j+1个特征利用率对应的待估算计算机的功耗;j表示第j个特征利用率区间;Ui表示待估算计算机的第i个内核的当前利用率。也就是说,能耗估算的装置在获取了待估算计算机的第i个内核的当前利用率后,可以根据第i个内核的各个特征利用率区间的起始点,确定出第i个内核的当前利用率属于第i个内核的哪个特征利用率区间。即为确定出第i个内核的当前利用率的大小在第i个内核的哪个特征利用率区间所对应的范围内。这样一来,能耗估算的装置可以确定出第i个内核的当前利用率所属的特征利用率区为第i个内核的第几个特征利用率区间,即为在第i个内核的当前利用率所属的特征利用率区为第i个内核的第j个特征利用率区间时,确定出j的值。在确定出第i个内核的当前利用率在第i个内核的第j个特征利用率区间内后,能耗估算的装置根据第i个内核的功耗特征数据,确定出第i个内核的第j个特征利用率区间的起始点对应的待估算计算机的功耗,即为确定出aj及aj+1。从而可以利用公式获取待估算计算机的内核的第i个内核的当前功耗。进一步的,根据基准功耗数据及待估算计算机的每个内核的当前利用率,获取待估算计算机的每个模块内共享组件的当前功耗包括:根据基准功耗数据及待估算计算机的每个内核的当前利用率,利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>获取待估算计算机的每个模块内共享组件的当前功耗。其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;n表示待估算计算机的第t个模块内包含的内核的总个数;Wmodule_maxpower表示待估算计算机的第t个模块内共享组件的最大功耗;表示待估算计算机的第t个模块内共享组件的当前功耗;t为大于0且不大于m的整数;m表示待估算计算机内包含的模块的总数。也就是说,能耗估算的装置在获取第t个模块内共享组件的当前功耗时,可以根据获取的第t个模块内的所有内核的当前利用率,计算出第t个模块内的所用内核的当前利用率的总和,进而可以根据第t个模块内的所用内核的当前利用率的总和及第t个模块内共享组件的最大功耗,并利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>来计算出待估算计算机的第t个模块内共享组件的当前功耗。进一步的,根据基准功耗数据及待估算计算机的每个内核的当前利用率,获取待估算计算机的全局共享组件的当前功耗包括:根据基准功耗数据及待估算计算机的每个内核的当前利用率,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取待估算计算机的全局共享组件的当前功耗。其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;m表示待估算计算机内包含的模块的总数;n表示待估算计算机的模块内包含的内核的总个数;Wshare表示待估算计算机的全局共享组件的当前功耗;Wshare_maxpower表示待估算计算机的全局共享组件的最大功耗。其中,每个模块内包含的内核的总个数可以不同,也可以相同,即为每个模块对应的n可以不同,也可以相同,本发明对此不作限制。也就是说,能耗估算的装置在获取了待估算计算机内的所有内核的当前利用率后,可以计算出待估算计算机内的所有内核的当前利用率的总和,进而可以根据待估算计算机内的所有内核的当前利用率的总和及全局共享组件的最大功耗,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取待估算计算机的全局共享组件的当前功耗。如上例所述,能耗估算的装置针对每个内核均划分了10个特征利用率区间。此时能耗估算的装置在获取了待估算计算机的8个内核的当前利用率后,在需要计算第i个内核的当前功耗时,可以先确定出此第i个内核当前利用率在第i个内核的第j个特征利用率区间内。然后,根据基准功耗数据,利用公式获取待估算计算机的内核的第i个内核的当前功耗。通过上述方法,能耗估算的装置分别计算出待估算计算机的8个内核的当前功耗。其中,i为大于0,且不大于8个的整数。j为大于0且不大于10的整数。由于待估算计算机的8个内核分为了4个模块,因此,能耗估算的装置还需要分别计算4个模块的每个模块内的共享组件的当前功耗。此时,能耗估算的装置在计算第t个模块内的共享组件的当前功耗时,可以根据第t个模块内的所有内核的当前利用率,来计算出第t个模块内的所有内核的当前利用率的总和,进而根据第t个模块内的所有内核的当前利用率的总和及第t个模块内共享组件的最大功耗,利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>来计算待估算计算机的第t个模块内共享组件的当前功耗。通过上述方法,能耗估算的装置分别计算出待估算计算机的4个模块内共享组件的当前功耗。其中,t为大于0,且不大于4的整数。n为待估算计算机的第t个模块内的内核的总数,在此例中,其值为2。m为待估算计算机的模块的总个数,在此例中,其值为4。能耗估算的装置还需计算出待估算计算机的全局共享组件的当前功耗,此时,能耗估计的装置根据获取的待估算计算机的8个当前利用率,可以计算出待估算计算机的8个当前利用率的总和,进而可以利用待估算计算机的8个当前利用率的总和及全局共享组件的最大功耗,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取所述待估算计算机的全局共享组件的当前功耗。步骤104、根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗。具体的,能耗估算的装置在获取了待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗后,可以根据待估算计算机的每个内核的当前功耗计算出待估算计算机的所有内核的当前功耗之和,根据待估算计算机的每个模块内共享组件的当前功耗,计算出待估算计算机的所有模块内共享组件的当前功耗之和,进而根据待估算计算机的所有内核的当前功耗之和,待估算计算机的所有模块内共享组件的当前功耗之和,及待估算计算机的全局共享组件的当前功耗获取待估算计算机的当前功耗。也就是说,根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗包括:根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,利用公式获取待估算计算机的当前功耗。其中,表示待估算计算机的第i个内核的当前功耗,表示待估算计算机的第t个模块内共享组件的当前功耗;Wshare表示待估算计算机的全局共享组件的当前功耗;Wtotal表示待估算计算机的当前功耗。如上例所述,能耗估算的装置在获取了待估算计算机的8个内核的每个内核的当前功耗,待估算计算机的4个模块的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗后,可以利用公式计算出待估算计算机的当前功耗。本发明实施例提供了一种能耗估算的方法,包括:获取基准功耗数据;基准功耗数据包括待估算计算机的每个内核的功耗特征数据,待估算计算机的每个模块内共享组件的最大功耗及所述待估算计算机的全局共享组件的最大功耗;待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核;内核的功耗特征数据是内核处理器的预设的特征利用率对应的待估算计算机的功耗;获取待估算计算机的每个内核的当前利用率;根据基准功耗数据及待估算计算机的每个内核的当前利用率,分别获取所述待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗;根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗。这样,能耗估算的装置在进行待估算计算机的能耗估算时,可以获取待估算计算机的每个内核的当前利用率,根据待估算计算机的每个内核的当前利用率及基准功耗数据,分别获取待估算计算机的每个内核的当前功耗,每个模块内的共享组件的当前功耗,以及全局共享组件的当前功耗,进而可以计算出待估算计算机的当前功耗。也就是说,相对于现有技术中的采集性能数据,并利用性能数据预测计算机的能耗,本发明是根据待估算计算机的实际负载情况及基准功耗数据,分别计算出待估算计算机中的不同部件的当前功耗,进而计算出待估算计算机的当前功耗,因此提高了计算机的能耗预测的准确性。进一步的,在本发明实施例中,能耗估算的装置对待估算计算机进行当前功耗的预测时,并不限定待估算计算机中各个处理器的型号,适用于对任何计算机的当前功耗的预测,因此本发明实施例中的能耗估算的装置的通用性较好。本发明实施例提供了一种能耗估算的装置,如图3所示,包括:获取单元201,用于获取基准功耗数据。其中,基准功耗数据包括待估算计算机的每个内核的功耗特征数据,待估算计算机的每个模块内共享组件的最大功耗及待估算计算机的全局共享组件的最大功耗,待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核,内核的功耗特征数据是内核处理器的预设的特征利用率对应的待估算计算机的功耗。获取单元201,还用于获取待估算计算机的每个内核的当前利用率。处理单元202,用于根据基准功耗数据及所述待估算计算机的每个内核的当前利用率,分别获取待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗。具体的,处理单元202根据基准功耗数据及所述待估算计算机的每个内核的当前利用率获取待估算计算机的每个内核的当前功耗具体为:处理单元202,具体用于根据待估算计算机的第i个内核的当前利用率,确定第i个内核当前利用率所属的特征利用率区间为第i个内核的第j个特征利用率区间。根据基准功耗数据,利用公式获取待估算计算机的内核的第i个内核的当前功耗。其中,i为大于0且不大于q的整数,q为所述待估算计算机中内核的总数。第i个内核的特征利用率区间是由所述第i个内核的预设的特征利用率形成的,j为大于0且不大于k的整数,k为第i个内核的特征利用率区间的总个数。表示所述待估算计算机的内核的第i个内核的当前功耗;aj表示第i个内核的第j个特征利用率对应的待估算计算机的功耗;aj+1表示第i个内核的第j+1个特征利用率对应的待估算计算机的功耗;j表示第j个特征利用率区间;Ui表示待估算计算机的第i个内核的当前利用率。处理单元202根据基准功耗数据及待估算计算机的每个内核的当前利用率,获取待估算计算机的每个模块内共享组件的当前功耗具体为:处理单元202,具体用于根据基准功耗数据及待估算计算机的每个内核的当前利用率,利用公式Wtmodule=Σi=1nUimax_utilization*Wmodule_maxpower,Σi=1nUi≤max_utilizationWmodule_maxpower,Σi=1nUi≥max_utilization,]]>获取待估算计算机的每个模块内共享组件的当前功耗。其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;n表示待估算计算机的第t个模块内包含的内核的总个数;Wmodule_maxpower表示待估算计算机的第t个模块内共享组件的最大功耗;表示待估算计算机的第t个模块内共享组件的当前功耗;t为大于0且不大于m的整数;m表示待估算计算机内包含的模块的总数。处理单元202根据基准功耗数据及待估算计算机的每个内核的当前利用率,获取待估算计算机的全局共享组件的当前功耗具体为:处理单元202,具体用于根据基准功耗数据及所述待估算计算机的每个内核的当前利用率,利用公式Wshare=Σi=1m*nUimax_utilization*Wshare_maxpower,Σi=1m*nUi≤max_utilizationWshare_maxpower,Σi=1m*nUi≥max_utilization,]]>获取待估算计算机的全局共享组件的当前功耗。其中,Ui表示第i个内核的当前利用率,max_utilization表示预设利用率阀值;m表示待估算计算机内包含的模块的总数;n表示待估算计算机的模块内包含的内核的总个数;Wshare表示待估算计算机的全局共享组件的当前功耗;Wshare_maxpower表示待估算计算机的全局共享组件的最大功耗。处理单元202,还用于根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗。具体的,处理单元202用于根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗具体包括:处理单元202,具体用于根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,利用公式获取待估算计算机的当前功耗。其中,表示待估算计算机的第i个内核的当前功耗,表示待估算计算机的第t个模块内共享组件的当前功耗;Wshare表示待估算计算机的全局共享组件的当前功耗;Wtotal表示待估算计算机的当前功耗。本发明实施例提供了一种能耗估算的装置,包括:获取基准功耗数据;基准功耗数据包括待估算计算机的每个内核的功耗特征数据,待估算计算机的每个模块内共享组件的最大功耗及所述待估算计算机的全局共享组件的最大功耗;待估算计算机中包含有至少一个模块,每个模块中包含至少两个内核;内核的功耗特征数据是内核处理器的预设的特征利用率对应的待估算计算机的功耗;获取待估算计算机的每个内核的当前利用率;根据基准功耗数据及待估算计算机的每个内核的当前利用率,分别获取所述待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗;根据待估算计算机的每个内核的当前功耗,待估算计算机的每个模块内共享组件的当前功耗,待估算计算机的全局共享组件的当前功耗,获取待估算计算机的当前功耗。这样,能耗估算的装置在进行待估算计算机的能耗估算时,可以获取待估算计算机的每个内核的当前利用率,根据待估算计算机的每个内核的当前利用率及基准功耗数据,分别获取待估算计算机的每个内核的当前功耗,每个模块内的共享组件的当前功耗,以及全局共享组件的当前功耗,进而可以计算出待估算计算机的当前功耗。也就是说,相对于现有技术中的采集性能数据,并利用性能数据预测计算机的能耗,本发明是根据待估算计算机的实际负载情况及基准功耗数据,分别计算出待估算计算机中的不同部件的当前功耗,进而计算出待估算计算机的当前功耗,因此提高了计算机的能耗预测的准确性。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1