一种预测核间性能干扰的方法及装置与流程

文档序号:11828774阅读:217来源:国知局
一种预测核间性能干扰的方法及装置与流程

本发明涉及网络技术领域,尤其涉及一种预测核间性能干扰的方法及装置。



背景技术:

云计算以多核处理器提供的强大计算能力为基础,将互联网的软硬件资源和信息按需提供给计算机和其他设备。由于,云计算强大的计算能力是由数量众多的片上多核处理器组成的,可以承载来自不同用户的、需求各异的应用程序,使得各种需求不同的应用程序在共享资源的同时,相互之间存在严重的且不可预知的核间性能干扰。

通常,为了保证高服务质量(英文:Quality of Service,缩写:QoS)的优先级程序的性能不被其他程序干扰,会禁止高QoS优先级程序与其他程序共同运行。虽然,这样能够保证高QoS优先级程序的性能不被干扰,但是,由于禁止了其他程序的运行,使得云计算环境中的资源利用率低下。为了解决资源利用率低的问题,在禁止程序共同运行之前,需要对程序遭受的核间性能干扰进行预测,使得遭受的性能干扰较低的高QoS程序允许与其他程序同时运行,从而提高资源利用率。所以,预测程序遭受的核间性能干扰成为提高资源利用率的首要问题。



技术实现要素:

本发明实施例提供一种预测核间性能干扰的方法及装置,提供了一种用以测量程序遭受的核间性能干扰的参数的模型。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明实施例提供一种预测核间性能干扰的方法,应用于多核处理器,包括:

分别获取程序集中每个程序在每个处理器上运行时的行为特征,以及每个程序在每组中的主处理器上的性能干扰函数的参数;其中,每组中处理器的架构相同;所述程序的性能干扰函数的参数用以确定所述程 序的性能干扰函数,所述程序的性能干扰函数用以表示:程序集中多个与所述程序共同运行的程序的行为特征相互作用时所述程序遭受的性能干扰;

根据所述程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型;其中,所述特征预测模型用于表示:程序在主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上运行时的行为特征之间的关系;

根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型,其中,所述性能干扰函数预测模型用于:根据程序在处理器上的行为特征和处理器自身特征预测程序在处理器上的性能干扰函数的参数。

在第一方面的第一种可能实现的方式中,结合第一方面,所述获取程序集中每个程序在每个处理器上运行时的行为特征包括:

通过剖析(profiling)方式获取程序集中的每个程序在每个处理器上运行时的行为特征。

在第一方面的第二种可能实现的方式中,结合第一方面或第一方面的第一种可能实现的方式,所述根据程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型包括:

通过机器学习方式分析每个程序在所述主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上的行为特征之间的关联性;

根据所述关联性构建所述特征预测模型。

在第一方面的第三种可能实现的方式中,结合第一方面至第一方面的第二种可能实现的方式中的任一种方式,所述性能干扰函数预测模型为:神经网络模型。

在第一方面的第四种可能实现的方式中,结合第一方面的第三种可能实现的方式,所述根据所述程序集中每个程序在主处理器上的行为特征以及性能干扰函数的参数,构建性能干扰函数预测模型包括:

根据所述训练集中每个程序在主处理器上的行为特征、主处理器自身的特征以及性能干扰函数的参数,建立初始神经网络模型;其中,所述初始神经网络模型包含输入层以及输出层;所述输入层与所述输出层之间包 含中间层,所述输入层与所述中间层之间通过连接权值连接,所述中间层与所述输出层之间通过连接权值连接,所述输入层的输入元为程序在主处理器上的行为特征和主处理器自身特征,所述输出层的输出元为性能干扰函数的参数;

将所述程序集作为所述初始神经网络模型的训练程序集,利用所述训练程序集迭代训练所述初始神经网络模型,获得稳定的神经网络模型;其中,所述稳定的神经网络模型为连接权值不随迭代次数改变或改变小于预设阈值的神经网络模型;或者为预测误差不随迭代次数改变或改变小于阈值的神经网络模型;

将所述稳定的神经网络模型作为所述性能干扰函数预测模型。

在第一方面的第五种可能实现的方式中,结合第一方面至第一方面的第四种可能实现的方式中的任一种方式,所述方法还包括:

获取第一程序在目标处理器所在组内的主处理器上运行时的第一行为特征;

将所述第一行为特征输入所述特征预测模型,获取第一程序在所述目标处理器上运行时的第二行为特征;

将所述第二行为特征和所述目标处理器自身特征输入所述性能干扰函数预测模型,获取所述第一程序在所述目标处理器上的性能干扰函数的参数。

在第一方面的第六种可能实现的方式中,结合第一方面的第五种可能实现的方式,所述方法还包括:

将第一处理器加入第一组处理器中;

获得第一特征预测模型;其中,所述第一特征预测模型用于表示:程序在所述第一处理器上运行的行为特征与程序在所述第一组的主处理器上运行时的行为特征之间的关系;

将第二程序在所述第一组的主处理器上的运行时的行为特征输入所述第一特征预测模型,获取第二程序在所述第一处理器上运行时的第三行为特征;

将所述第三行为特征和所述第一处理器自身特征输入所述性能干扰函数预测模型,获取第二程序在所述第一处理器上的性能干扰函数的参 数。

在第一方面的第七种可能实现的方式中,结合第一方面至第一方面的第六种可能实现的方式中的任一种方式,所述共享资源包括:共享缓存、共享领取器、共享带宽和共享输入输出设备;

所述行为特征包括:程序对共享缓存的行为特征、程序对共享领取器的行为特征、程序对共享带宽的行为特征以及对共享输入输出设备的行为特征。

第二方面,本发明实施例提供一种预测核间性能干扰的装置,包括:

获取单元,用于分别获取程序集中每个程序在每个处理器上运行时的行为特征,以及每个程序在每组中的主处理器上的性能干扰函数的参数;其中,每组中处理器的架构相同;所述程序的性能干扰函数的参数用以确定所述程序的性能干扰函数,所述程序的性能干扰函数用以表示:程序集中多个与所述程序共同运行的程序的行为特征相互作用时所述程序遭受的性能干扰;

特征预测模型构建单元,用于根据所述程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型;其中,所述特征预测模型用于表示:程序在主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上运行时的行为特征之间的关系;

性能干扰函数预测模型构建单元,用于根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型,其中,所述性能干扰函数预测模型用于:根据程序在处理器上的行为特征和处理器自身特征预测程序在处理器上的性能干扰函数的参数。

在第二方面的第一种可能实现的方式中,结合第二方面,所述获取单元,具体用于:

通过剖析(profiling)方式获取程序集中的每个程序在每个处理器上运行时的行为特征。

在第二方面的第二种可能实现的方式中,结合第二方面或第二方面的第一种可能实现的方式,所述特征预测模型构建单元,具体用于:

通过机器学习方式分析每个程序在所述主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上的行为特征之间 的关联性;

根据所述关联性构建所述特征预测模型。

在第二方面的第三种可能实现的方式中,结合第二方面至第二方面的第二种可能实现的方式中的任一种方式,所述性能干扰函数预测模型为:神经网络模型。

在第二方面的第四种可能实现的方式中,结合第二方面的第三种可能实现的方式,所述性能干扰函数预测模型构建单元,具体用于:

根据所述训练集中每个程序在主处理器上的行为特征、主处理器自身的特征以及性能干扰函数的参数,建立初始神经网络模型;其中,所述初始神经网络模型包含输入层以及输出层;所述输入层与所述输出层之间包含中间层,所述输入层与所述中间层之间通过连接权值连接,所述中间层与所述输出层之间通过连接权值连接,所述输入层的输入元为程序在主处理器上的行为特征和主处理器自身特征,所述输出层的输出元为性能干扰函数的参数;

将所述程序集作为所述初始神经网络模型的训练程序集,利用所述训练程序集迭代训练所述初始神经网络模型,获得稳定的神经网络模型;其中,所述稳定的神经网络模型为连接权值不随迭代次数改变或改变小于预设阈值的神经网络模型;或者为预测误差不随迭代次数改变或改变小于阈值的神经网络模型;

将所述稳定的神经网络模型作为所述性能干扰函数预测模型。

在第二方面的第五种可能实现的方式中,结合第二方面至第二方面的第四种可能实现的方式中的任一种方式,所述共享资源包括:共享缓存、共享领取器、共享带宽和共享输入输出设备;

所述行为特征包括:程序对共享缓存的行为特征、程序对共享领取器的行为特征、程序对共享带宽的行为特征以及对共享输入输出设备的行为特征。

由上可知,本发明实施例提供一种预测核间性能干扰的方法及装置,将异构处理器按照架构进行分组之后,构建了特征预测模型和性能干扰函数预测模型,进而可以很方便地实现了根据已有处理器上的行为特征和性能干扰函数的参数来获得程序在其它处理器上的行为特征和性能干扰函 数的参数,大大降低了获得核间性能干扰的复杂度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种预测核间性能干扰的方法的流程图;

图2为本发明实施例提供的一种预测核间性能干扰的装置20的结构图;

图3为本发明实施例提供的一种预测核间性能干扰的装置30的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在执行本发明提供的方法之前,需要确定一个合适的程序集,其中,该合适的程序集需要对整体的输入程序有很强的代表性,所以在确定的时候需要遵循一定的原则,首先,程序集要有广泛性,即程序集中程序的行为特征所覆盖的范围要广泛,需要覆盖到程序特征向量的所有方面,具体来说,就是指程序集中的程序应当涵盖计算密集型、访存密集型等不同的类型;其次,程序集要有针对性,即指程序集中的程序要根据输入程序的行为特征不同而做出相应的调整,如,若输入的应用程序是以在线服务的程序居多,那么程序集中的程序也要以在线服务的程序为主。

此外,本发明的精确性和实验数据的规模相关,程序集的规模直接影响构建的特征预测模型以及性能干扰预测模型的准确度,程序集规模越大,特征预测模型以及性能干扰预测模型的准确度就越高。但是,由于程 序集数量比较大,进行程序剖析的时间也越长,因此,可以根据通过调整程序集的规模,从而调整特征预测模型和性能干扰预测模型的准确度和剖析时间之间的平衡。

实施例一

图1示出了本发明实施例提供的一种预测性能干扰的方法的流程图,应用于多核处理器,如图1所示,所述方法可以包括:

101、分别获取程序集中每个程序在每个处理器上运行时的行为特征,以及每个程序在每组中的主处理器上的性能干扰函数的参数;其中,每组中处理器的架构相同;所述程序的性能干扰函数的参数用以确定所述程序的性能干扰函数,所述程序的性能干扰函数用以表示:程序集中多个与所述程序共同运行的程序的行为特征相互作用时所述程序遭受的性能干扰。

虽然,在多核处理器组成的计算环境中,各处理器之间存在异构性,如:相同的基于X86的处理器之间的型号不同,每个型号对应的架构不同,但是,研究表明:同架构的处理器之间的差异较小,而不同架构的处理器之间差异则比较大;例如,同为Nehalem架构的处理器比较相似,而Nehalem架构的处理器和Sandy Bridge架构的处理器差距就比较大。鉴于此,本发明实施例中,可以将所有处理器按照架构的异同进行分组,使得相同架构的处理器处于同一组,然后,再根据同架构的处理器之间的相近性,寻找相同架构的处理器间程序的行为特征和遭受的核间性能干扰之间的相关性,如此,将需要处理的众多型号处理器之间的异构降低到了几种架构之间的异构,大大降低了运算复杂度。

例如,云计算环境中包含8个型号不同的处理器,处理器1~处理器5均为来自Intel的基于Nehalem微架构的处理器,处理器7~处理器10均为来自Intel的基于Sandy Bridge架构的处理器,则可以将这10个处理器分为(处理器1,处理器2,处理器3,处理器4,处理器5)和(处理器6、处理器7、处理器8)两组。

其中,主处理器可以为每组中的任一处理器,也可以为组内处理能力最强的处理器,具体为哪个处理器,本发明实施例对比不进行限定。例如,可以选择型号为E5506的处理器作为Nehalem架构分组中的主处理器。

所述行为特征可以称为程序在处理器上运行时对共享资源的消耗,也 可以称为程序在处理器上运行时对共享资源的压力;所述共享资源包括但不限于:共享缓存、共享领取器、共享带宽和共享输入输出设备;相应的,程序的行为特征可以包括:程序对共享缓存的行为特征、程序对共享领取器的行为特征、程序对共享带宽的行为特征以及对共享输入输出设备的行为特征等多个子行为特征;其中,程序对共享缓存的行为特征可以用程序缓存命中率、单位时间内的缓存缺少次数或每百万条指令内的缓存缺少次数来表示;对共享领取器的行为特征可以用单位时间内的领取次数或每百万条指令内的领取次数来表示;对共享带宽的行为特征可以用程序运行时使用的带宽流量来表示;对共享输入输出设备的行为特征可以用程序使用其输入输出读写请求的次数、每次读写请求的字节数来表示。通常,将包含多个子行为特征的行为特征以向量的形式表示,如,程序A运行时的行为特征可以为:PA=(PA1,PA2,PA3…PAK),其中,k为共享资源的数目,PA为程序A运行时的特征向量,PAi为程序A在共享资源i的行为特征。

所述性能干扰函数可以表示为程序共同运行时对共享资源的总压力的分段函数:PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核间性能干扰,函数fA是对应程序A的分段函数,其自变量的数目为共享资源的数目k,Aggregate(Pi)(i=1,2..,k)是共同运行的所有程序对资源i的聚集的总压力,是函数fA的自变量。

对于所有程序对应的函数f,具有如下性质:在同一处理器上,所有程序对应的函数f的形式相同,程序对应的函数参数可以为程序集中多个共同运行的程序的行为特征相互作用时所述共同运行的程序各自性能的下降率,由于不同程序遭受的干扰不尽相同,所以,各程序对应的性能干扰函数的参数也是不同的,比如在某一处理器上,所有程序对应的函数形式都是线性函数,即自变量为Aggregate(Pi)(i=1…k)的线性函数,但是不同的程序的函数参数不同,如程序A对应函数fA=2*Aggregate(P1)+3*Aggregate(P2)+CA,而程序B为fB=4*Aggregate(P1)+5*Aggregate(P2)+CB,两个函数都为线性函数,但A,B对应的函数的参数不同。

优选的,可以通过剖析(profiling)方式获取程序集中的每个程序在每个处理器上运行时的行为特征;也可以通过编译分析的方式获取程序集 中的每个程序在每个处理器上运行时的行为特征。

102、根据所述程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型;其中,所述特征预测模型用于表示:程序在主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上运行时的行为特征之间的关系。

优选的,特征预测模型可以包含:缓存压力预测子模型、领取器压力预测子模型、带宽压力预测子模型以及输入输出设备压力预测子模型等多个子模型。

示例性的,所述根据程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型可以包括:

通过机器学习方式分析每个程序在所述主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上的行为特征之间的关联性;

根据所述关联性构建所述特征预测模型。

例如,共享资源包含:共享缓存、共享带宽2个资源,分组后组1(处理器1,处理器2,处理器3,处理器4,处理器5)中的主处理器为处理器3,组2(处理器6、处理器7、处理器8)中的主处理器为处理器7,程序集中仅包含两个高QoS优先级程序:程序A和程序B,用Pmni表示:程序m在处理器n上运行时对共享资源i的行为特征;则程序A在每个处理器上的行为特征,以及程序B在每个处理器上的行为特征为:(PA11,PA12),(PA21,PA22),(PA31,PA32),(PA41,PA42),(PA51,PA52),(PA61,PA62),(PA71,PA72),(PA81,PA82)和(PB11,PB12),(PB21,PB22),(PB31,PB32),(PB41,PB42),(PB51,PB52),(PB61,PB62),(PB71,PB72),(PB81,PB82),则可以通过机器学习方式统计出如下所述的:任一程序(如程序A)在任一主处理器(如处理器3)上的行为特征与处理器在同架构的其他处理器上的行为特征之间的关系:

对于同架构的处理器,程序在不同处理器上执行中共享缓存的总数量L2LinesIn是固定不变的,即对于架构相同的处理器3和j,L2LinesInA3=L2LinesInAj,另CacheA3代表程序A在处理器3上对共享缓存的行为特征,CacheAj代表程序A在同架构的其他任一处理器j上对共享缓存的行为特征,则CacheA3=L2LinesInA3/TA3=L2LinesInAj/a3j*TAj=CacheAj/ a3j,即CacheAj=CacheA3*a3j,其中,TA3为程序A在处理器3上的执行时间,TAj为程序A在处理器j上的执行时间,a3j为程序在任一个处理器上的执行时间与程序在主处理器3上的执行时间的比值;

在同一处理器上,确定程序对共享带宽的行为特征和对共享缓存的行为特征之间存在相关性,即BwAi=hi(L2LinesInAi,CacheSizei),BwAi代表程序在处理器i上对共享带宽的行为特征,CacheSizei是处理器i上所有程序共享缓存的总大小;将获得的程序集中每个程序在处理器i上对共享带宽及共享缓存的行为特征,代入BwAi=hi(L2LinesInAi,CacheSizei)中,可以通过机器学习获得处理器i对应的hi值,进而可以获得任一处理器上带宽压力预测子模型;

从而可知,构建出的特征预测模型包括:

缓存压力预测子模型:CacheAj=CacheA3*a3j;

带宽压力预测子模型:BwAi=hi(L2LinesInAi,CacheSizei)。

经过步骤103的建模之后,便可以在后期进行行为特征测量时,仅需要获取程序在主处理器上对共享缓存的行为特征,就可以根据缓存压力预测子模型获取程序在其他任一处理器上对共享缓存的行为特征,进而并根据带宽压力预测子模型获取程序在该处理器上对共享带宽的行为特征,使得计算复杂度大大降低。

103、根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型,其中,所述性能干扰函数预测模型用于:根据程序在处理器上的行为特征和处理器自身特征预测程序在处理器上的性能干扰函数的参数。

其中,处理器自身特征可以包括处理器的缓存大小、频率大小、内存带宽大小等,这些特征可以通过查阅处理器厂商的公开的技术手册得到或者借助已经公开的软件实现得到。

优选的,所述性能干扰函数预测模型可以为:神经网络模型。

示例性的,所述根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型可以包括:

根据所述训练集中每个程序在主处理器上的行为特征、主处理器自身 的特征以及性能干扰函数的参数,建立初始神经网络模型;其中,所述初始神经网络模型包含输入层以及输出层;所述输入层与所述输出层之间包含中间层,所述输入层与所述中间层之间通过连接权值连接,所述中间层与所述输出层之间通过连接权值连接,所述输入层的输入元为程序在主处理器上的行为特征和主处理器自身特征,所述输出层的输出元为性能干扰函数的参数;

将所述程序集作为所述初始神经网络模型的训练程序集,利用所述训练程序集迭代训练所述初始神经网络模型,获得稳定的神经网络模型;其中,所述稳定的神经网络模型为连接权值不随迭代次数改变或改变小于预设阈值的神经网络模型;或者为预测误差不随迭代次数改变或改变小于阈值的神经网络模型;

将所述稳定的神经网络模型作为所述性能干扰函数预测模型。

需要说明的是,上述步骤103和104的顺序不分先后,可以同时进行,也可以先103再104,还可以先104再103,本发明实施例对比不进行限制。

进一步的,本发明实施例中,在构建特征预测模型和性能干扰函数预测模型之后,便可以根据特征预测模型和性能干扰函数预测模型对任一程序在任一处理器上的性能干扰进行分析,具体如下:

获取第一程序在目标处理器所在组内的主处理器上运行时的第一行为特征;

将所述第一行为特征输入所述特征预测模型,获取第一程序在所述目标处理器上运行时的第二行为特征;

将所述第二行为特征和所述目标处理器自身特征输入所述性能干扰函数预测模型,获取所述第一程序在所述目标处理器上的性能干扰函数的参数。

进一步的,本发明实施例中,在构建特征预测模型和性能干扰函数预测模型之后,便可以根据该性能干扰函数及重构的特征预测模型对任一程序在任一新添加的处理器上的性能干扰进行分析,具体如下:

将第一处理器加入第一组处理器中;

获得第一特征预测模型;其中,所述第一特征预测模型用于表示:程 序在所述第一处理器上运行的行为特征与程序在所述第一组的主处理器上运行时的行为特征之间的关系;

将第二程序在所述第一组的主处理器上的运行时的行为特征输入所述第一特征预测模型,获取第二程序在所述第一处理器上运行时的第三行为特征;

将所述第三行为特征和所述第一处理器自身特征输入所述性能干扰函数预测模型,获取第二程序在所述第一处理器上的性能干扰函数的参数。

由上可知,本发明实施例提供一种预测核间性能干扰的方法,将异构处理器按照架构进行分组之后,构建了特征预测模型和性能干扰函数预测模型,进而可以很方便地实现了根据已有处理器上的行为特征和性能干扰函数的参数来获得程序在其它处理器上的行为特征和性能干扰函数的参数,大大降低了获得核间性能干扰的复杂度。

实施例二

图2示出了本发明实施例提供的一种预测性能干扰的装置20的结构图,用于执行实施例一所述的方法,如图2所示,可以包括:

获取单元201,用于分别获取程序集中每个程序在每个处理器上运行时的行为特征,以及每个程序在每组中的主处理器上的性能干扰函数的参数;其中,每组中处理器的架构相同;所述程序的性能干扰函数的参数用以确定所述程序的性能干扰函数,所述程序的性能干扰函数用以表示:程序集中多个与所述程序共同运行的程序的行为特征相互作用时所述程序遭受的性能干扰。

特征预测模型构建单元202,用于根据所述程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型;其中,所述特征预测模型用于表示:程序在主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上运行时的行为特征之间的关系;

性能干扰函数预测模型构建单元203,用于根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型,其中,所述性能干扰函数预测模型用于:根据程序在处理器上的行为特征和处理器自身特征预测程序在处理器上的性能干扰函数的参数。

虽然,在多核处理器组成的计算环境中,各处理器之间存在异构性,如:相同的基于X86的处理器之间的型号不同,每个型号对应的架构不同,但是,研究表明:同架构的处理器之间的差异较小,而不同架构的处理器之间差异则比较大;例如,同为Nehalem架构的处理器比较相似,而Nehalem架构的处理器和Sandy Bridge架构的处理器差距就比较大。鉴于此,本发明实施例中,可以将所有处理器按照架构的异同进行分组,使得相同架构的处理器处于同一组,然后,再根据同架构的处理器之间的相近性,寻找相同架构的处理器间程序的行为特征和遭受的核间性能干扰之间的相关性,如此,将需要处理的众多型号处理器之间的异构降低到了几种架构之间的异构,大大降低了运算复杂度。

例如,云计算环境中包含8个型号不同的处理器,处理器1~处理器5均为来自Intel的基于Nehalem微架构的处理器,处理器7~处理器10均为来自Intel的基于Sandy Bridge架构的处理器,则可以将这10个处理器分为(处理器1,处理器2,处理器3,处理器4,处理器5)和(处理器6、处理器7、处理器8)两组。

其中,主处理器可以为每组中的任一处理器,也可以为组内处理能力最强的处理器,具体为哪个处理器,本发明实施例对比不进行限定。例如,可以选择型号为E5506的处理器作为Nehalem架构分组中的主处理器。

所述行为特征可以称为程序在处理器上运行时对共享资源的消耗,也可以称为程序在处理器上运行时对共享资源的压力;所述共享资源包括但不限于:共享缓存、共享领取器、共享带宽和共享输入输出设备;相应的,程序的行为特征可以包括:程序对共享缓存的行为特征、程序对共享领取器的行为特征、程序对共享带宽的行为特征以及对共享输入输出设备的行为特征等多个子行为特征;其中,程序对共享缓存的行为特征可以用程序缓存命中率、单位时间内的缓存缺少次数或每百万条指令内的缓存缺少次数来表示;对共享领取器的行为特征可以用单位时间内的领取次数或每百万条指令内的领取次数来表示;对共享带宽的行为特征可以用程序运行时使用的带宽流量来表示;对共享输入输出设备的行为特征可以用程序使用其输入输出读写请求的次数、每次读写请求的字节数来表示。通常,将包含多个子行为特征的行为特征以向量的形式表示,如,程序A运行时的行 为特征可以为:PA=(PA1,PA2,PA3…PAK),其中,k为共享资源的数目,PA为程序A运行时的特征向量,PAi为程序A在共享资源i的行为特征。

所述性能干扰函数可以表示为程序共同运行时对共享资源的总压力的分段函数:PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核间性能干扰,函数fA是对应程序A的分段函数,其自变量的数目为共享资源的数目k,Aggregate(Pi)(i=1,2..,k)是共同运行的所有程序对资源i的聚集的总压力,是函数fA的自变量。

优选的,特征预测模型可以包含:缓存压力预测子模型、领取器压力预测子模型、带宽压力预测子模型以及输入输出设备压力预测子模型等多个子模型。

示例性的,所述获取单元201,具体用于:

通过profiling方式获取程序集中的每个程序在每个处理器上运行时的行为特征。

示例性的,所述特征预测模型构建单元202,具体用于:

通过机器学习方式分析每个程序在所述主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上的行为特征之间的关联性;

根据所述关联性构建所述特征预测模型。

优选的,本发明实施例中,所述性能干扰函数预测模型可以为神经网络模型。

示例性的,所述性能干扰函数预测模型构建单元203,具体用于:

根据所述训练集中每个程序在主处理器上的行为特征、主处理器自身的特征以及性能干扰函数的参数,建立初始神经网络模型;其中,所述初始神经网络模型包含输入层以及输出层;所述输入层与所述输出层之间包含中间层,所述输入层与所述中间层之间通过连接权值连接,所述中间层与所述输出层之间通过连接权值连接,所述输入层的输入元为程序在主处理器上的行为特征和主处理器自身特征,所述输出层的输出元为性能干扰函数的参数;

将所述程序集作为所述初始神经网络模型的训练程序集,利用所述训 练程序集迭代训练所述初始神经网络模型,获得稳定的神经网络模型;其中,所述稳定的神经网络模型为连接权值不随迭代次数改变或改变小于预设阈值的神经网络模型;或者为预测误差不随迭代次数改变或改变小于阈值的神经网络模型;

将所述稳定的神经网络模型作为所述性能干扰函数预测模型。

如此,在构建特征预测模型和性能干扰函数预测模型之后,便可以根据特征预测模型和性能干扰函数预测模型对任一程序在任一处理器上的性能干扰进行分析;或者根据该性能干扰函数及重构的特征预测模型对任一程序在任一新添加的处理器上的性能干扰进行分析。

由上可知,本发明实施例提供一种预测核间性能干扰的装置,将异构处理器按照架构进行分组之后,构建了特征预测模型和性能干扰函数预测模型,进而可以很方便地实现了根据已有处理器上的行为特征和性能干扰函数的参数来获得程序在其它处理器上的行为特征和性能干扰函数的参数,大大降低了获得核间性能干扰的复杂度。

实施例三

图3示出了本发明实施例提供的一种预测性能干扰的装置30的结构图,用于执行实施例一所述的方法,如图3所示,可以包括:通信单元301,处理器302、存储器303、至少一个通信总线304,用于实现这些装置之间的连接和相互通信;

通信单元301,用于与外部网元之间进行数据传输。

处理器302可能是一个中央处理器(central processing unit,简称为CPU)。

存储器303,可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,并向处理器302提供指令和数据。

处理器302,用于分别获取程序集中每个程序在每个处理器上运行时的行为特征,以及每个程序在每组中的主处理器上的性能干扰函数的参 数;其中,每组中处理器的架构相同;所述程序的性能干扰函数的参数用以确定所述程序的性能干扰函数,所述程序的性能干扰函数用以表示:程序集中多个与所述程序共同运行的程序的行为特征相互作用时所述程序遭受的性能干扰;

根据所述程序集中每个程序在每个处理器上运行时的行为特征,构建特征预测模型;其中,所述特征预测模型用于表示:程序在主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上运行时的行为特征之间的关系;

根据所述程序集中每个程序在主处理器上的行为特征、主处理器自身特征以及性能干扰函数的参数,构建性能干扰函数预测模型,其中,所述性能干扰函数预测模型用于:根据程序在处理器上的行为特征和处理器自身特征预测程序在处理器上的性能干扰函数的参数。

虽然,在多核处理器组成的计算环境中,各处理器之间存在异构性,如:相同的基于X86的处理器之间的型号不同,每个型号对应的架构不同,但是,研究表明:同架构的处理器之间的差异较小,而不同架构的处理器之间差异则比较大;例如,同为Nehalem架构的处理器比较相似,而Nehalem架构的处理器和Sandy Bridge架构的处理器差距就比较大。鉴于此,本发明实施例中,可以将所有处理器按照架构的异同进行分组,使得相同架构的处理器处于同一组,然后,再根据同架构的处理器之间的相近性,寻找相同架构的处理器间程序的行为特征和遭受的核间性能干扰之间的相关性,如此,将需要处理的众多型号处理器之间的异构降低到了几种架构之间的异构,大大降低了运算复杂度。

例如,云计算环境中包含8个型号不同的处理器,处理器1~处理器5均为来自Intel的基于Nehalem微架构的处理器,处理器7~处理器10均为来自Intel的基于Sandy Bridge架构的处理器,则可以将这10个处理器分为(处理器1,处理器2,处理器3,处理器4,处理器5)和(处理器6、处理器7、处理器8)两组。

其中,主处理器可以为每组中的任一处理器,也可以为组内处理能力最强的处理器,具体为哪个处理器,本发明实施例对比不进行限定。例如,可以选择型号为E5506的处理器作为Nehalem架构分组中的主处理器。

所述行为特征可以称为程序在处理器上运行时对共享资源的消耗,也 可以称为程序在处理器上运行时对共享资源的压力;所述共享资源包括但不限于:共享缓存、共享领取器、共享带宽和共享输入输出设备;相应的,程序的行为特征可以包括:程序对共享缓存的行为特征、程序对共享领取器的行为特征、程序对共享带宽的行为特征以及对共享输入输出设备的行为特征等多个子行为特征;其中,程序对共享缓存的行为特征可以用程序缓存命中率、单位时间内的缓存缺少次数或每百万条指令内的缓存缺少次数来表示;对共享领取器的行为特征可以用单位时间内的领取次数或每百万条指令内的领取次数来表示;对共享带宽的行为特征可以用程序运行时使用的带宽流量来表示;对共享输入输出设备的行为特征可以用程序使用其输入输出读写请求的次数、每次读写请求的字节数来表示。通常,将包含多个子行为特征的行为特征以向量的形式表示,如,程序A运行时的行为特征可以为:PA=(PA1,PA2,PA3…PAK),其中,k为共享资源的数目,PA为程序A运行时的特征向量,PAi为程序A在共享资源i的行为特征。

所述性能干扰函数可以表示为程序共同运行时对共享资源的总压力的分段函数:PDA=fA(Aggregate(P1),Aggregate(P2),..,Aggregate(Pk))=fA(Aggregate(PA,Pco-runners),PDA代表程序A遭受的核间性能干扰,函数fA是对应程序A的分段函数,其自变量的数目为共享资源的数目k,Aggregate(Pi)(i=1,2..,k)是共同运行的所有程序对资源i的聚集的总压力,是函数fA的自变量。

优选的,特征预测模型可以包含:缓存压力预测子模型、领取器压力预测子模型、带宽压力预测子模型以及输入输出设备压力预测子模型等多个子模型。

示例性的,所述处理器302,具体用于:

通过profiling方式获取程序集中的每个程序在每个处理器上运行时的行为特征。

示例性的,所述处理器302,具体用于:

通过机器学习方式分析每个程序在所述主处理器上运行时的行为特征与所述程序在所述主处理器所在组内的其他处理器上的行为特征之间的关联性;

根据所述关联性构建所述特征预测模型。

优选的,本发明实施例中,所述性能干扰函数预测模型可以为神经网络模型。

示例性的,所述处理器302,具体用于:

根据所述训练集中每个程序在主处理器上的行为特征、主处理器自身的特征以及性能干扰函数的参数,建立初始神经网络模型;其中,所述初始神经网络模型包含输入层以及输出层;所述输入层与所述输出层之间包含中间层,所述输入层与所述中间层之间通过连接权值连接,所述中间层与所述输出层之间通过连接权值连接,所述输入层的输入元为程序在主处理器上的行为特征和主处理器自身特征,所述输出层的输出元为性能干扰函数的参数;

将所述程序集作为所述初始神经网络模型的训练程序集,利用所述训练程序集迭代训练所述初始神经网络模型,获得稳定的神经网络模型;其中,所述稳定的神经网络模型为连接权值不随迭代次数改变或改变小于预设阈值的神经网络模型;或者为预测误差不随迭代次数改变或改变小于阈值的神经网络模型;

将所述稳定的神经网络模型作为所述性能干扰函数预测模型。

如此,在构建特征预测模型和性能干扰函数预测模型之后,便可以根据特征预测模型和性能干扰函数预测模型对任一程序在任一处理器上的性能干扰进行分析;或者根据该性能干扰函数及重构的特征预测模型对任一程序在任一新添加的处理器上的性能干扰进行分析。

由上可知,本发明实施例提供一种预测核间性能干扰的装置,将异构处理器按照架构进行分组之后,构建了特征预测模型和性能干扰函数预测模型,进而可以很方便地实现了根据已有处理器上的行为特征和性能干扰函数的参数来获得程序在其它处理器上的行为特征和性能干扰函数的参数,大大降低了获得核间性能干扰的复杂度。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的单元和系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅 是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如处理器)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1