程序性能干扰模型的确定方法及设备的制作方法

文档序号:6511079阅读:283来源:国知局
程序性能干扰模型的确定方法及设备的制作方法
【专利摘要】本申请公开了一种程序性能干扰模型的确定方法,从已确定好的样本程序集合中选取程序组成多个子集合,获取各个子集合中各个程序在运行时受到的性能干扰值,及各个子集合中所有程序对共享资源的总占用率,将所有子集合划分为多个分析单元;对不同分析单元中包含的每一个样本程序的性能干扰值及所述该样本程序所在的子集合所对应的总占有率做回归分析,获取目标函数模型;并依据目标函数模型获取目标程序对应的性能干扰模型。本发明实施例提供的方法,为多核处理器上的每一个程序提供性能干扰模型,对程序运行在多核处理器中受到的性能干扰进行量化,避免了相互干扰较为大的程序运行在同一多核处理器中,确保了程序在多核处理器中运行时的最优性能。
【专利说明】程序性能干扰模型的确定方法及设备

【技术领域】
[0001] 本申请涉及多核处理器领域,特别是涉及一种程序性能干扰模型的确定方法及设 备。

【背景技术】
[0002] 随着科技的发展,人们对CPU性能的需求越来越强烈,但是由于频率提升带来的 功耗提升也越来越严重,所以使得片上多核处理器架构的应用越来越广泛。
[0003] 片上多核处理器架构是指在一个处理器芯片中集成多个处理器核心,以实现功耗 和性能的良好结合。
[0004] 在研发本发明的过程中,发明人发现,在片上多核处理器架构中,处理器中的各个 处理器核心不是完全独立的,需要共享各种不同的处理器资源,这使得各个计算内核在运 行程序的过程中,会造成不同程序之间的性能干扰。如,某一优先级较高的程序在运行过程 中需要用到多核处理器中的一共享资源时,其它程序同时也在使用该共享资源,这将会使 得优先级较高的程序性能受到影响。


【发明内容】

[0005] 有鉴于此,本发明实施例的目的在于提供程序性能干扰模型的确定方法及设备, 以解决上述问题。
[0006] 为实现上述目的,本发明实施例提供如下技术方案:
[0007] 根据本实施例的第一方面,提供一种程序性能干扰模型的确定方法,所述方法应 用于多核处理器,包括:
[0008] 确定样本程序集合,所述样本程序集合中包括多个用于样本训练的样本程序;
[0009] 依据预设的提取规则,在所述样本程序集合中提取多个子集合,所述多个子集合 的并集为所述样本程序集合;
[0010] 获取各个子集合中每一个样本程序在所述多核处理器中运行时受到的性能干扰 值,及每个子集合中的所有样本程序对所述多核处理器中共享资源的总占有率;
[0011] 将所有子集合划分为多个分析单元,每个分析单元中包括多个子集合;
[0012] 依据预设的函数库中多个函数模型,对不同分析单元中包含的每一个样本程序的 性能干扰值及该性能干扰值所对应的总占有率做回归分析,在所述多个函数模型中获取目 标函数模型;
[0013] 依据所述目标函数模型,确定目标程序对应的性能干扰模型,所述目标程序为运 行在多核处理器中的任意一个程序。
[0014] 结合第一方面,在第一种可能的实现方式中,所述确定样本程序集合包括:
[0015] 确定多核处理器所对应的应用程序数据库中各个应用程序的特征向量;所述特征 向量表示应用程序单独运行在多核处理器中时,对所述多核处理器中各个共享资源的占有 率;
[0016] 将占有率在同一预设占有率区间中的应用程序归类至同一特征组中;
[0017] 在各个特征组中随机选取一个应用程序作为样本程序,组成样本程序集合。
[0018] 结合第一方面在第二种可能的实现方式中,所述依据预设的提取规则,在所述样 本程序集合中提取多个子集合包括 :
[0019] 分别将所述样本程序集合中的每一个样本程序作为目标样本程序;
[0020] 在所述样本程序集合中提取Q个包含所述目标样本程序的不同子集合,每个子集 合中共包含N个样本程序;
[0021] 其中:
[0022] N为多核处理器中集的处理器核心的个数;
[0023] 2 < Q < ,Q取整数,M为样本程序集合中样本程序的数目。
[0024] 结合第一方面的第二种实现方式,在第三种可能的实现方式中,所述将所有子集 合划分为多个分析单元包括:
[0025] 确定所有获取的总占有率对应的占有率区间,并依据预设的划分规则,对所述占 有率区间进行划分,得到多个占有率子区间;
[0026] 将每个子集合分配至其对应的总占有率所属的占有率子区间中,每个占有率子区 间中所有子集合为一个分析单元。
[0027] 结合第一方面,在第四种可能的实现方式中,所述依据目标函数模型,确定目标程 序对应的性能干扰模型包括 :
[0028] 获取所述目标程序在多核处理器中运行时受到的性能干扰值,及当前多核处理器 中运行的所有程序对共享资源的总占有率;
[0029] 将所述性能干扰值及所述总占有率代入所述目标函数模型中,获得所述目标函数 模型中各个变量的系数;
[0030] 依据所述各个变量的系数,确定所述目标程序对应的性能干扰模型。
[0031] 根据本实施例的第二方面,提供一种程序性能干扰模型的确定设备,所述设备应 用于多核处理器,包括:
[0032] 第一确定单元,用于确定样本程序集合,所述样本程序集合中包括多个用于样本 训练的样本程序;
[0033] 提取单元,用于依据预设的提取规则,在所述样本程序集合中提取多个子集合,所 述多个子集合的并集为所述样本程序集合;
[0034] 获取单元,用于获取各个子集合中每一个样本程序在所述多核处理器中运行时受 到的性能干扰值,及每个子集合中的所有样本程序对所述多核处理器中共享资源的总占有 率;
[0035] 划分单元,用于将所有子集合划分为多个分析单元,每个分析单元中包括多个子 集合;
[0036] 分析单元,用于依据预设的函数库中多个函数模型,对不同分析单元中包含的每 一个样本程序的性能干扰值及该性能干扰值所对应的总占有率做回归分析,在所述多个函 数模型中获取目标函数模型;
[0037] 第二确定单元,用于依据所述目标函数模型,确定目标程序对应的性能干扰模型, 所述目标程序为运行在多核处理器中的任意一个程序。
[0038] 结合第二方面,在第一种可能的实现方式中,所述第一确定单元包括:
[0039] 第一确定子单元,用于确定多核处理器所对应的应用程序数据库中各个应用程序 的特征向量;所述特征向量表示应用程序单独运行在多核处理器中时,对所述多核处理器 中各个共享资源的占有率;
[0040] 归类子单元,用于将占有率在同一预设占有率区间中的应用程序归类至同一特征 组中;
[0041] 选取子单元,用于在各个特征组中随机选取一个应用程序作为样本程序,组成样 本程序集合。
[0042] 结合第二方面的第一种实现方式,在第二种可能的实现方式中,所述划分单元包 括:
[0043] 划分子单元,用于确定所有获取的总占有率对应的占有率区间,并依据预设的划 分规则,对所述占有率区间进行划分,得到多个占有率子区间;
[0044] 分配子单元,用于将每个子集合分配至其对应的总占有率所属的占有率子区间 中,每个占有率子区间中所有子集合为一个分析单元。
[0045] 结合第二方面,在第三种可能的实现方式中,所述第二确定单元包括:
[0046] 获取子单元,用于获取所述目标程序在多核处理器中运行时受到的性能干扰值, 及当前多核处理器中运行的所有程序对共享资源的总占有率;
[0047] 代入子单元,用于将所述性能干扰值及所述总占有率代入所述目标函数模型中, 获得所述目标函数模型中各个变量的系数;
[0048] 第二确定子单元,用于依据所述各个变量的系数,确定所述目标程序对应的性能 干扰值。
[0049] 由以上本申请实施例提供的技术方案可见,本发明实施例中,通过选取不同样本 程序组成多个子集合,获取每一个子集合中的每一个样本在多核处理器中运行时受到的性 能干扰值,及每个子集合中的所有样本程序对共享资源的总占用率。将所有子集合划分为 多个分析单元,依据预设的函数库中多个函数模型,对不同分析单元中包含的每一个样本 程序的性能干扰值及所述该样本程序所在子集合所对应的的总占有率做回归分析得到每 一个样本程序对应的函数模型,在得到的所有样本程序对应的函数模型中获取目标函数模 型。依据所述目标函数模型,确定目标程序对应的性能干扰模型。
[0050] 本发明实施例提供的性能干扰模型,最终确定的性能干扰模型是通过对程序受到 的性能干扰值及该程序所在子集合对共享资源的总占用率进行回归分析得到的,该性能模 型体现了程序受到的性能干扰值与共享资源受到的总占有率之间的对应关系。依据本发明 实施例提供的性能干扰模型,对于多核处理器中共同运行的各个程序,只要确定多核处理 器中各个共享资源当前受到的来自各个程序的总压力,即可确定各个程序受到的性能干扰 值。
[0051] 本发明实施例提供的性能干扰模型对程序受到的性能干扰值的确定过程,不受运 行在多核处理器上程序的数据限制,只要确定当前多核处理器中各个共享资源受到的来个 各个程序的总占有率,即可确定每一个程序的性能干扰值,为共同运行的各个程序提供了 参考标准,在具体的运行过程中,可以依据各个程序受到的性能干扰值对程序进行调度,提 升了多核处理器的资源利用率,也保证了各个程序性能的正常运行。
[0052] 综上,本发明实施例提供的程序性能干扰模型的确定方法,能够为运行在多核处 理器上的每一个程序提供一性能干扰模型,对每一个程序运行在多核处理器中所受到来自 其它程序的性能干扰进行量化,为避免相互干扰较为强烈的程序运行在同一多核处理器中 提供了调度依据,确保了程序在多核处理器中运行时的最优性能。

【专利附图】

【附图说明】
[0053] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
[0054] 图1为本发明实施例提供的程序性能干扰模型确定方法的方法流程图;
[0055] 图2为本发明实施例提供的程序性能干扰模型确定方法的一具体方法流程图;
[0056] 图3为本发明实施例提供的程序性能干扰模型确定方法的一具体方法流程图;
[0057] 图4为本发明实施例提供的程序性能干扰模型确定方法的一具体方法流程图;
[0058] 图5为本发明实施例提供的程序性能干扰模型确定设备的结构示意图;
[0059] 图6为本发明实施例提供的程序性能干扰模型确定设备的一详细结构示意图;
[0060] 图7为本发明实施例提供的一种多核处理器的结构示意图;
[0061] 图8为本发明实施例提供的又一种多核处理器的结构示意图。

【具体实施方式】
[0062] 为了使本【技术领域】的人员更好地理解本申请方案。下面将结合本申请实施例中的 附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0063] 随着计算机用户对CPU性能提升的需求越来越强烈,片上多核架构得到了广泛的 应用,片上多核架构是指在一个处理器芯片中集成多个处理器核心。片上多核架构中,多核 处理器中的各个处理器核心不是完全独立的,各个处理器核心之间会共享各种不同的处理 器资源,如处理器的最后一级缓存、内存控制器等。这种资源共享可能会对同时运行在同一 个多核处理器上的各个程序的性能产生严重的影响。
[0064] 同时运行在多核处理器上的各个程序对同一共享资源都会产生的一定的竞争占 用,因此各个程序共同运行在多核处理器中时,可能存在某些程序对共享资源的竞争能力 较强,占用了较多的共享资源,导致其它程序不能有效的利用共享资源,受到较大的性能干 扰。如高Qos (quality of service)优先级程序与较低优先级程序共同运行时,两者长时 间竞争共享资源,会使得高Q〇s优先级程序不能得到优先运行,降低了程序性能。
[0065] 同时,针对上述问题,现有的多核处理器程序调度中,为了保证高Qos优先级程序 的性能,通常会禁止高Qos优先级程序与其它程序共同运行,这又导致了较低的硬件资源 利用率,使得多核处理器失去了多核的意义。
[0066] 因此,为了解决上述问题,发明人经过多次实际的研发运用,发现运行在多核处理 器中的任意一个程序所受到的性能干扰值与多核处理器中共享资源上受到的总的占用率 之间存在一定的函数映射关系。
[0067] 本发明实施例提供了一种程序性能干扰模型的确定方法,该方法分为两个实现阶 段,基于程序的运行时特征提出任意一个程序遭受的核间性能干扰模型可以由多核处理器 中各个共享资源上受到的总压力的分段函数来表示;为运行在多核处理器中的每一个程序 提供一具体的性能干扰模型,使得任意一程序与其它程序共同运行在多核处理器中时所受 到来自其它程序的性能干扰得以量化,可以避免相互之间干扰较大的程序共同运行在同一 多核处理器中,同时也为可以共同运行的各个程序之间的相互调度提供了指示,提升了多 核处理器的资源利用率。
[0068] 本发明实施例中,程序的运行时特征,是指程序在运行过程中在多核处理器的各 个共享资源上的行为特征;所述行为特征可以视为程序对共享资源的压力,本发明实施例 中采用程序对共享资源的占用率来表示所述压力。在现有的片上多核架构中,多核处理器 中的共享资源包括共享缓存、共享的数据预取器、共享的内存带宽等。
[0069] 本发明实施例中,任意一个程序遭受的核间性能干扰模型可以表示为程序运行时 对共享资源上的总压力的分段函数,其代表公式为:
[0070] PDA=fA (Aggregate (?:), Aggregate (P2), --? Aggregate (Pj), --? Aggregate (Pk)), 其中:
[0071] PDA表示任意一程序A遭受的来自与其共同运行其它程序的核间性能干扰,f A是 对程序A的分段函数,其自变量的数目为多核处理器中共享资源的数目k,Aggregate (PJ (i=l,2, 3,…k)是共同运行的所有程序对资源i聚集的总占用率,是函数fA的自变量。
[0072] 本发明实施例介绍的性能干扰模型确定方法即用来确定PDA的过程,其具体实现 如下:
[0073] 图1为本发明实施例提供的一种性能干扰模型确定方法的方法流程图,本发明实 施例提供的性能干扰模型的确定方法的执行主体可以为任意一种多核处理器,所述多核处 理器中集成有多个处理器核心。如图1所示,该方法包括 :
[0074] 步骤S101 :确定样本程序集合,所述样本程序集合中包括多个用于样本训练的样 本程序;
[0075] 为了保证本发明实施例中性能干扰模型确定方法最终确定的性能干扰模型适用 于所有可以运行在多核处理器中的应用程序,本发明实施例首先确定可以运行在多核处理 器中的样本训练程序集合。
[0076] 所述确定的过程,具体如本发明实施例提供的图2所示,包括:
[0077] 步骤S201 :确定多核处理器所对应的应用程序数据库中各个应用程序的特征向 量;所述特征向量表示各个应用程序单独运行在多核处理器中时,对所述多核处理器中各 个共孚资源的占有率;
[0078] 在多核处理器所对应的应用程序数据库中包含大量的应用程序,这些应用程序可 以覆盖所有多核处理器所能运行的程序类型。
[0079] 将所述应用程序数据库中的每一个应用程序单独在多核处理器中进行运行,获得 各个应用程序单独运行在多核处理器中时对各个共享资源的特征向量。所述特征向量可以 表示各个应用程序单独运行在多核处理器中时,对所述多核处理器中各个共享资源的占有 率。
[0080] 在本发明实施例中,我们需要量化程序对共享资源的占用率,例如:程序对共享缓 存的使用可以使用程序每秒从共享缓存移动到私有缓存的数据来表示;程序对内存带宽的 使用可以每秒从内存中加载进入缓存中的数据来表示。
[0081] 本发明实施例中使用程序单独运行在多核处理器上的特征向量来表示程序对共 享资源的占用率,一个程序的特征向量是指程序在不同的共享资源上的占用率,表示为 P A=〈PA1,PA2. . . . PAi. . . PAk>,其中,k为多核处理器中共享资源的数目,PAi代表程序A在共享 资源i上的占用率。
[0082] 步骤S202 :将占有率在同一预设占有率区间中的应用程序归类至同一特征组中;
[0083] 本发明实施例中,定义一个k维的特征空间,其中k为多核处理器中共享资源的个 数。将各个应用程序依据其特征向量映射至该k维的特征空间中。
[0084] 具体实现可以是:对于多核处理器中的任一共享资源Ri,将该共享资源Ri对应的 特征区间分为N个子区间,则对于整个k维的特征空间,被分割为N1*N2*?*Nk特征组,特 征向量落在同一个特征组内的所有应用程序的行为特征相似。
[0085] 其中,共享资源的特征区间为共享资源的运行能力,如共享缓存的特征区间为共 享缓存所能缓存的数据量区间,内存带宽的特征区间为内存带宽的内存的大小。
[0086] 对于样本程序集合中的任意两个程序A和B,如果A每秒从共享缓存移动到私有 缓存的数据为〇. 5, B每秒从共享缓存移动到私有缓存的数据为0. 4,,共享缓存的整体特 征区间为〇. 1?1. 〇,对共享缓存的特征区间进行划分,分为3个子区间,分别为0. 1? 0. 3, 0. 3?0. 6,0. 6?1. 0,则A,B落在0. 3?0. 6对应的区间内,则认为程序A和B特征 相似,程序A和B即为一个特征组中的程序。
[0087] 上述以单个共享资源的特征区间为例,本发明实施例中,还可以设定多个共享资 源的特征区间,如分别对共享缓存和内存带宽的特征区间进行划分,将同时落在共享缓存 和内存带宽的子区间中的程序,作为特征相似的程序。
[0088] 步骤S203 :在各个特征组中随机选取一个应用程序作为样本程序,组成样本程序 集合。
[0089] 本发明实施例中,选取的样本训练程序集合中包含的所有程序,体现了能够运行 在多核处理器中所有程序的行为特征,覆盖范围广,为后续步骤中获得精确的干扰模型提 供了丰富的样本。
[0090] 步骤S102 :依据预设的提取规则,在所述样本程序集合中提取多个子集合,所述 子集合的并集为所述样本程序集合;
[0091] 为了获取丰富的训练程序数据,本发明实施例中,在所述样本训练程序集合中依 据预设的选取规则,选取训练程序组成多个子集合。
[0092] 本发明实施例中,提取多个子集合的具体过程为:
[0093] 分别将所述样本程序集合中的每一个样本程序作为目标样本程序;
[0094] 在所述样本程序集合中提取Q个包含所述目标样本程序的不同子集合,每个子集 合中共包含N个样本程序;
[0095] 其中:
[0096] N为多核处理器中集的处理器核心的个数;
[0097] 1 < Q < ct:,Q取整数,M为样本程序集合中样本程序的数目。
[0098] 本发明实施例中,在样本程序集合中提取多个子集合,所述子集合中包含的所有 程序需要能够覆盖所述样本程序集合中的所有程序,且所述样本程序集合中的任意一个程 序需要出现在所述多个子集合中的至少Q个子集合中,本发明实施例中优选的选择任意一 个程序至少出现在Q个子集合中。
[0099] 假设一样本程序集合<a,b,c,d,e>;多核处理器中包括3个核心,则每次需要选取 3个程序,设定Q的值为3,则优选的一种选取方案可以为:
[0100] <a, b, c>, <a, c, d>, <a, d, e>,
[0101] <b, c, d>, <b, c, e>, <b, d, e>,
[0102] 上述的多个子集合中,程序a,b,c,d,e,均已经出现3次,上述6个子集合,即可满 足选取要求。
[0103] 本发明实施例中<a,b,c>可以分别算作程序a,b,c出现一次的子集合。
[0104] 上述实例中,Q的取值的最大范围可以为1?6。
[0105] 本发明实施例中,Q的取值是根据多核处理器的核心数、处理能力、处理速率,各个 训练程序之间的干扰区间以及指定的函数形式所确定的一个常数。
[0106] 步骤S103 :获取各个子集合中每一个样本程序在所述多核处理器中运行时受到 的性能干扰值,及每个子集合中的所有样本程序对所述多核处理器中共享资源的总占有 率;
[0107] 本发明实施例中,在选择了足够的子集合后,获取各个子集合中各个训练程序在 多核处理器中运行时受到的性能干扰值的过程,即在所述多核处理器中连续运行各个子 集合中的各个训练程序,直至每一个训练程序完成至少一次的来自其它训练程序的干扰执 行;
[0108] 在运行过程中获得每个训练程序在其所在的子集合中,与其它训练程序共同运行 时受到的性能干扰值。
[0109] 本发明实施例中,在连续运行各个子集合中的各个训练程序时,实时统计每一个 训练程序遭受的核间性能干扰。
[0110] 本发明实施例中,为了获取多核处理器中各个训练程序的抽象函数模型,设定针 对该抽象函数模型的函数类型集合、聚集模式集合和分段条件集合,针对样本训练程序集 合中的每一个训练程序,使用函数类型集合中每一个函数类型和不同的聚集分段条件处理 过的训练集数据进行回归分析,最后得到适合所有训练程序的平均拟合效果最好的函数类 型和聚集分段条件,并将该函数类型作为该多核处理器上的抽象函数类型,并将对应的聚 集分段条件作为该多核处理器上的聚集模式和分段条件。
[0111] 在获取每个子集合中的所有样本程序对所述多核处理器中共享资源的总占用率 的过程中,需要对每一个样本程序对共享资源的占用率进行聚集。
[0112] 聚集(Aggregation)是指对每个子集合上对样本程序同一共享资源的占有率进行 聚集。
[0113] 本申请实施例中,聚集的过程包括预处理及根据不同模式进行聚集两个过程。
[0114] 首先,预处理是指对每个子集合当中的训练程序的特征向量进行处理,将每个训 练程序对应的原有特征向量值映射为一个新值。
[0115] 常见的预处理类型有exp (指数),log (对数),pow(幂函数),none等,如果预处 理的类型为none,则映射的新值等于原值。
[0116] 假设某一训练程序A的特征向量为PA=〈PA1,P A2. . PAi. . PAk>,则经过exp预处理后, 则其对应的特征向量变为〈exp (PA1),exp (PA2) ? ? exp (PAi) ? ? exp (PAk) >。
[0117] 其次,依据聚集模式集合中的聚集模式,对每个子集合中各个训练程序对多核处 理器中同一共享资源的占有率进行聚集。
[0118] 本发明实施例中,聚集模式集合中的聚集模式可以是add或mul。
[0119] 例如:一个子集合包含4个程序A,B,C,D ;PA,PB,Pc,PD分别是其对应的压力值,假 设预处理类型为none,则在add模式下的聚集结果为Aggreate (Pi) =PAi+PBi+PCi+PDi。
[0120] 在 mul 模式下的聚集结果为 Aggreate (Pi) sPAi^PBi^PCi^Di。
[0121] 本发明实施例中,预处理的类型和聚集的模式都由配置文件进行指定。
[0122] 对任意一个训练程序集中的数据点,将对应的子集合当中的所有程序的特征向 量进行聚集,设训练程序A对应的第j个子集合聚集后的总压力为PyiAggregatdPi) j (i=l,2,. .,k),则数据点变为如下形式<A,PA,」,PDA,Wj>。
[0123] 其中:A代表程序A,Pq代表A所在子集合经过聚集后对共享资源的总占有率,PDa 代表A在子集合中受到的干扰值,Wj代表A所在的子集合。
[0124] 本发明实施例中,对于核间性能干扰的量化,可以使用训练程序执行时间的变化, 也可以使用IPC (Inter-Process Communication,进程间通信)的变化,训练程序吞吐率的 变化,程序的QoS变化等变化数值作为量化标准。
[0125] 对于训练程序A,从其所在的每一个子集合中,获得训练程序A与其它训练程序共 同运行时,受到的性能干扰值,将其表示为<A,PD A;W>,其中:
[0126] A代表训练程序A, WA,j代表包含A的第j个子集合,PDA,Wj代表程序A在包含它的 第j个子集合当中的性能下降,即受到的性能干扰值。
[0127] 本发明实施例中,在获得子集合中每一个程序的性能干扰值,及每个子集合中所 有程序对共享资源聚集的总占有率后,可以获得性能干扰值与总占有率的对应数据点,如 一个子集合<a,b,c>,经过性能干扰运行之后,a受到的性能干扰值为Pl,b受到的性能干 扰值P2, c受到的性能干扰值P3,同时a,b,c对共享资源聚集的总占用率为F,在可以得到 <P1,F>,<P2, F>,<P3, F>,这些数据点,对于其中的程序a,至少存在Q个这样的数据点,将性 能干扰值与总占用率的对应数据点,作为进行回归分析的训练集数据。
[0128] 步骤S104:将所有子集合划分为多个分析单元,每个分析单元中包括多个子集 合;
[0129] 本发明实施例中,在确定多个训练集数据之后,为了更加符合多核处理器的运行 条件,对所有子集合进行划分,具体的划分过程如本发明实施例图3所示,包括 :
[0130] 步骤S301 :确定所有获取的总占有率对应的占有率区间,并依据预设的划分规 贝U,对所述占有率区间进行划分,得到多个占有率子区间;
[0131] 步骤S302 :将每个子集合分配至其对应的总占有率所属的占有率子区间中,每个 占有率子区间中所有子集合作为一个分析单元。
[0132] 本发明实施例中,对于任意一个共享资源,其所受到的总占用率具有实际的含义, 例如,共享带宽,实际的多核处理器运行平台限定了共享带宽的最大带宽值,所以对于一个 共享资源而言,其对应的占有率区间依据其实际的运行能力确定,其对应的占有率区间为 一个连续区间。
[0133] 假设从样本程序集合中划分出4个子集合,多核处理器中有3个共享资源,第一 子集合中,所有程序对第一共享资源聚集的总占有率为XI,对第二共享资源的总占有率为 Y1,对第三共享资源的总占有率Z1 ;
[0134] 第二子集合中,所有程序对第一共享资源聚集的总占有率为X2,对第二共享资源 的总占有率为Y2,对第三共享资源的总占有率Z2 ;
[0135] 第三子集合中,所有程序对第一共享资源聚集的总占有率为X3,对第二共享资源 的总占有率为Y3,对第三共享资源的总占有率Z3 ;
[0136] 第四子集合中,所有程序对第一共享资源聚集的总占有率为X4,对第二共享资源 的总占有率为Y4,对第三共享资源的总占有率Z4 ;
[0137] 则以第一共享资源为例,各个集合对第一共享资源的聚集总占率数据包括(XI, X2, X3, X4),假设 X1<X2<X3<X4;
[0138] 如果第一共享资源的占有率区间为连续区间(m,n),m〈Xl,n>X4 ;
[0139] 我们选定分段集合中对第一共享资源的分段为以q点为分界点,X2〈q〈X3,将第一 共享资源的占有率区间分为(m,q),(q,n),在相应的第一集合和第二集合划分至(m,q)区 间中,第三集合和第四集合划分至(q,n)集合中。
[0140] 第一集合与第二集合组成一分析单元,第三集合和第四集合组成一分析单元。
[0141] 步骤S105 :依据预设的函数库中的多个函数模型,对不同分析单元中包含的每一 个样本程序的性能干扰值及所述该样本程序所在的子集合所对应的总占有率做回归分析 得到每一个样本程序对应的函数模型,在得到的样本程序对应的函数模型中获取目标函数 模型;
[0142] 本发明实施例中将样本程序受到的性能干扰值,及该样本程序所在的子集合所对 应的总占有率划分至不同的分析单元中,进行回归分析。
[0143] 回归分析的过程即,确定两个不同的变量之间存在关系,并获得了一些两个变量 的对应值,在假定一个函数形式以后,获得该函数所有系数的过程。
[0144] 本发明实施例中,发明人经过多次研发试验之后,确定了程序运行过程中受到的 性能干扰值与共享资源上总的占有率之间存在一定的函数关系。发明人经过选取多个样 本程序,并通过样本程序提取多个子集合,获得各个子集合中各个程序的性能干扰值及各 个子集合对共享资源聚集的总的占有率,得到如上文中<P1,F>,<P2, F>,<P3, F>,这些数据 点,作为进行回归分析的训练集数据。
[0145] 在预设的函数库中依次选择函数模型,分别与选取的训练集数据进行回归分析, 确定各个函数模型的系数,在确定了各个函数模型的系数之后,计算各个具体函数模型相 对与选取的训练集数据之间的拟合优度,拟合优度是指回归函数对观测值的拟合程度。
[0146] 本发明实施例中,对于任意一样本程序在各个分析单元中均进行多个回归分析, 获得针对该程序的拟合程度最好的函数模型,然后对所有程序的函数模型的拟合程序进行 平均化,获得针对所有程序的函数模型。
[0147] 由上述过程可以看出,本发明实施例中,在完成对共享资源所受到总占有率的聚 集之后,依据聚集在多核处理器中各个共享资源上总占有率值对各个子集合进行区间划 分,所述划分过程的依据即聚集在每一个共享资源上的总占有率。
[0148] 本发明实施例中,通过设定一定的划分条件,将各个子集合划分至不同的区间中, 例如,多核处理器中某一共享资源的特征分为3个区间,根据每一个子集合聚集在该共享 资源上的总占有率,将各个子集合分区其相对应的区间中。各个子集合划分至不同的区间 之后,各个子集合中训练程序受到的特征干扰值没有变化,只是这些特征干扰值随着其所 在子集合的区间划分,也相应的被划分至不同的压力区间中。本发明实施例中对于子集合 的划分条件可以由相应的配置文件配置完成。
[0149] 本发明实施例中,可以在配置文件中指定进行回归分析可以使用的函数类型,例 如:指数函数类型、多项式函数类型等。
[0150] 假设共享资源中只考虑共享缓存和共享带宽的影响,经过回归分析之后的函数类 型为预设函数集合中的抽象函数类型,聚集为:预处理none,聚集模式add,分段条件为将 共享带宽上聚集的总占有率分为3个子区间,则任意程序A遭受的性能干扰模型在根据带 宽的分段条件确定的子区间内可以表示为 :
[0151] PDA=al*Aggregate (Pcache) +a2*Aggregate (Pbw) +CA,其中 PDA 代表了程序遭受的 性能干扰,Aggregate (Pcache),Aggregate (Pbw)代表了共享缓存和共享带宽上使用none 的预处理和add的聚集模式聚集的总压力,al,a2和CA是对应程序A的函数的系数。
[0152] PDA=al*Aggregate (Pcache)+a2*Aggregate (Pbw)+CA,为针对所有样本程序的目 标函数模型。
[0153] 步骤S106 :依据所述目标函数模型,确定目标程序对应的性能干扰模型,所述目 标程序为运行在多核处理器中的任意一个程序。
[0154] 对于上文所述的步骤S101至S105,属于本发明实施例提供的性能干扰模型确定 方法中的第一实现阶段,其主要获得针对各个训练程序的目标函数模型,该目标函数模型 的形式确定,但是针对不同的程序,该拟合函数中各个自变量的系数是不确定的。
[0155] 因此为了获得各个样本程序的性能干扰模型,还需要执行本发明实施例提供的性 能干扰模型确定方法中的第二实现阶段,确定不同程序对应目标函数模型的系数。
[0156] 步骤S106即为本发明实施例中确定性能干扰模型的第二实现阶段。其具体实现 如本发明实施例图4所示,包括:
[0157] 步骤S401 :获取所述目标程序在多核处理器中运行时受到的性能干扰值,及当前 多核处理器中运行的所有程序对共享资源的总占用率;
[0158] 步骤S402 :将所述目标程序的性能干扰值及当前多核处理器中运行的所有程序 对共享资源的总占有率代入所述目标函数模型中,获得所述目标函数模型中各个变量的系 数;
[0159] 步骤S403 :依据所述各个变量的系数,确定所述目标程序对应的性能干扰模型。
[0160] 由上文可知,本发明实施例提供的第二实现阶段即在相应的多核处理器平台上根 据抽象函数模型实例化任意一个程序A所对应整体最优拟合函数的系数。即上文举例中的 al,a2, CA〇
[0161] 对于运行在多核处理器中的任意一个程序A,首先确定A是否属于步骤S101中的 样本程序集合,如果属于,则在获取目标函数模型的过程中,已经确定了程序A对应的具体 函数模型,直接调用获取即可。
[0162] 如果程序A不在样本程序集合当中,则需要执行步骤S401?S403,为程序A确定 不同的子集合,获取A在各个子集合中的性能干扰值,及各个子集合对共享资源的总占有 率,获得程序A的训练集数据,将各个训练集数据代入目标函数模型中,确定目标函数模型 的系数,得到程序A对应的性能干扰模型。
[0163] 本发明实施例中获取的性能干扰值,可以为程序A在不同的子集合当中的性能变 化,该性能变化同样可以是执行时间,IPC或者QoS。
[0164] 本发明实施例中,在第二阶段执行过程中,由于对程序A选取的子集合数目较少, 该过程可以在常数时间内完成。
[0165] 本发明实施例提供的程序性能干扰模型的确定方法,能够为运行在多核处理器上 的每一个程序提供一性能干扰模型,对每一个程序运行在多核处理器中所受到来自其它程 序的性能干扰进行量化,为避免相互干扰较为强烈的程序运行在同一多核处理器中提供了 调度依据。确保了程序在多核处理器中运行时的最优性能。
[0166] 例如:当某一优先级较高的程序在多核处理器中运行时,可以依据该程序所对应 的性能干扰模型确定哪些程序与该程序共同运行时对该程序的性能干扰较大,避免这些程 序与该程序一同运行。可以调度一些对该程序性能干扰较小的程序一同运行,从而也提升 了多核处理器的资源利用率。
[0167] 更加具体的,多功能手机中设置有多核处理器,用户点开多个程序后,程序会在手 机后台继续运行,当用户启动某一程序时,应用本发明实施例提供并确定的性能干扰模型, 可以为用户提示后台运行的哪些程序与当前需要启动的程序一同运行,会对当前需要启动 的程序造成较大的性能干扰。用户可以在后台关闭相关程序,以保证需要启动的程序正常 启动,运行过程中的性能稳定。
[0168] 与上述方法相对应,为上述方法的实现提供一具体的实现平台,本发明实施例还 提供了一种程序性能干扰模型的确定设备,该确定设备可以应用在任意多核处理器中,其 结构示意图如图5所示,包括:
[0169] 第一确定单兀501,用于确定样本程序集合,所述样本程序集合中包括多个用于样 本训练的样本程序;
[0170] 提取单元502,用于依据预设的提取规则,在所述样本程序集合中提取多个子集 合,所述多个子集合的并集为所述样本程序集合;
[0171] 获取单元503,用于获取各个子集合中每一个样本程序在所述多核处理器中运行 时受到的性能干扰值,及每个子集合中的所有样本程序对所述多核处理器中共享资源的总 占有率;
[0172] 划分单元504,用于将所有子集合划分为多个分析单元,每个分析单元中包括多个 子集合;
[0173] 分析单元505,用于依据预设的函数库中多个函数模型,对不同分析单元中包含的 每一个样本程序的性能干扰值及所述该样本程序所在的子集合所对应的总占有率做回归 分析得到每一个样本程序对应的函数模型,在得到的所有样本程序对应的函数模型中获取 目标函数模型;
[0174] 第二确定单元506,用于依据所述目标函数模型,确定目标程序对应的性能干扰模 型,所述目标程序为运行在多核处理器中的任意一个程序。
[0175] 图6为本发明实施例提供的程序性能干扰模型确定设备的一详细结构示意图,在 图5所示结构的基础上,对图5中设备的结构进行详细描述 :
[0176] 所述第一确定单元501包括:
[0177] 第一确定子单元507,用于确定多核处理器所对应的应用程序数据库中各个应用 程序的特征向量;所述特征向量表示应用程序单独运行在多核处理器中时,对所述多核处 理器中各个共享资源的占有率;
[0178] 归类子单元508,用于将占有率在同一预设占有率区间中的应用程序归类至同一 特征组中;
[0179] 选取子单元509,用于在各个特征组中随机选取一个应用程序作为样本程序,组成 样本程序集合。
[0180] 所述划分单元504包括:
[0181] 划分子单元510,用于确定所有获取的总占有率对应的占有率区间,并依据预设的 划分规则,对所述占有率区间进行划分,得到多个占有率子区间;
[0182] 分配子单元511,用于将每个子集合分配至其对应的总占有率所属的占有率子区 间中,每个占有率子区间中所有子集合为一个分析单元。
[0183] 所述第二确定单元506包括:
[0184] 获取子单元512,用于获取所述目标程序在多核处理器中运行时受到的性能干扰 值,及当前多核处理器中运行的所有程序对共享资源的总占有率;
[0185] 代入子单元513,用于将所述目标程序的性能干扰值及当前多核处理器中运行的 所有程序对共享资源的总占有率代入所述目标函数模型中,获得所述目标函数模型中各个 变量的系数;
[0186] 第二确定子单元514,用于依据所述各个变量的系数,确定所述目标程序对应的性 能干扰值。
[0187] 本发明实施例提供的程序性能干扰模型的确定设备,可以针对运行在多核处理器 中的各个程序,为每一个程序确定其所对应的性能干扰模型,使得任意一程序与其它程序 共同运行在多核处理器中时所受到的来自其它程序的性能干扰得以量化,可以避免相互之 间干扰较大的程序共同运行在同一多核处理器中,同时也为可以共同运行的各个程序之间 的相互调度提供了指示,提供了多核处理器的资源利用率。
[0188] 本发明实施例还提供了一种多核处理器,其结构示意图如本发明实施例图7所 示,多核处理器601中设置有程序性能干扰模型的确定设备602.
[0189] 所述确定设备602包括第一确定单元,提取单元,获取单元,划分单元,分析单元, 第二确定单元。所述第一确定单元,提取单元,获取单元,划分单元,分析单元,第二确定单 元的结构与功能具体可参见上述图6及图7所述的实施例,在此不再赘述。
[0190] 图8为本发明实施例提供的又一种多核处理器的结构示意图,本发明具体实施例 并不对该多核处理器的具体实现做限定。如图8所示,该多核处理器701可以包括:
[0191] CPU702,通信接口(Communications Interface) 706,存储器(memory) 703,通信总 线 705。
[0192] CPU702,通信接口 706,存储器703通过通信总线705完成相互间的通信。
[0193] 通信接口 706,用于与网元通信,比如网络服务器等网元。
[0194] CPU702,用于执行程序704,具体可以执行上述图1至图5所示的方法实施例中的 相关步骤。
[0195] 具体地,程序704可以包括程序代码,所述程序代码包括计算机操作指令。
[0196] 存储器703,用于存放程序704。存储器703可能包含高速RAM存储器,也可能还 包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序704具体可 以包括:
[0197] 第一确定单元,提取单元,获取单元,划分单元,分析单元,第二确定单元,所述第 一确定单元,提取单元,获取单元,划分单元,分析单元,第二确定单元的结构与功能具体可 参见上述图6及图7所述的实施例,在此不再赘述。
[0198] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备 和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0199] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。
[0200] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其 它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅 仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结 合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论 的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0201] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的 目的。
[0202] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以 是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
[0203] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征 进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。
【权利要求】
1. 一种程序性能干扰模型的确定方法,其特征在于,所述方法应用于多核处理器,包 括: 确定样本程序集合,所述样本程序集合中包括多个用于样本训练的样本程序; 依据预设的提取规则,在所述样本程序集合中提取多个子集合,所述多个子集合的并 集为所述样本程序集合; 获取各个子集合中每一个样本程序在所述多核处理器中运行时受到的性能干扰值,及 每个子集合中的所有样本程序对所述多核处理器中共享资源的总占有率; 将所有子集合划分为多个分析单元,每个分析单元中包括多个子集合; 依据预设的函数库中多个函数模型,对不同分析单元中包含的每一个样本程序的性能 干扰值及所述该样本程序所在的子集合所对应的总占有率做回归分析得到每一个样本程 序对应的函数模型,在得到的所有样本程序对应的函数模型中获取目标函数模型; 依据所述目标函数模型,确定目标程序对应的性能干扰模型,所述目标程序为运行在 多核处理器中的任意一个程序。
2. 根据权利要求1所述的方法,其特征在于,所述确定样本程序集合包括: 确定多核处理器所对应的应用程序数据库中各个应用程序的特征向量;所述特征向量 表示应用程序单独运行在多核处理器中时,对所述多核处理器中各个共享资源的占有率; 将占有率在同一预设占有率区间中的应用程序归类至同一特征组中; 在各个特征组中随机选取一个应用程序作为样本程序,组成样本程序集合。
3. 根据权利要求1所述的方法,其特征在于,所述依据预设的提取规则,在所述样本程 序集合中提取多个子集合包括: 分别将所述样本程序集合中的每一个样本程序作为目标样本程序; 在所述样本程序集合中提取Q个包含所述目标样本程序的不同子集合,每个子集合中 共包含N个样本程序; 其中: N为多核处理器中集的处理器核也的个数; ,Q取整数,M为样本程序集合中样本程序的数目。
4. 根据权利要求2所述的方法,其特征在于,所述将所有子集合划分为多个分析单元 包括: 确定所有获取的总占有率对应的占有率区间,并依据预设的划分规则,对所述占有率 区间进行划分,得到多个占有率子区间; 将每个子集合分配至其对应的总占有率所属的占有率子区间中,每个占有率子区间中 所有子集合为一个分析单元。
5. 根据权利要求1所述的方法,其特征在于,所述依据目标函数模型,确定目标程序对 应的性能干扰模型包括: 获取所述目标程序在多核处理器中运行时受到的性能干扰值,及当前多核处理器中运 行的所有程序对共享资源的总占有率; 将所述目标程序的性能干扰值及当前多核处理器中运行的所有程序对共享资源的总 占有率代入所述目标函数模型中,获得所述目标函数模型中各个变量的系数; 依据所述各个变量的系数,确定所述目标程序对应的性能干扰模型。
6. -种程序性能干扰模型的确定设备,其特征在于,所述设备应用于多核处理器,包 括: 第一确定单元,用于确定样本程序集合,所述样本程序集合中包括多个用于样本训练 的样本程序; 提取单元,用于依据预设的提取规则,在所述样本程序集合中提取多个子集合,所述多 个子集合的并集为所述样本程序集合; 获取单元,用于获取各个子集合中每一个样本程序在所述多核处理器中运行时受到的 性能干扰值,及每个子集合中的所有样本程序对所述多核处理器中共享资源的总占有率; 划分单元,用于将所有子集合划分为多个分析单元,每个分析单元中包括多个子集 合; 分析单元,用于依据预设的函数库中多个函数模型,对不同分析单元中包含的每一个 样本程序的性能干扰值及所述该样本程序所在的子集合所对应的总占有率做回归分析得 到每一个样本程序对应的函数模型,在得到的所有样本程序对应的函数模型中获取目标函 数模型; 第二确定单元,用于依据所述目标函数模型,确定目标程序对应的性能干扰模型,所述 目标程序为运行在多核处理器中的任意一个程序。
7. 根据权利要求6所述的设备,其特征在于,所述第一确定单元包括: 第一确定子单元,用于确定多核处理器所对应的应用程序数据库中各个应用程序的特 征向量;所述特征向量表示应用程序单独运行在多核处理器中时,对所述多核处理器中各 个共享资源的占有率; 归类子单元,用于将占有率在同一预设占有率区间中的应用程序归类至同一特征组 中; 选取子单元,用于在各个特征组中随机选取一个应用程序作为样本程序,组成样本程 序集合。
8. 根据权利要求7所述的设备,其特征在于,所述划分单元包括: 划分子单元,用于确定所有获取的总占有率对应的占有率区间,并依据预设的划分规 贝1J,对所述占有率区间进行划分,得到多个占有率子区间; 分配子单元,用于将每个子集合分配至其对应的总占有率所属的占有率子区间中,每 个占有率子区间中所有子集合为一个分析单元。
9. 根据权利要求6所述的设备,其特征在于,所述第二确定单元包括: 获取子单元,用于获取所述目标程序在多核处理器中运行时受到的性能干扰值,及当 前多核处理器中运行的所有程序对共享资源的总占有率; 代入子单元,用于将所述目标程序的性能干扰值及当前多核处理器中运行的所有程序 对共享资源的总占有率代入所述目标函数模型中,获得所述目标函数模型中各个变量的系 数; 第二确定子单元,用于依据所述各个变量的系数,确定所述目标程序对应的性能干扰 值。
【文档编号】G06F11/36GK104424101SQ201310410943
【公开日】2015年3月18日 申请日期:2013年9月10日 优先权日:2013年9月10日
【发明者】崔慧敏, 赵家程, 冯晓兵 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1