首页> 中国专利> 多核系统的资源管理方法、资源管理设备及电子设备

多核系统的资源管理方法、资源管理设备及电子设备

摘要

本发明公开了一种多核系统的资源管理方法、资源管理设备、电子设备及计算机可读存储介质。其中,上述资源管理方法包括:当多核系统满足预设的碎片整理条件时,确定所述多核系统当前存在的自由核心的数量,所述自由核心是指未被任务映射的核心;从所述多核系统中确定目标核心区域,其中,所述目标核心区域由N个连续的核心位置构成,所述N等于所述自由核心的数量;将所述多核系统中的各个自由核心逐一迁移到所述目标核心区域中。本发明提供的方案能够有效减少碎片化现象的产生。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2017-11-24

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20170518

    实质审查的生效

  • 2017-10-24

    公开

    公开

说明书

技术领域

本发明属于计算机体系结构领域,尤其涉及一种多核系统的资源管理方法、资源管理设备及电子设备。

背景技术

多核系统是现代数据中心的基本组成部分,其通常由通过片上网络(NoC,Network-On-Chip)连接的数千个核心组成。

在多核系统中,每个应用程序在运行时被映射到可用的核心区域,并在应用程序结束时释放该应用程序所映射的核心区域。由于应用程序所映射的核心区域在应用程序结束时会被释放,而频繁地对多核系统中的自由核心(即未被任务映射的核心)进行分配和重分配,会使得自由核心分散地分布在多核系统中,从而导致碎片化现象的产生。

现有的应用程序映射算法尝试为应用程序选择最佳核心区域,以使得同一个应用程序的所有任务被映射到一个连续的核心区域,形成具有低通信量距离的连续核心区域。然而,由于碎片化现象的存在,尽管多核系统中的自由核心总数可能超过需要为应用程序提供服务的核心数量,但是分散在多核系统中的自由核心有可能不足以满足传入的应用程序的性能需求(理由是应用程序映射到非连续的核心区域时会使得通信距离增加,从而带来明显的性能损失)。

可见,由于现有的应用程序映射算法只关注优化每个单独应用程序的性能,不考虑当前映射对未来应用程序的影响,因此,难以避免碎片化现象的产生以及由此带来的更多问题。

发明内容

本发明提供一种多核系统的资源管理方法、资源管理设备及电子设备,用于减少碎片化现象的产生。

本发明第一方面提供一种多核系统的资源管理方法,包括:

当多核系统满足预设的碎片整理条件时,确定上述多核系统当前存在的自由核心的数量,上述自由核心是指未被任务映射的核心;

从上述多核系统中确定目标核心区域,其中,上述目标核心区域由N个连续的核心位置构成,上述N等于上述自由核心的数量;

将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中。

基于本发明第一方面,在第一种可能的实现方式中,上述预设的碎片整理条件为碎片量化指数不小于预设的碎片量化阈值,上述碎片量化指数为用于量化上述多核系统中的自由核心分散状态的值;

上述资源管理方法还包括:

检测上述多核系统的碎片量化指数是否小于上述碎片量化阈值;

若检测到上述多核系统的碎片量化指数小于上述碎片量化阈值,则判定上述多核系统不满足上述碎片整理条件;

若检测到上述多核系统的碎片量化指数不小于上述碎片量化阈值,则判定上述多核系统满足上述碎片整理条件。

基于本发明第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述检测上述多核系统的碎片量化指数是否小于上述碎片量化阈值,之前包括:

将当前上述多核系统中横坐标最大的自由核心的横坐标减去横坐标最小的自由核心的横坐标,得到横坐标差值;

将当前上述多核系统中纵坐标最大的自由核心的纵坐标减去纵坐标最小的自由核心的纵坐标,得到纵坐标差值;

将上述横坐标差值加上上述纵坐标差值,得到上述多核系统的碎片量化指数。

基于本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第三种可能的实现方式中,上述从上述多核系统中确定目标核心区域包括:

确定目标核心区域的初始核心位置,其中,上述初始核心位置为当前与上述多核系统中的各个核心之间的距离之和最小的核心所在的核心位置;

基于上述初始核心位置的一相邻核心位置更新目标核心区域,使得更新后的目标核心区域包含上述初始核心位置的一相邻核心位置;

将最后更新于目标核心区域中的核心位置作为目标位置,并以最小化目标核心区域的碎片量化指数为准则,从当前目标位置的相邻核心位置中选取一核心位置更新于目标核心区域中;

返回执行上述将最后更新在目标核心区域中的位置作为目标位置的步骤,直至得到包含上述N个连续的核心位置的目标核心区域。

基于本发明第一方面,或者本发明第一方面的第一种可能的实现方式,或者本发明第一方面的第二种可能的实现方式,在第四种可能的实现方式中,上述将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中,包括:

从未迁移的自由核心中选取一自由核心作为当前待迁移核心;

以最小化迁移开销为准则,确定当前待迁移核心的迁移路径,其中,上述当前待迁移核心的迁移路径以当前待迁移核心的初始核心位置为起点,且以上述目标核心区域中的一待被迁移位置为终点;

根据上述迁移路径将当前待迁移核心迁移到上述待被迁移位置,返回执行上述从未迁移的自由核心中选取一自由核心作为当前待迁移核心,直至所有自由核心被迁移到上述目标核心区域中;

其中,上述以最小化迁移开销为准则,确定当前待迁移核心的迁移路径,包括:

将与当前待迁移核心的初始核心位置相邻的一核心位置确定为上述迁移路径的第一跳节点;

将上述第一跳节点作为当前节点,将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点,以使预设的迁移开销条件成立;

将当前节点的下一跳节点作为当前节点,返回执行上述将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点的步骤以及后续步骤,直至当前节点的下一跳节点为上述待被迁移位置;

其中,上述迁移开销条件为:

在上述迁移开销条件中,n0表示当前待迁移核心,ni表示迁移前第i跳节点所对应的核心,ni+1表示迁移前第i跳节点的下一跳节点所对应的核心,v(n0,ni)表示将n0迁移到ni所在的核心位置需要的路径花费,表示在假定n0已迁移到ni所在的核心位置的场景下,ni到ni+1的通信成本的改变量;

其中,当ni为自由核心时,等于0,当ni为非自由核心时,其中,tr表示当前ni上映射的任务,H(tr)表示tr所属的应用程序正在运行的任务的集合,dist(ni-1,M(tk))表示ni-1与任务tk所映射的核心M(tk)之间的曼哈顿距离;v(n0,n0)为预设的固定值,i∈[1,+∞)。

基于本发明第一方面的第四种可能的实现方式,在第五种可能的实现方式中,上述将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点,为:

将与当前节点在第一方面或第二方向相邻的一目标核心位置确定为当前节点的下一跳节点;

其中,上述第一方向为指向上述待被迁移位置的横坐标位置的横坐标方向,上述第二方向为指向上述待被迁移位置的纵坐标位置的纵坐标方向。

本发明第二方面提供一种多核系统的资源管理设备,包括:

第一确定单元,用于当多核系统满足预设的碎片整理条件时,确定上述多核系统当前存在的自由核心的数量,上述自由核心是指未被任务映射的核心;

第二确定单元,用于从上述多核系统中确定目标核心区域,其中,上述目标核心区域由N个连续的核心位置构成,上述N等于上述自由核心的数量;

迁移单元,用于将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中。

基于本发明第二方面,在第一种可能的实现方式中,上述预设的碎片整理条件为碎片量化指数不小于预设的碎片量化阈值,上述碎片量化指数为用于量化上述多核系统中的自由核心分散状态的值;

上述资源管理设备还包括:

检测单元,用于检测上述多核系统的碎片量化指数是否小于上述碎片量化阈值;若检测到上述多核系统的碎片量化指数小于上述碎片量化阈值,则判定上述多核系统不满足上述碎片整理条件;若检测到上述多核系统的碎片量化指数不小于上述碎片量化阈值,则判定上述多核系统满足上述碎片整理条件。

本发明第三方面提供一种电子设备,上述电子设备包括:存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如本发明第一方面或者本发明第一方面的任一可能实现方式中的资源管理方法。

本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被至少一个处理器执行时,实现如本发明第一方面或者本发明第一方面的任一可能实现方式中的资源管理方法。

由上可见,本发明方案中当多核系统满足碎片整理条件时,从多核系统中确定由N个连续的核心位置构成的目标核心区域,并将多核系统中的各个自由核心逐一迁移到该目标核心区域中,一方面,通过对自由核心的迁移,可避免多核系统的自由核心过于分散,从而可减少碎片化现象的产生;另一方面,由于目标核心区域由N个连续的核心位置构成,因此,通过将多核系统中的各个自由核心逐一迁移到该目标核心区域中,有利于减少后续启动的应用程序的通信开销。

附图说明

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

图1-a为本发明提供的资源管理方法一个实施例流程示意图;

图1-b为本发明提供的一种确定目标核心区域的实施例流程示意图;

图1-c为本发明提供的一种将自由核心迁移到目标核心区域的实施例流程示意图;

图1-d为在图1-c基础上提供的一种确定迁移路径的实施例流程示意图;

图2为本发明提供的资源管理设备一个实施例结构示意图;

图3为本发明提供的电子设备一个实施例结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例对一种多核系统的资源管理方法进行描述,请参阅图1-a,上述多核系统的资源管理方法包括:

步骤101、当多核系统满足预设的碎片整理条件时,确定上述多核系统当前存在的自由核心的数量;

本发明实施例中,多核系统可以由多个同类核心通过有双向连通的片上网络(NoC,Network On Chip)组成。每个核心可由一个处理单元,一个存储单元和一个网络接口组成。多核系统可以表示成一个G(N,L)的有向图,该有向图的每个顶点na∈N表示一个核心,每个弧lk,j∈L表示核心nk与核心nj的连接。xa和ya分别表示核心na的X轴和Y轴。

每个应用程序建模成一组通信任务。应用程序的任务可以表示为一个A(T,E)的有向图,该有向图的每个顶点ta∈T代表一个任务,每个弧ek,j∈E表示从tk到tj的通信。每个弧的重量v(ek,j)表示以包数量表示的通信量。两个任务之间的通信量可以通过应用程序预先分析得到。

映射函数M将应用程序的任务M映射到多核系统的自由核心上,M(ta)表示任务ta所映射的核心。本发明实施例中,上述自由核心是指未被任务映射的核心,未被任务映射的核心是后续应用程序可映射的区域。相应的,非自由核心是指已被任务映射的核心。

在一种应用场景中,可通过上述多核系统的碎片量化指数积极监视多核系统中的自由核心的分散状态,在上述多核系统的碎片量化指数不小于预设阈值时执行必要的资源管理以促进后续应用程序映射的有效性。具体地,可上述预设的碎片整理条件设为:碎片量化指数不小于预设的碎片量化阈值,其中,上述碎片量化指数为用于量化自由核心分散状态的值。也即,将上述多核系统中的自由核心分散状态量化为碎片量化指数,通过检测上述多核系统的碎片量化指数是否小于上述碎片量化阈值来判定上述多核系统是否满足上述碎片整理条件,当检测到上述多核系统的碎片量化指数小于上述碎片量化阈值时,判定上述多核系统不满足上述碎片整理条件,当检测到上述多核系统的碎片量化指数不小于上述碎片量化阈值时,判定上述多核系统满足上述碎片整理条件。

本发明实施例中,可以通过如下几种方式获取上述多核系统的碎片量化指数:

方式1、将多核系统的碎片量化指数(后续用F替代碎片量化指数)初始化为0,遍历每个自由核心的每个相邻核心,如果自由核心的相邻核心为非自由核心,则将F加1,如果自由核心的相邻核心为自由核心,则保护F的值不变,直到完成遍历,此时得到的F即为上述多核系统当前的碎片量化指数。

方式2、将当前上述多核系统中横坐标最大的自由核心的横坐标减去横坐标最小的自由核心的横坐标,得到横坐标差值;将当前上述多核系统中纵坐标最大的自由核心的纵坐标减去纵坐标最小的自由核心的纵坐标,得到纵坐标差值;将上述横坐标差值加上上述纵坐标差值,得到上述多核系统的碎片量化指数。

方式3、将即将启动的应用程序的任务数量减去当前上述多核系统中包含连续自由核心数量最多的区域的核心数量,得到上述多核系统的碎片量化指数。其中,可通过预设的自回归模型预测即将启动的应用程序的任务数量。

在另一种应用场景中,也可以周期性触发图1所示实施例的资源管理方法,则上述预设的碎片整理条件可设为到达预设的碎片整理周期。则步骤101可表现为:在当前到达针对上述多核系统预设的碎片整理周期时,确定上述多核系统当前存在的自由核心的数量,上述自由核心是指未被任务映射的核心。

步骤102、从上述多核系统中确定目标核心区域;

其中,上述目标核心区域由N个连续的核心位置构成,上述N等于步骤101所确定的自由核心的数量。

本发明实施例,为上述多核系统的各个自由核心定义迁移目的地,确定要迁移的自由核心的迁移目的地以形成上述目标核心区域。

可选的,上述目标核心区域可以通过每次增加一个核心位置的方式形成以达到碎片量化指数最小。通过该方式,也可以使得上述目标核心区域可以为连续的近凸核心区域。具体地,上述从上述多核系统中确定目标核心区域可如图1-b所示,包括:

步骤A1、确定目标核心区域的初始核心位置;

其中,上述初始核心位置为当前与上述多核系统中的各个核心之间的距离(例如曼哈顿距离)之和最小的核心所在的核心位置。举例说明,设存在核心n1,n2,n3,n4和n5,n1与n2之间的距离表示为S1,2,n1与n3之间的距离表示为S1,3,n1与n4之间的距离表示为S1,4,n1与n5之间的距离表示为S1,5,n2与n3之间的距离表示为S2,3,n2与n4之间的距离表示为S2,4,n2与n5之间的距离表示为S2,5,n3与n4之间的距离表示为S3,4,n3与n5之间的距离表示为S3,5,n4与n5之间的距离表示为S4,5。如果核心n3与各个核心之间的距离之和最小(即S1,3、S2,3、S3,4以及S3,5之和最小),则将n3所在的核心位置确定为上述初始核心位置。

需要说明的是,如果当前与上述多核系统中的各个核心之间的距离(例如曼哈顿距离)之和最小的核心有多个,则可从中选取一个核心,将选取的核心所在的核心位置确定为上述初始核心位置。

步骤A2、基于上述初始核心位置的一相邻核心位置更新目标核心区域,使得更新后的目标核心区域包含上述初始核心位置的一相邻核心位置;

在步骤A2中,上述基于上述初始核心位置的一相邻核心位置更新目标核心区域的动作相当于将上述初始核心位置的一相邻核心位置增加到当前目标核心区域中。

在步骤A2中,可以从上述初始核心位置的多个相邻核心位置中随机选择一相邻核心位置用于更新目标核心区域;或者,也可以以最小化目标核心区域的碎片量化指数为准则,从上述初始核心位置的相邻核心位置中选取一相邻核心位置用于更新目标核心区域,以使得将自由核心迁移到所选取的相邻核心位置后的目标核心区域的碎片量化指数小于将自由核心迁移到其它未选取的相邻核心位置后的目标核心区域的碎片量化指数。其中,目标核心区域中的碎片量化指数是指用于量化上述目标核心区域中的自由核心分散状态的值,具体地,目标核心区域中的碎片量化指数的获取方式可以参照前述关于碎片量化指数的描述,此处不再赘述。

步骤A3、将最后更新于目标核心区域中的核心位置作为目标位置,并以最小化目标核心区域的碎片量化指数为准则,从当前目标位置的相邻核心位置中选取一核心位置更新于目标核心区域中;

在步骤A3中,将最后更新于目标核心区域中的核心位置作为目标位置,并以最小化目标核心区域的碎片量化指数为准则,从当前目标位置的相邻核心位置中选取一核心位置更新于目标核心区域中,以使得将自由核心迁移到所选取的相邻核心位置后的目标核心区域的碎片量化指数小于将自由核心迁移到其它未选取的相邻核心位置后的目标核心区域的碎片量化指数。

步骤A4、判断当前目标核心区域是否包含N个连续的核心位置;

在步骤A4中,判断当前目标核心区域是否包含N个连续的核心位置,其中,N等于步骤101所确定的自由核心的数量。

若判断出当前目标核心区域未包含N个连续的核心位置,则返回步骤A3,若判断出当前目标核心区域包含N个连续的核心位置,则执行步骤A5。

步骤A5、输出当前目标核心区域;

在步骤A5中,输出当前确定的目标核心区域,以便进行后续处理。

步骤103、将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中;

可选的,为各个自由核心的迁移搜寻一条较为有效的迁移路径。首先可通过成本函数来计算由于非自由核心的移动而导致的通信成本的改变量,然而应用预设的算法寻找迁移路径。其中,定义为:在假定n0已迁移到ni所在的核心位置的场景下,ni到ni+1的通信成本的改变量。具体地,步骤103的迁移过程可以如图1-c所示,包括:

步骤B1、从未迁移的自由核心中选取一自由核心作为当前待迁移核心;

步骤B2、以最小化迁移开销为准则,确定当前待迁移核心的迁移路径;

其中,上述当前待迁移核心的迁移路径以当前待迁移核心的初始核心位置为起点,且以上述目标核心区域中的一待被迁移位置为终点。

具体地,上述以最小化迁移开销为准则,确定当前待迁移核心的迁移路径可以如图1-d所示,包括:

B21、将与当前待迁移核心的初始核心位置相邻的一核心位置确定为上述迁移路径的第一跳节点;

B22、将上述第一跳节点作为当前节点;

B23、将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点,以使预设的迁移开销条件成立;

其中,上述迁移开销条件为:

在上述迁移开销条件中,n0表示当前待迁移核心,ni表示迁移前第i跳节点所对应的核心,ni+1表示迁移前第i跳节点的下一跳节点所对应的核心,v(n0,ni)表示将n0迁移到ni所在的核心位置需要的路径花费,表示在假定n0已迁移到ni所在的核心位置的场景下,ni到ni+1的通信成本的改变量;

其中,当ni为自由核心时,等于0,当ni为非自由核心时,其中,tr表示当前ni上映射的任务,H(tr)表示tr所属的应用程序正在运行的任务的集合,dist(ni-1,M(tk))表示ni-1与任务tk所映射的核心M(tk)之间的曼哈顿距离;v(n0,n0)为预设的固定值,i∈[1,+∞)。

进一步,还可以通过限制自由核心只能往两个方向迁移到待被迁移位置,以保证迁移路径的长度最短。则步骤B23具体可表现为:将与当前节点在第一方面或第二方向相邻的一目标核心位置确定为当前节点的下一跳节点,以使上述迁移开销条件成立。其中,上述第一方向为指向上述待被迁移位置的横坐标位置的横坐标方向,上述第二方向为指向上述待被迁移位置的纵坐标位置的纵坐标方向。

B24、判断当前节点的下一跳节点是否为上述待被迁移位置,若是,则进入步骤B25,若否,则将当前节点的下一跳节点作为当前节点,返回上述步骤B23;

B25、输出当前待迁移核心的迁移路径;

在步骤B25中,输出当前待迁移核心的迁移路径,以便进行后续处理。

步骤B3、根据上述迁移路径将当前待迁移核心迁移到上述待被迁移位置;

步骤B4、判断当前待迁移核心是否为最后一个待迁移核心,若否,则返步骤B1,若是,则进入步骤B5;

B5、停止本次迁移过程。

当然,本发明说明实施例中,也可以通过其它方式将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中,例如XY迁移路径寻找法(即:先将自由核心往横坐标轴方向移动到待被迁移位置的横坐标位置,然后将该自由核心往纵坐标轴方向移动到该待被迁移位置,从而形成该自由核心到该待被迁移位置的迁移路线)、贪心算法(即:使得自由核心始终沿着迁移开销最小的链路或方向往待被迁移位置移动)和穷举法(即:评估从自由核心到待被迁移位置的所有可达路径,然后选择迁移开销最小的可达路径作为该自由核心到该待被迁移位置的迁移路径)。

需要说明的是,本发明实施例中,步骤102和步骤103可以分开进行,即,先确定出完整的目标核心区域后,在执行步骤103;或者,步骤102和步骤103也可以同时运行,当每次通过步骤102确定出目标核心区域的一个核心位置后,针对当前确定的核心位置执行步骤103,之后再通过102确定出目标核心区域的另一个核心位置,如此反复,直至完成自由核心的迁移。

需要说明的是,本发明实施例中的资源管理方法可以应用于网状拓扑结构的多核系统中,当然,也可以应用于环面或折叠环面拓扑结构的多核系统中,此处不作限定。

需要说明的是,本发明实施例中的资源管理方法可以由资源管理设备实现,该资源管理设备可以为独立的设备,也可以集成在电子设备(例如计算机、手机、平板电脑等)中,此处不作限定。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

由上可见,本发明实施例中,当多核系统满足碎片整理条件时,从多核系统中确定由N个连续的核心位置构成的目标核心区域,并将多核系统中的各个自由核心逐一迁移到该目标核心区域中,一方面,通过对自由核心的迁移,可避免多核系统的自由核心过于分散,从而可减少碎片化现象的产生;另一方面,由于目标核心区域由N个连续的核心位置构成,因此,通过将多核系统中的各个自由核心逐一迁移到该目标核心区域中,有利于减少后续启动的应用程序的通信开销。

实施例二

本发明提供一种多核系统的资源管理设备。如图2所示,上述资源管理设备包括:

第一确定单元201,用于当多核系统满足预设的碎片整理条件时,确定上述多核系统当前存在的自由核心的数量,上述自由核心为未被任务映射的核心;

第二确定单元202,用于从上述多核系统中确定目标核心区域,其中,上述目标核心区域由N个连续的核心位置构成,上述N等于上述自由核心的数量;

迁移单元203,用于将上述多核系统中的各个自由核心逐一迁移到上述目标核心区域中。

可选的,上述预设的碎片整理条件为碎片量化指数不小于预设的碎片量化阈值,上述碎片量化指数为用于量化上述多核系统中的自由核心分散状态的值。本发明实施例中的资源管理设备还可包括:检测单元,用于检测上述多核系统的碎片量化指数是否小于上述碎片量化阈值;若检测到上述多核系统的碎片量化指数小于上述碎片量化阈值,则判定上述多核系统不满足上述碎片整理条件;若检测到上述多核系统的碎片量化指数不小于上述碎片量化阈值,则判定上述多核系统满足上述碎片整理条件。

可选的,本发明实施例中的资源管理设备还可包括:碎片量化指数计算单元,用于将当前上述多核系统中横坐标最大的自由核心的横坐标减去横坐标最小的自由核心的横坐标,得到横坐标差值;将当前上述多核系统中纵坐标最大的自由核心的纵坐标减去纵坐标最小的自由核心的纵坐标,得到纵坐标差值;将上述横坐标差值加上上述纵坐标差值,得到上述多核系统的碎片量化指数。

可选的,第二确定单元202具体包括:

第一子确定单元,用于确定目标核心区域的初始核心位置,其中,上述初始核心位置为当前与上述多核系统中的各个核心之间的距离之和最小的核心所在的核心位置;

更新单元,用于基于上述初始核心位置的一相邻核心位置更新目标核心区域,使得更新后的目标核心区域包含上述初始核心位置的一相邻核心位置;

选取单元,用于将上述更新单元最后更新于目标核心区域中的核心位置作为目标位置,并以最小化目标核心区域的碎片量化指数为准则,从当前目标位置的相邻核心位置中选取一核心位置更新于目标核心区域中;触发上述执行更新单元,直至得到包含上述N个连续的核心位置的目标核心区域。

可选的,迁移单元203具体用于:从未迁移的自由核心中选取一自由核心作为当前待迁移核心;以最小化迁移开销为准则,确定当前待迁移核心的迁移路径,其中,上述当前待迁移核心的迁移路径以当前待迁移核心的初始核心位置为起点,且以上述目标核心区域中的一待被迁移位置为终点;根据上述迁移路径将当前待迁移核心迁移到上述待被迁移位置,返回执行上述从未迁移的自由核心中选取一自由核心作为当前待迁移核心,直至所有自由核心被迁移到上述目标核心区域中;

其中,上述以最小化迁移开销为准则,确定当前待迁移核心的迁移路径,包括:

将与当前待迁移核心的初始核心位置相邻的一核心位置确定为上述迁移路径的第一跳节点;

将上述第一跳节点作为当前节点,将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点,以使预设的迁移开销条件成立;

将当前节点的下一跳节点作为当前节点,返回执行上述将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点的步骤以及后续步骤,直至当前节点的下一跳节点为上述待被迁移位置;

其中,上述迁移开销条件为:

在上述迁移开销条件中,n0表示当前待迁移核心,ni表示迁移前第i跳节点所对应的核心,ni+1表示迁移前第i跳节点的下一跳节点所对应的核心,v(n0,ni)表示将n0迁移到ni所在的核心位置需要的路径花费,表示在假定n0已迁移到ni所在的核心位置的场景下,ni到ni+1的通信成本的改变量;

其中,当ni为自由核心时,等于0,当ni为非自由核心时,其中,tr表示当前ni上映射的任务,H(tr)表示tr所属的应用程序正在运行的任务的集合,dist(ni-1,M(tk))表示ni-1与任务tk所映射的核心M(tk)之间的曼哈顿距离;v(n0,n0)为预设的固定值,i∈[1,+∞)。

可选的,上述将与当前节点相邻的一目标核心位置确定为当前节点的下一跳节点,为:将与当前节点在第一方面或第二方向相邻的一目标核心位置确定为当前节点的下一跳节点。其中,上述第一方向为指向上述待被迁移位置的横坐标位置的横坐标方向,上述第二方向为指向上述待被迁移位置的纵坐标位置的纵坐标方向。

需要说明的是,本发明实施例中的资源管理设备可以为独立的设备,也可以集成在电子设备(例如计算机、手机、平板电脑等)中,此处不作限定。

应理解,本发明实施例中的资源管理设备可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。

由上可见,本发明实施例中,当多核系统满足碎片整理条件时,从多核系统中确定由N个连续的核心位置构成的目标核心区域,并将多核系统中的各个自由核心逐一迁移到该目标核心区域中,一方面,通过对自由核心的迁移,可避免多核系统的自由核心过于分散,从而可减少碎片化现象的产生;另一方面,由于目标核心区域由N个连续的核心位置构成,因此,通过将多核系统中的各个自由核心逐一迁移到该目标核心区域中,有利于减少后续启动的应用程序的通信开销。

实施例三

图3是本发明一实施例提供的电子设备的示意图。如图3所示,该实施例的电子设备3包括:处理器30、存储器31以及存储在存储器31中并可在处理器30上运行的计算机程序32,例如资源管理程序。处理器30执行计算机程序32时实现上述各个方法实施例中的资源管理方法,例如图1-a所示的步骤101~103。或者,计算机程序32可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在存储器31中,并由处理器30执行,以完成本发明。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序32在电子设备3中的执行过程。例如,计算机程序32可以被分割成如图2所示的第一确定单元201、第二确定单元202和迁移单元203,第一确定单元201、第二确定单元202和迁移单元203的功能可以参照图2所示实施例中的描述,此处不再赘述。

电子设备3可包括,但不仅限于处理器30、存储器31。本领域技术人员可以理解,图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备3还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

上述存储器31可以是电子设备3的内部存储单元,例如电子设备3的硬盘或内存。上述存储器31也可以是电子设备3的外部存储设备,例如电子设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,上述存储器31还可以既包括电子设备3的内部存储单元也包括外部存储设备。存储器31用于存储上述计算机程序以及电子设备3所需的其他程序和数据。存储器31还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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

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

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号