技术领域
[0001] 本发明涉及计算机领域,尤其涉及一种拟合方法及拟合装置。
相关背景技术
[0002] 云计算是一种基于互联网的相关服务的增加、使用和交付模式,它通过互联网来提供动态且易扩展的计算相关的资源。云计算服务提供商强大的计算能力是由数量众多的CMPs(Chip Multiprocessors,单芯片多处理器)实现的。CMPs上多核架构中共享资源的存在必然影响云计算环境中的硬件资源利用率。为了预测CMPs上由共享资源竞争引起的共同运行程序之间的干扰情况,可以收集干扰数据,再对这些干扰数据使用统计的方法进行拟合,最终得到CMPs架构中多个程序共同运行时的干扰模型。
[0003] 现有技术采用Matlab(Matrix Laboratory,矩阵实验室)等工具进行拟合,该拟合方法过程如下:首先,设定待拟合的函数形式;然后,调用Matlab等工具对待拟合数据进行拟合,并判断拟合结果的准确度;最后,人工根据拟合结果准确度对拟合结果进行微调,即调整拟合结果的常数或系数等。
[0004] 目前的拟合方法中,由于使用人工拟合方法,所以拟合效率较低,且待拟合数据只能作为一组数据进行单次拟合得到拟合结果,当待拟合数据发生变化时要重新进行整个拟合过程,灵活性较差,同时不能反映待拟合数据之间的关系,因此拟合精度较低。
具体实施方式
[0065] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066] 本发明实施例提供一种拟合方法,如图1所示,包括:
[0067] 101、根据预设数据特性将待拟合数据集中的数据分成n组待拟合数据,n≥2。
[0068] 示例的,所述预设数据特性可以为计算机硬件资源特性,所述计算机硬件资源包括缓存、预取器、带宽、内存及I/O(input/output,输入/输出)等。步骤101中可以根据所述计算机硬件资源特性将所述待拟合数据集中的数据分成缓存数据、预取器数据、带宽数据、内存数据及I/O数据等。
[0069] 102、对n组待拟合数据中满足预设拟合条件的待拟合数据进行拟合得到k个拟合函数,1≤k≤n。
[0070] 所述预设拟合条件指示各组待拟合数据大小需大于某个特定的阈值。需要说明的是,当所述待拟合数据中第m组待拟合数据中无满足预设拟合条件的待拟合数据时,可以直接得到第m个拟合函数为fm(x)等于1。
[0071] 103、获取最终拟合函数,所述最终拟合函数为所述k个拟合函数的乘积。
[0072] 由于将所述待拟合数据分成n组分别进行拟合得到k个拟合函数,所以最终拟合函数为具有k个分段的函数。
[0073] 这样一来,计算机根据数据特性将所述待拟合数据分成多组待拟合数据,再对多组待拟合数据分别进行拟合得到多个拟合函数,最后将多个拟合函数相乘得到最终拟合函数,提高了拟合的灵活性,相对于现有技术,可以反映待拟合数据之间的关系,因此提高了拟合精度。
[0074] 需要说明的是,在步骤102之前,所述方法还可以包括:获取所述拟合参数,所述拟合参数包括预设拟合优度及各组待拟合数据对应的各拟合函数的函数形式、形式要求、预设阈值及预设拟合次数。上述参数都是用户根据实际的拟合需要设置的,在拟合过程中也可以灵活修改。其中,预设拟合优度指示了用户期望的拟合优度,可以通过计算指标R-square(Coefficient of determination,方程的确定系数)或MSE(Mean Squared Error,均方误差)来作为拟合函数的拟合优度,用户可以根据需要指定其中一种,计算指标R-square或MSE的方法为现有技术,在此不再赘述。需要说明的是,R-square指标的值越接近1越好,一般0.7以上为合理的值。
[0075] 所述函数形式是用户根据所述各组待拟合数据的数据特性,设置的所述待拟合数据对应的拟合函数的函数形式,示例的,该函数形式可以为多项式幂函数,也可以为对数函数、三角函数、指数函数等形式的函数。所述形式要求是对该函数形式的限制,示例的,可以设置所述多项式幂函数的最高次幂为3,或设置所述对数函数为以e为底的自然对数函数等。得到拟合参数中的函数形式和形式要求之后,计算机能够根据这两个参数将拟合函数转化为具体的函数形式,当拟合的自变量数据增加或减少时,或者用户需要重新设定拟合函数的函数形式时,只需要修改拟合参数中的函数形式及形式要求即可,计算机就能够根据修改后的这两个参数将拟合函数转化为具体的函数形式,与现有技术中人工设定拟合函数的方法相比,该方法更加灵活,同时提高了拟合效率。
[0076] 所述预设拟合次数规定了各组待拟合数据最多可以拟合的次数,示例的,可以设置第m组待拟合数据的预设拟合次数为10。
[0077] 所述预设阈值限定了第m组待拟合数据中的第m组因变量与函数值的差值需满足的范围。所述第m组因变量为所述第m组待拟合数据中的因变量,所述函数值为将所述第m组待拟合数据中的自变量代入拟合得到的第m个拟合函数之后得到的函数值。当所述差值小于等于所述预设阈值时,判断所述待拟合数据不是约束数据,当所述差值大于所述预设阈值时,判断所述待拟合数据为约束数据。
[0078] 示例的,假设用户确定用指标R-square来作为拟合优度,预设的拟合优度为0.8,即用户期望的拟合优度为0.8。根据所述各组待拟合数据的数据特性,可以设定所述待拟合数据中某组待拟合数据对应的拟合函数的函数形式为多项式幂函数,设定形式要求为所述多项式的最高次幂为3,设定的预设拟合次数为5次,即该组待拟合数据最多可以拟合的次数为5次,该组的预设阈值为0.2,即用户希望将该组待拟合数据中的自变量代入所述拟合得到的拟合函数后得到的函数值与该组待拟合数据中的自变量对应的因变量之间的差值小于0.2。
[0079] 本发明实施例提供另一种曲线拟合方法,如图2所示,包括:
[0080] 201、根据预设数据特性将待拟合数据集中的数据分成n组待拟合数据。
[0081] 通常的,拟合是已知若干个离散的函数值,通过设定该函数的形式,调整该函数形式中的若干待定系数,使得该函数与所述若干个离散的函数值差别最小的方法。
[0082] 本发明根据预设数据特性,将待拟合数据集中的数据分成n组待拟合数据是指将所述待拟合数据根据其数据特性分成若干组具有不同数据特性的待拟合数据。示例的,假设所述待拟合数据集中包含N个((a,b,c),d)形式的二元组数据,所述N≥2,其中(a,b,c)为待拟合数据中的自变量数据,d为待拟合数据中的因变量数据。所述待拟合数据中a可以表示为a=(a1,a2,...,an),其中a1,a2,...,an表示数据a的n个不同特性;b可以表示为b=(b1,b2,...,bn),其中b1,b2,...,bn表示数据b的n个不同特性;c可以表示为c=(c1,c2,...,cn),其中c1,c2,...,cn表示数据c的n个不同特性,d表示受数据a、b及c共同作用的值。
[0083] 假设所述待拟合数据中a1、b1、c1具有相同的数据特性,a2、b2、c2具有相同的数据特性,...,an、bn、cn具有相同的数据特性,即待拟合数据各自变量数据中相同位置上的数据具有相同的特性。因此根据待拟合数据中自变量a、b及c中包含的数据的特性将待拟合数据分为n组待拟合数据。其中第一组待拟合数据可以表示为N个((a1,b1,c1),d)形式的待拟合数据,所述(a1,b1,c1)为待拟合数据中的自变量,所述d为待拟合数据中的原因变量。假设对该N个((a1,b1,c1),d)形式的待拟合数据进行迭代拟合得到第一个拟合函数为f1(x);第二组待拟合数据可以表示为N个((a2,b2,c2),d/f1(a1,b1,c1))形式的待拟合数据,所述(a2,b2,c2)为待拟合数据中的自变量,所述d为待拟合数据中的原因变量,f1(a1,b1,c1)为将自变量(a1,b1,c1)代入第一个拟合函数f1(x)得到的函数值,将(d/f1(a1,b1,c1))的值作为第二组待拟合数据的最终因变量,假设对该N个((a2,b2,c2),d/f1(a1,b1,c1))形式的待拟合数据进行迭代拟合得到第二个拟合函数为f2(x);...;第n组待拟合数据可以表示为N个((an,bn,cn),(d/f1(a1,b1,c1)*f2(a2,b2,c2)*...*fn-1(an-1,bn-1,cn-1)))形式的待拟合数据,所述(an,bn,cn)为待拟合数据中的自变量,所述d为待拟合数据中的原因变量,f1(a1,b1,c1)为将自变量数据(a1,b1,c1)代入第一个拟合函数f1(x)得到的函数值,f2(a2,b2,c2)为将自变量(a2,b2,c2)代入第二个拟合函数f2(x)得到的函数值,...,fn-1(an-1,bn-1,cn-1)为将自变量(an-1,bn-1,cn-1)代入第n-1个拟合函数fn-1(x)得到的函数值,将(d/f1(a1,b1,c1)*f2(a2,b2,c2)*...*fn-1(an-1,bn-1,cn-1))的值作为第n组待拟合数据的最终因变量。
[0084] 特别的,所述待拟合数据中的自变量的个数可以根据实际拟合需要相应增减,但待拟合数据中每个二元组数据中自变量的个数都是相等的,且每个自变量中包含数据特性个数相同的数据,当所述待拟合数据中的自变量个数增加或减少时,仍然可以参考上述方法对所述待拟合数据进行分组。
[0085] 本实施例为了预测多核架构上由共享资源竞争引起的程序共同运行时的干扰情况,收集干扰数据,再对这些干扰数据使用统计的方法进行拟合。所述干扰数据为计算机硬件资源数据,即待拟合数据为计算机硬件资源数据。由于所述计算机硬件资源特性包括缓存、预取器、带宽、内存及I/O(input/output,输入/输出)等,因此可以根据所述计算机硬件资源特性将所述待拟合数据集中的数据分成缓存数据、预取器数据、带宽数据、内存数据及I/O等多组待拟合数据。
[0086] 需要说明的是,所述待拟合数据集中的每一个数据都是一个二元组,所述待拟合数据集可以定义为((Ci,Cj,...Ck),Rij...k),其中Ci、Cj、...、Ck是待拟合数据中的自变量,Ci表示程序i的特征向量,Cj表示程序j的特征向量,...Ck表示程序k的特征向量,Rij...k表示程序i、程序j...及程序k等多个程序共同运行时程序i的性能下降值。其中Ci可以表示为Ci=,Ci1是程序i单独运行时得到的与缓存相关的数据,该数据指示程序i运行时对缓存的影响,示例的Ci1可以是LLC(Last Level Cache,最后一级共享缓存)的未命中率;Ci2是程序i单独运行时得到的预取器相关的数据,该数据指示程序i单独运行时对预取器的影响,示例的Ci2可以是程序i单独运行时每秒钟预取的次数;...;Cin是程序i单独运行时得到的与第n个计算机硬件资源相关的数据,该数据指示程序i单独运行时对第n个计算机硬件资源的影响。
[0087] 示例的,假设本实施例中预测多核架构上由共享缓存、带宽及内存资源竞争引起的程序共同运行时的干扰情况,收集到的多个干扰数据包括缓存数据、带宽数据、内存数据及每三个程序共同运行时的性能下降值,对上述干扰数据使用统计的方法进行拟合。通常的,程序总是先争夺缓存资源,当程序的带宽资源较小时,内存资源也较小,此时程序的性能变化是由缓存资源的竞争导致的;当程序的带宽资源增加,但内存资源的竞争很小时,程序的性能变化是由缓存资源和带宽资源的竞争导致的;当程序的带宽资源增加且内存资源的竞争也逐渐增大时,程序的性能变化是由缓存资源、带宽资源及内存资源的共同竞争导致的。上述干扰数据为待拟合数据。待拟合数据集可以表示为((Cm,Cn,Cp),Rmnp),其中(Cm,Cn,Cp)是待拟合数据中的自变量,Cm表示程序m的特征向量,Cn表示程序n的特征向量,Cp表示程序p的特征向量,Rmnp表示程序m、程序n及程序p三个程序共同运行时程序m的性能下降值。其中每个二元组数据当中的Cm可以表示为Cm=,Cn可以表示为Cn=,Cp可以表示为Cp=,其中Cm1是程序m单独运行时得到的与缓存有关的数据,该数据指示程序m单独运行时程序m对缓存的影响,Cm2是程序m单独运行时得到的与带宽有关的数据,该数据指示程序m单独运行时程序m对带宽的影响,Cm3是程序m单独运行时得到的程序m与内存有关的数据,该数据指示程序m单独运行时程序m对内存的影响;Cn及Cp中各数据代表的含义可以参考Cm中各数据的解释,在此不再赘述。根据所述待拟合数据中缓存数据、带宽数据及内存数据的特性将所述待拟合数据集分为3组,第一组待拟合数据集D1代表缓存数据、第二组待拟合数据集D2代表带宽数据、第三组待拟合数据集D3代表内存数据,其中第一组待拟合数据集可以表示为D1={(Cm1、Cn1、Cp1),Rmnp},(Cm1、Cn1、Cp1)为待拟合数据中的自变量,Rmnp为待拟合数据中的原因变量,假设对该组待拟合数据拟合得到第一个拟合函数为f1(x);第二组待拟合数据集可以表示为D2={(Cm2、Cn2、Cp2),Rmnp/f1(Cm1、Cn1、Cp1)},(Cm2、Cn2、Cp2)为待拟合数据中的自变量,所述Rmnp为待拟合数据中的原因变量,f1(Cm1、Cn1、Cp1)为将自变量(Cm1、Cn1、Cp1)代入第一个拟合函数f1(x)得到的函数值,将(Rmnp/f1(Cm1、Cn1、Cp1))的值作为第二组待拟合数据的最终因变量,假设对该组待拟合数据进行迭代拟合得到第二个拟合函数为f2(x);第三组待拟合数据集可以表示为D3={(Cm3、Cn3、Cp3),Rmnp/f1(Cm1、Cn1、Cp1)*f2(Cm2、Cn2、Cp2)},(Cm3、Cn3、Cp3)为待拟合数据中的自变量,所述Rmnp为待拟合数据中的原因变量,f1(Cm1、Cn1、Cp1)为将自变量(Cm1、Cn1、Cp1)代入第一个拟合函数f1(x)得到的函数值,f2(Cm2、Cn2、Cp2)为将自变量(Cm2、Cn2、Cp2)代入第二个拟合函数f2(x)得到的函数值,,将(Rmnp/f1(Cm1、Cn1、Cp1)*f2(Cm2、Cn2、Cp2))的值作为第三组待拟合数据的最终因变量,假设对该组待拟合数据进行迭代拟合得到第三个拟合函数为f3(x)。
[0088] 202、获取所述拟合参数。
[0089] 具体的,所述获取所述拟合参数包括获取预设拟合优度及各组待拟合数据对应的各拟合函数的函数形式、形式要求、预设阈值及预设拟合次数。
[0090] 203、对n组待拟合数据中满足预设拟合条件的待拟合数据进行拟合得到k个拟合函数,1≤k≤n。
[0091] 具体的,所述对n组待拟合数据中满足预设拟合条件的待拟合数据进行拟合得到k组拟合函数包括:获取第m组待拟合数据,1≤m≤n;在所述m≥2时,判断所述第m组待拟合数据是否满足第m预设拟合条件。
[0092] 示例的,假设对步骤201中按照缓存、带宽及内存的特性分组得到的三组待拟合数据中的缓存数据、带宽数据及内存数据分别进行拟合。
[0093] 首先对待拟合数据中的第一组缓存数据进行拟合得到第一个拟合函数f1(x),假设待拟合数据集中共有100个待拟合数据。获取第一组待拟合数据,由于待拟合数据为第一组待拟合数据,因此不需要判断所述第一组待拟合数据是否满足第一预设拟合条件,即对第一组100个缓存数据进行拟合。因为在拟合缓存数据时,用户认为在CMPs上程序在运行时缓存资源是必须共享的,所以对待拟合的缓存数据无限制条件,即第一组待拟合数据进行拟合时不需要设定预设拟合条件。
[0094] 在所述第m组待拟合数据满足第m预设拟合条件或所述m=1时,执行以下步骤:
[0095] a、根据拟合参数对所述第m组待拟合数据进行拟合得到第m个拟合函数;
[0096] 此时待拟合的数据为100个缓存数据D1={(Cm1、Cn1、Cp1),Rmnp}。假设获取拟合参数中用户设定的预设拟合优度为0.8,计算指标R-square来作为拟合函数的拟合优度,获取第一个拟合函数f1(x)的形式为多项式幂函数,形式要求为该多项式幂函数的最高次幂为2,则计算机可以计算得到第一组拟合函数具体的函数形式为f1(x)=
2 2 2
ax1+bx2+cx3+dx1+ex2+fx3+g。预设拟合次数为3次,预设阈值为0.2。根据所述拟合参数中对所述第一组待拟合数据即100个缓存数据D1={(Cm1、Cn1、Cp1),Rmnp}进行拟合得到第一个拟合函数f1(x),即确定f1(x)具体的系数及常数a、b、c、d、e、f、g分别为a1、b1、c1、d1、
2 2 2
e1、f1、g1,第一次拟合完之后得到的所述第一个拟合函数f11(x)=a1x1+b1x2+c1x3+d1x1+e1x
2+f1x3+g1。该具体的拟合方法及过程为现有技术,在此不再赘述。
[0097] b、计算组合函数的拟合优度,所述组合函数为当前得到第1至第m个拟合函数的乘积,比较所述组合函数的拟合优度是否大于等于预设拟合优度。
[0098] 由于m=1,即拟合函数为第一个拟合函数,所以此时组合函数等于第一个拟合函数f11(x)。计算指标R-square来作为第一个拟合函数f11(x)的拟合优度。计算指标R-square的方法为现有技术,在此不再赘述。
[0099] c、若所述组合函数的拟合优度大于等于所述预设拟合优度,结束对所述第m组待拟合数据的拟合过程。
[0100] d、若所述组合函数的拟合优度小于所述预设拟合优度,在所述第m组待拟合数据中删除所述误差大于第m预设阈值的约束数据。
[0101] 假设计算得到指标R-square为0.6,即组合函数的拟合优度小于所述预设拟合优度0.8,所以不能结束对所述第1组待拟合数据的拟合过程。
[0102] 由于组合函数的拟合优度为0.6小于所述预设拟合优度0.8,所以可以判断得到该组待拟合数据中包含有误差大于所述第一预设阈值的约束数据,假设所述第一预设阈值2 2 2
为0.5。将所述100个缓存数据代入所述第一个拟合函数f11(x)=a1x1+b1x2+c1x3+d1x1+e1x2+f1x3+g1中得到100个函数值,将所述100个函数值与各组待拟合数据中对应的因变量Rmnp做差得到100个第一拟合函数差值,将所述100个第一拟合函数差值的绝对值与所述第一预设阈值0.5进行比较,当所述第一拟合函数差值的绝对值小于等于所述第一预设阈值
0.5时,判断所述待拟合数据不是约束数据;当所述第一拟合函数差值的绝对值大于所述第一预设阈值0.5时,判断所述待拟合数据为约束数据。在所述第一组待拟合数据中删除所述约束数据。假设所述100个缓存数据中有60个第一拟合函数差值小于等于第一预设阈值,有40个第一拟合函数差值大于第一预设阈值,则删除所述第一组待拟合数据中的40个第一拟合函数差值大于第一预设阈值的约束数据,得到新的第一组待拟合数据。所述新的第一组待拟合数据为原来的100个待拟合数据中删除所述40个约束数据后的数据。根据待拟合数据的特性判断得到待拟合数据中剩余的60个待拟合数据对应的程序的性能下降是由缓存资源的竞争导致的,所述删除的40个约束数据对应的程序的性能下降是由缓存资源和带宽资源共同的竞争导致的。
[0103] e、获取当前拟合次数。
[0104] f、判断所述当前拟合次数是否小于所述预设拟合次数。
[0105] 若所述当前拟合次数小于所述预设拟合次数且所述组合函数的拟合优度小于所述预设拟合优度,找到并删除所述第m组待拟合数据中所述误差大于第m预设阈值的所述约束数据,得到新的第m组待拟合数据,重复步骤a至f直至所述组合函数的当前拟合次数等于所述预设拟合次数或所述组合函数的拟合优度大于等于所述预设拟合优度。
[0106] 获取当前拟合次数为1。由于当前拟合次数1小于预设拟合次数3且所述组合函数的拟合优度为0.6,未达到预设拟合优度要求,因此需要对所述缓存数据进行第二次拟合,此时待拟合数据为新的第一组待拟合数据即所述60个第一拟合函数差值大于第一预设阈值的缓存数据。重复步骤abcdef对所述待拟合数据进行拟合,第二次拟合得到第一个拟合函数f12(x)。即所述60个待拟合数据对应的程序的性能下降是由各程序对缓存资源的竞争引起的,该60个待拟合数据对应的各程序的带宽特征和内存特征较小,对各程序在共同运行时的性能下降无影响。
[0107] 迭代拟合得到第二次拟合得到的第一个拟合函数f12(x)=a2x12+b2x22+c2x32+d2x1+e2x2+f2x3+g2,假设计算得到所述组合函数等于第一个拟合函数f12(x)的拟合优度为0.8,即组合函数的拟合优度等于所述预设拟合优度,满足拟合结束条件,可以结束对所述第一组待拟合数据的拟合。因此,第一组待拟合数据拟合得到的第一个拟合函数为f1(x)=f12(x)2 2 2
=a2x1+b2x2+c2x3+d2x1+e2x2+f1x3+g2。
[0108] 然后计算出所述待拟合数据中所有的自变量即缓存数据的和为P,得到由缓存的竞争导致的程序的性能下降的条件,即当待拟合数据中所有的缓存数据的和小于P时,多核架构上由共享资源竞争引起的共同运行程序之间的干扰函数等于f1(x),此时第二个拟合函数f2(x)和第三个拟合函数f3(x)都等于1。
[0109] 需要说明的是,第一组待拟合数据拟合过程中删除的约束数据对应的程序的性能下降可能是由缓存资源及带宽资源的共同竞争导致的。
[0110] 特别的,假设计算得到所述组合函数等于第一个拟合函数f12(x)的拟合优度小于预设拟合优度时,执行步骤d,得到5个约束数据,得到新的第一组待拟合数据,获取当前拟合次数为2小于预设拟合次数,重复执行步骤a、b、c、d、e、f直至所述组合函数的拟合优度大于等于预设拟合优度或当前拟合次数等于预设拟合次数时,结束对所述第一组待拟合数据的拟合。特别的,本实施例拟合参数中设定第一组待拟合函数的预设拟合次数为3,因此,当对所述第一组待拟合数据迭代拟合3次之后,若所述组合函数的拟合优度小于所述预设拟合优度,仍然结束对所述第一组待拟合数据的拟合过程。将所述最后一次拟合得到的拟合函数作为本组待拟合数据的拟合函数。
[0111] 对所述第一组待拟合数据的拟合完后,开始对第二组待拟合数据进行拟合,即对带宽数据进行拟合。首先获取所述第二组待拟合数据的拟合参数及第二组待拟合数据D2={(Cm2、Cn2、Cp2),Rmnp/f1(Cm1、Cn1、Cp1)},需要说明的是,获取所述第二组待拟合数据为获取所述第一组待拟合数据在拟合过程中删除的45组约束数据。其中(Cm2、Cn2、Cp2)为待拟合数据中的自变量,所述Rmnp为待拟合数据中的原因变量,f1(Cm1、Cn1、Cp1)为将自变量(Cm1、Cn1、Cp1)代入第一个拟合函数f1(x)得到的函数值,将(Rmnp/f1(Cm1、Cn1、Cp1))的值作为第二组待拟合数据的最终因变量,假设对该组待拟合数据进行迭代拟合得到第二个拟合函数为f2(x)。由于m=2,所以需要判断该组待拟合数据是否满足第2预设拟合条件,由于该组待拟合数据为带宽数据,所述第2预设拟合条件为带宽数据大于等于B,B>0,即当所述待拟合数据中各程序的自变量Cm2、Cn2、Cp2均大于等于B时才满足拟合条件,将所述待拟合数据的自变量数据中带宽数据小于B的数据删除,则对剩余的待拟合数据中带宽数据大于等于B的带宽数据进行拟合。所述具体的拟合方法及步骤可以参考对所述缓存数据的拟合方法及步骤,在此不再赘述。最终拟合得到第二个拟合函数f2(x)。
[0112] 需要说明的是,在拟合得到第二个拟合函数f2(x)后,计算组合函数的拟合优度时,所述组合函数为第一个拟合函数f1(x)和第二个拟合函数f2(x)的做乘积得到的函数。
[0113] 然后计算得到所述待拟合数据中除约束数据外所有的自变量即带宽数据的和为Q,计算得到所述带宽数据对应的程序的缓存数据的和为R,得到由缓存及带宽的竞争导致的程序的性能下降的条件,即当待拟合数据中所有的缓存数据的和大于R且所有的带宽数据的和小于Q时,多核架构上由共享资源竞争引起的共同运行程序之间的干扰函数等于f1(x)*f2(x),此时第三个拟合函数f3(x)等于1。此时程序最终的性能下降是由缓存和带宽两方面的竞争导致的。
[0114] 需要说明的是,第二组待拟合数据拟合过程中删除的约束数据对应的程序的性能下降是由缓存资源、带宽资源及内存资源共同的竞争导致的。
[0115] 特别的,可以参考对所述第二组待拟合数据进行拟合得到第二个拟合函数f3(x)的方法对所述第三组待拟合数据D3={(Cm3、Cn3、Cp3),Rmnp/f1(Cm1、Cn1、Cp1)*f2(Cm2、Cn2、Cp2)}进行拟合得到第三个拟合函数f3(x),所述第三组待拟合数据为所述第二组待拟合数据拟合过程中删除的约束数据。其中(Cm3、Cn3、Cp3)为待拟合数据中的自变量,所述Rmnp为待拟合数据中的原因变量,f1(Cm1、Cn1、Cp1)为将自变量(Cm1、Cn1、Cp1)代入第一个拟合函数f1(x)得到的函数值,f2(Cm2、Cn2、Cp2)为将自变量(Cm2、Cn2、Cp2)代入第二个拟合函数f2(x)得到的函数值,,将(Rmnp/f1(Cm1、Cn1、Cp1)*f2(Cm2、Cn2、Cp2))的值作为第三组待拟合数据的最终因变量,假设对该((Cm3、Cn3、Cp3),Rmnp/f1(Cm1、Cn1、Cp1)*f2(Cm2、Cn2、Cp2))形式的待拟合数据进行迭代拟合得到第三个拟合函数为f2(x)。
[0116] 需要说明的是,在拟合得到第三个拟合函数f3(x)后,计算组合函数的拟合优度时,所述组合函数为第一个拟合函数f1(x)、第二个拟合函数f2(x)及第三个拟合函数f3(x)做乘积得到的函数。
[0117] 然后计算得到所述待拟合数据中所有的自变量即内存数据的和为S,计算得到所述所有的内存数据对应的程序的缓存数据及带宽数据的和分别为T和U,得到由缓存、带宽及内存的竞争导致的程序的性能下降的条件,即当待拟合数据中所有的缓存数据的和大于T、所有的带宽数据的和大于U且所有的内存数据的和小于S时,多核架构上由共享资源竞争引起的共同运行程序之间的干扰函数等于f1(x)*f2(x)*f3(x)。此时待拟合数据中各程序最终的性能下降是由缓存、带宽及内存三方面的竞争导致的。
[0118] 至此,完成了对所述待拟合数据中具有不同数据特性的三组待拟合数据的拟合。
[0119] 需要说明的是,若所述待拟合数据中还有第4组或第q组,q≥4的待拟合数据,则可以参考对第2组或第3组待拟合数据进行拟合的方法得到拟合函数fq(x)。
[0120] 204、获取最终拟合函数。
[0121] 特别的,所述最终拟合函数为所述k个拟合函数的乘积。
[0122] 示例的,由于本实施例中将所述待拟合数据分成3组分别进行拟合得到3个拟合函数,所以最终拟合函数可以为具有3个分段的分段函数。
[0123] 具体的,对所述具有缓存、带宽及内存特性的待拟合数据集{(Cm,Cn,Cp),Rmnp}拟合得到多核架构上由共享资源竞争引起的共同运行程序之间的干扰函数,即最终的拟合函数可以为3个拟合函数中任意两个函数的乘积,即
[0124] F(X)=f1(x1)或
[0125] =f1(x1)*f2(x2)或
[0126] =f1(x1)*f2(x2)*f3(x3)
[0127] 具体的,当多个程序中所有的缓存数据x1的和小于P时,干扰函数F(X)=f1(x1),即此时程序中带宽数据与内存数据对程序的性能变化影响为1,即f2(x2)=1且f3(x3)=1;当所述多个程序中所有的缓存数据x1的和大于R且所述多个程序中所有的带宽数据x2的和小于Q时,干扰函数F(X)=f1(x1)*f2(x2),即此时程序中内存数据对程序的性能变化影响为1,即f3(x3)=1;当所述多个程序中所有的缓存数据x1的和大于T、所述多个程序中所有的带宽数据x2的和大于U且所述多个程序的内存数据x3的和小于S时,干扰函数F(X)=f1(x1)*f2(x2)*f3(x3)。
[0128] 特别的,所述待拟合数据的数据特性可以根据拟合需要灵活增加或减少,即可以在待拟合数据中加入计算机硬件资源特性中的I/O(input/output,输入/输出)等特性的数据进行拟合,得到多核架构上除缓存、带宽、内存等共享资源外的多个资源竞争引起的共同运行程序之间的干扰函数。也可以在待拟合数据中减少对所述内存数据的拟合,只对所述缓存数据和带宽数据进行拟合得到多核架构上由缓存、带宽资源共享及竞争引起的共同运行程序之间的干扰函数。
[0129] 本发明实施例提供一种拟合方法,计算机能够根据数据特性将所述待拟合数据分成多组待拟合数据,再对多组待拟合数据分别进行拟合得到多个拟合函数,最后将多个拟合函数相乘得到最终拟合函数,提高了拟合的灵活性,相对于现有技术,可以反映待拟合数据之间的关系,因此提高了拟合精度。
[0130] 本发明提供一种拟合装置30,如图3所示,包括:
[0131] 划分单元301,用于根据预设数据特性将待拟合数据集中的数据分成n组待拟合数据,n≥2。
[0132] 示例的,所述预设数据特性可以为计算机硬件资源特性,则所述划分单元301可以根据所述计算机硬件资源特性将所述待拟合数据集中的数据分成缓存数据、带宽数据和内存数据等。
[0133] 拟合单元302,用于对n组待拟合数据中满足预设拟合条件的待拟合数据进行拟合得到k个拟合函数,1≤k≤n。
[0134] 特别的,所述预设拟合条件指示各组待拟合数据大小需大于某个特定的阈值。
[0135] 第一获取单元303,用于获取最终拟合函数,所述最终拟合函数为所述k组拟合函数的乘积。
[0136] 这样一来,划分单元根据数据特性将所述待拟合数据分成多组待拟合数据,拟合单元对所述多组待拟合数据分别进行拟合得到多个拟合函数,第一获取单元将多个拟合函数相乘得到最终拟合函数,提高了拟合的灵活性,相对于现有技术,可以反映待拟合数据之间的关系,因此提高了拟合精度。
[0137] 所述划分单元301具体用于:
[0138] 根据所述计算机硬件资源特性将所述待拟合数据集中的数据分成缓存数据、带宽数据和内存数据。
[0139] 进一步的,如图4所示,所述拟合单元302还包括:
[0140] 获取子单元3021,用于获取第m组待拟合数据,1≤m≤n。
[0141] 判断子单元3022,用于在所述m≥2时,判断所述第m组待拟合数据是否满足第m预设拟合条件。
[0142] 执行子单元3023,用于在所述第m组待拟合数据满足第m预设拟合条件或所述m=1时,执行以下步骤:
[0143] a、根据拟合参数对所述第m组待拟合数据进行拟合得到第m个拟合函数。
[0144] b、计算组合函数的拟合优度,所述组合函数为当前得到第1至第m个拟合函数的乘积,比较所述组合函数的拟合优度是否大于等于预设拟合优度。
[0145] c、若所述组合函数的拟合优度大于等于所述预设拟合优度,结束对所述第m组待拟合数据的拟合过程。
[0146] d、若所述组合函数的拟合优度小于所述预设拟合优度,在所述第m组待拟合数据中删除所述误差大于第m预设阈值的约束数据。
[0147] e、获取当前拟合次数。
[0148] f、判断所述当前拟合次数是否小于所述预设拟合次数。
[0149] 若所述当前拟合次数小于所述预设拟合次数且所述组合函数的拟合优度小于所述预设拟合优度,找到并删除所述第m组待拟合数据中所述误差大于第m预设阈值的所述约束数据,得到新的第m组待拟合数据,重复步骤a至f直至所述组合函数的当前拟合次数等于所述预设拟合次数或所述组合函数的所述拟合优度大于等于所述预设拟合优度。
[0150] 需要说明的是,所述获取子单元3021具体用于:
[0151] 获取第m-1组待拟合数据中误差大于第m-1预设阈值的约束数据;获取所述约束数据中的自变量数据作为所述第m组待拟合数据中的所述自变量数据;获取第1至第m-1个拟合函数y1=f1(x)至ym-1=fm-1(x),将所述约束数据中的第1至第m-1组自变量数据分别带入所述第1至第m-1个拟合函数y1=f1(x)至ym-1=fm-1(x)中得到因变量Y1至Ym-1;获取W及所述约束数据中的因变量Y,所述W为因变量数值Y1至Ym-1的乘积,将Y/W作为第m组待拟合数据中的最终因变量。
[0152] 进一步的,如图5所示,所述拟合装置30还可以包括:
[0153] 第二获取单元304,用于获取所述拟合参数,所述拟合参数包括预设拟合优度及各组待拟合数据对应的各拟合函数的函数形式、形式要求、预设阈值及预设拟合次数。
[0154] 本发明实施例提供一种拟合装置,划分单元能够根据数据特性将所述待拟合数据分成多组待拟合数据,拟合单元对所述多组待拟合数据分别进行拟合得到多个拟合函数,第一获取单元将多个拟合函数相乘得到最终拟合函数,提高了拟合的灵活性,相对于现有技术,可以反映待拟合数据之间的关系,因此提高了拟合精度。
[0155] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0156] 本发明实施例提供一种基站40,如图6所示,包括:
[0157] 处理器401,用于根据预设数据特性将待拟合数据集中的数据分成n组待拟合数据,n≥2。
[0158] 所述处理器401还用于对n组待拟合数据中满足预设拟合条件的待拟合数据进行拟合得到k个拟合函数,1≤k≤n。
[0159] 所述处理器401还用于获取最终拟合函数,所述最终拟合函数为所述k个拟合函数的乘积。
[0160] 这样一来,处理器能够根据数据特性将所述待拟合数据分成多组待拟合数据,对所述多组待拟合数据分别进行拟合得到多个拟合函数,将多个拟合函数相乘得到最终拟合函数,提高了拟合的灵活性,相对于现有技术,可以反映待拟合数据之间的关系,因此提高了拟合精度。
[0161] 需要说明的是,所述处理器401还用于获取第m组待拟合数据,1≤m≤n,还用于在所述m≥2时,判断所述第m组待拟合数据是否满足第m预设拟合条件,还用于在所述第m组待拟合数据满足第m预设拟合条件或所述m=1时,执行以下步骤:
[0162] a、根据拟合参数对所述第m组待拟合数据进行拟合得到第m个拟合函数;
[0163] b、计算组合函数的拟合优度,所述组合函数为当前得到第1至第m个拟合函数的乘积,比较所述组合函数的拟合优度是否大于等于预设拟合优度;
[0164] c、若所述组合函数的拟合优度大于等于所述预设拟合优度,结束对所述第m组待拟合数据的拟合过程;
[0165] d、若所述组合函数的拟合优度小于所述预设拟合优度,在所述第m组待拟合数据中删除所述误差大于第m预设阈值的约束数据;
[0166] e、获取当前拟合次数;
[0167] f、判断所述当前拟合次数是否小于所述预设拟合次数;
[0168] 若所述当前拟合次数小于所述预设拟合次数且所述组合函数的拟合优度小于所述预设拟合优度,找到并删除所述第m组待拟合数据中所述误差大于第m预设阈值的所述约束数据,得到新的第m组待拟合数据,重复步骤a至f直至所述组合函数的当前拟合次数等于所述预设拟合次数或所述组合函数的拟合优度大于等于所述预设拟合优度。
[0169] 所述处理器401还用于:
[0170] 根据所述计算机硬件资源特性将所述待拟合数据集中的数据分成缓存数据、带宽数据和内存数据。
[0171] 所述处理器401还用于获取第m-1组待拟合数据中误差大于第m-1预设阈值的约束数据;获取所述约束数据中的自变量数据作为所述第m组待拟合数据中的所述自变量数据;获取第1至第m-1个拟合函数y1=f1(x)至ym-1=fm-1(x),将所述约束数据中的第1至第m-1组自变量数据分别带入所述第1至第m-1个拟合函数y1=f1(x)至ym-1=fm-1(x)中得到因变量数值Y1至Ym-1;获取W所述约束数据中的因变量数据Y,所述W为因变量Y1至Ym-1的乘积,将Y/W作为第m组待拟合数据中的最终因变量。
[0172] 所述处理器401还用于获取所述拟合参数,所述拟合参数包括预设拟合优度及各组待拟合数据对应的各拟合函数的函数形式、形式要求、预设阈值及预设拟合次数。
[0173] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0174] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0175] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0176] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0177] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。