一种平衡节点负载的方法及装置制造方法

文档序号:8000401阅读:215来源:国知局
一种平衡节点负载的方法及装置制造方法
【专利摘要】本发明实施例公开了一种平衡节点的负载的方法及装置,该方法应用于众核平台,该方法包括:获取众核平台中的第一核内记录的负载信息;对于任一消息,根据消息的目的地址信息和消息的源地址信息,确定将消息发送至目的地址信息对应的核所需经过的节点;根据消息的数量以及消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;将所承载的负载量超过其第一预设负载值的节点作为第一节点,从消息中确定所有经过第一节点的第一消息;从第一消息的源核或目的核中选择待迁移核;将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核。采用本发明实施例提供的方法及装置可以提高CPU的性能。
【专利说明】一种平衡节点负载的方法及装置

【技术领域】
[0001]本发明涉及通信【技术领域】,更具体的说,是涉及一种平衡节点负载的方法及装置。

【背景技术】
[0002] 随着互联网的发展,众核平台上核的数量越来越多,各个核之间通信的消息数量 也越来越多。下面以Mesh网络芯片为例对众核平台上各个核之间的通信过程进行说明。
[0003] 请参阅图1,为现有技术中二维Mesh网络芯片内布局的示意图,每一个核都对应 一节点Switch,节点Switch是各个核之间进行通信时消息的中转站。节点Switch会根据 其接收到的消息的目的核地址与节点Switch自身的位置决定向哪个位置发送该消息。假 设一消息的源核地址为(0,0)、目的核地址为(1,1),节点Switch先比较X坐标再比较y坐 标,则核(〇,〇)向核(1,1)发送消息的过程如下:核(0,0)将消息发送到节点Switch (0,0), 节点Switch (0,0)对比消息的目的核地址(1,1)与节点Switch (0,0)的位置,由于目的 核的X坐标1大于节点Switch (0, 0)的X坐标0,所以节点Switch (0, 0)将消息发送至节 点Switch (1,0);节点Switch (1,0)确定出该消息的目的核的X坐标1等于节点Switch (1,0)的X坐标1后,分析该消息的目的核的y坐标,由于目的核的y坐标1大于节点Switch (1,〇)的y坐标0,所以将该消息发送至节点Switch (1,1),节点Switch (1, 1)对比该消息 的目的核(1,1)的y坐标1与节点(1,1)的y坐标1相等,则把该消息发送到核(1,1 )。对 于节点Switch (0,0)与节点Switch (1,1)来说,上述消息为本地负载,对于节点Switch (1,0)来说上述消息为远端负载。
[0004] 发明人在实现本发明创造的过程中发现,在核与核进行通信时,可能会造成一些 节点Switch的负载量过多,从而导致CPU的性能降低。


【发明内容】

[0005] 有鉴于此,本发明提供了一种平衡节点负载的方法及装置,以克服现有技术中由 于一些节点的负载量过多,导致CPU的性能降低的问题。
[0006] 为实现上述目的,本发明提供如下技术方案:
[0007] 第一方面,一种平衡节点负载的方法,应用于众核平台,所述方法包括:获取所述 众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中已分配有执行程 序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消息的目的地址信 息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信息;对于任一所 述消息,根据所述消息的目的地址信息和所述消息的源地址信息,确定将所述消息发送至 所述目的地址信息对应的核所需经过的节点;根据所述消息的数量以及所述消息所需经过 的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;将所承载的 负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所有经过所述第一 节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第一消息的目的核 地址信息对应的目的核;从所述第一消息的源核或目的核中选择待迁移核;将所述待迁移 核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核,以便 所述目标核将所述至少一个所述执行程序对应的消息,发送至相应的目的地址信息对应的 核,所需经过的节点不包括所述第一节点,所述目标核对应的节点所承载的负载量低于第 二预设负载值。 __
[0008] 在第一方面的第一种可能实现方式中,从所述众核平台中选择目标核包括:将所 承载的负载量低于所述第二预设负载值的节点作为第二节点,检测所述第二节点对应的核 的状态标识,所述状态标识包括空闲状态标识与非空闲状态标识;将状态标识为空闲状态 标识的核确定为第二核;从所述第二核中选择出所述目标核。 _
[0009] 在第一方面的第二种可能实现方式中,从所述众核平台中选择目标核包括:将所 承载的负载量低于所述第二预设负载值的节点作为第二节点,从所述第二节点中选择所承 载的负载量最小的节点,并将所述所承载的负载量最小的节点对应的核作为所述目标核。
[0010] 结合第一方面、结合第一方面的第一种可能实现方式或者结合第一方面的第二种 可能实现方式,在第三种可能实现方式中,所述从所述第一消息的源核或目的核中选择待 迁移核包括:比较各个所述第一消息的源核中消息的数量,获得消息数量最多的源核,并将 所述消息数量最多的源核或所述消息数量最多的源核对应的目的核作为所述待迁移核。
[0011] 在第一方面的第四种可能实现方式中,所述将所述待迁移核中的至少一个所述执 行程序分别迁移至从所述众核平台中选择出的相应的目标核包括:对于所述至少一个所 述执行程序中的每一所述执行程序,获得所述执行程序,将所述执行程序设置于相应的所 述目标核,并根据相应的所述目标核的地址信息和所述执行程序对应的待迁移核的负载信 息,对所述目标核的负载信息进行更新,将所述待迁移核中的所述执行程序删除。
[0012] 结合第一方面或者结合第一方面的第四种可能实现方式,在第五种可能实现方式 中,在所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择 出的相应的目标核之后,还包括:将目的地址信息为所述待迁移核的地址信息的核,中的目 的地址信息更新为相应的目标核的地址信息。
[0013] 结合第一方面或者结合第一方面的第四种可能实现方式,在第六种可能实现方式 中,在将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的 相应的目标核之后,还包括:在所述待迁移核中设置反馈程序,所述反馈程序用于在所述 待迁移核接收到其他核发送的消息时,向所述其他核发送更新目的核地址信息的指示;在 所述其他核中设置应答程序,所述应答程序用于在接收到所述更新目的核地址信息的指示 时,将所述其他核中与所述至少一个执行程序对应的消息的目的核地址信息更新为相应目 标核的地址信息。
[0014] 在第一方面的第七种可能实现方式中,所述第一核中还记录有应用程序类别,所 述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相 应的目标核包括:获得所述第一核中各个执行程序的执行程序类别;将同一执行程序类别 的执行程序设置于同一所述目标核中;将所述第一核中所述同一执行程序类别的执行程序 清除。
[0015] 结合第一方面、结合第一方面的第一种可能实现方式、结合第一方面的第二种可 能实现方式、结合第一方面的第三种可能实现方式或者结合第一方面的第七种可能实现方 式,在第八种可能实现方式中,在将所述待迁移核中的至少一个所述执行程序分别迁移至 从所述众核平台中选择出的相应的目标核之前,还包括:确定所述第一节点所承载的负载 量中的本地负载量;当所述第一节点的本地负载量不大于所述第一节点的预设本地负载值 时,执行所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选 择出的相应的目标核的操作。
[0016] 在第一方面的第九种实现方式中,所述第一核记录负载信息包括:在检测到所述 第一核发送消息时,检测所述消息的相关信息,所述相关信息包括所述消息的目的地址信 息和所述消息的源地址信息;确定所述消息的第一消息数量;当已经记录有具有相同源地 址信息和目的地址信息的消息时,将所述具有相同源地址信息和目的地址信息的消息对应 的消息的数量增加所述第一消息数量;当未记录有具有相同源地址信息和目的地址信息的 消息时,记录所述第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消 息数量设置为所述第一消息数量。
[0017] 结合第一方面的第九种实现方式,在第十种实现方式中,所述相关信息还包括所 述消息的长度信息,所述确定所述消息的第一消息数量包括:根据所述长度信息以及所述 众核平台中的各个节点一次发送消息的最大长度信息,计算出所述消息的第一消息数量。
[0018] 第二方面,一种平衡节点负载的装置,应用于众核平台,所述装置包括:获取模块, 用于获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中已 分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消息 的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信 息;第一确定模块,用于对于任一所述消息,根据所述获得模块获得的所述消息的目的地址 信息和所述消息的源地址信息,确定将所述消息发送至所述目的地址信息对应的核所需经 过的节点;计算模块,用于根据所述第一确定模块确定出的所述消息的数量以及所述消息 所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;第二 确定模块,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消 息中确定所有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源 核或所述第一消息的目的核地址信息对应的目的核;第一选择模块,用于从所述第二确定 模块确定出的所述第一消息的源核或目的核中选择待迁移核;迁移模块,用于将所述第- 选择模块选择出的所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台 中选择出的相应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息,发 送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点,所述目标核对 应的节点所承载的负载量低于第二预设负载值。
[0019] 在第二方面的第一种可能实现方式中,还包括:检测模块,用于将所承载的负载量 低于所述第二预设负载值的节点作为第二节点,检测所述第二节点对应的核的状态标识, 所述状态标识包括空闲状态标识与非空闲状态标识;第三确定模块,用于将状态标识为空 闲状态标识的核确定为第二核;第二选择模块,用于从所述第二核中选择出所述目标核。
[0020] 在第二方面的第二种可能实现方式中,还包括:第三选择模块,用于将所承载的负 载量低于所述第二预设负载值的节点作为第二节点,从所述第二节点中选择所承载的负载 量最小的节点,并将所述所承载的负载量最小的节点对应的核作为所述目标核。
[0021] 结合第二方面、结合第二方面的第一种可能实现方式或者结合第二方面的第二种 可能实现方式,在第三种可能实现方式中,所述第一选择模块包括:比较单元,用于比较各 个所述第一消息的源核中消息的数量,获得消息数量最多的源核,并将所述消息数量最多 的源核或所述消息数量最多的源核对应的目的核作为所述待迁移核。
[0022] 在第二方面的第四种可能实现方式中,所述迁移模块具体用于:对于所述至少一 个所述执行程序中的每一所述执行程序,获得所述执行程序,将所述执行程序设置于相应 的所述目标核,并根据相应的所述目标核的地址信息和所述执行程序对应的待迁移核的负 载信息,对所述目标核的负载信息进行更新,将所述待迁移核中的所述执行程序删除。
[0023] 结合第二方面或者结合第二方面的第四种可能实现方式,在第五种可能实现方式 中,还包括:更新模块,用于在将所述待迁移核中的至少一个所述执行程序分别迁移至从所 述众核平台中选择出的相应的目标核之后,将目的地址信息为所述待迁移核的地址信息的 核,中的目的地址信息更新为相应的目标核的地址信息。
[0024] 结合第二方面或者结合第二方面的第四种可能实现方式,在第六种可能实现方式 中,还包括:第一设置模块,用于在所述待迁移核中设置反馈程序,所述反馈程序用于在所 述待迁移核接收到其他核发送的消息时,向所述其他核发送更新目的核地址信息的指示; 第二设置模块,用于在所述其他核中设置应答程序,所述应答程序用于在接收到所述更新 目的核地址信息的指示时,将所述其他核中与所述至少一个执行程序对应的消息的目的核 地址信息更新为相应目标核的地址信息。
[0025] 在第二方面的第七种可能实现方式中,所述第一核中还记录有应用程序类别,所 述迁移模块包括:获得单元,用于获得所述第一核中各个执行程序的执行程序类别;设置 单元,用于将同一执行程序类别的执行程序设置于同一所述目标核中;清除单元,用于将所 述第一核中所述同一执行程序类别的执行程序清除。
[0026] 结合第二方面、结合第二方面的第一种可能实现方式、结合第二方面的第二种可 能实现方式、结合第二方面的第三种可能实现方式或者结合第二方面的第七种可能实现方 式,在第八种可能实现方式中,还包括:第三确定模块,用于确定所述第一节点所承载的负 载量中的本地负载量;触发模块,用于当所述第一节点的本地负载量不大于所述第一节点 的预设本地负载值时,触发所述迁移模块。
[0027] 在第二方面的第九种实现方式中,还包括:检测模块,用于在检测到所述第一核发 送消息时,检测所述消息的相关信息,所述相关信息包括所述消息的目的地址信息和所述 消息的源地址信息;第四确定模块,用于确定所述消息的第一消息数量;增加模块,用于当 已经记录有具有相同源地址信息和目的地址信息的消息时,将所述具有相同源地址信息和 目的地址信息的消息对应的消息的数量增加所述第一消息数量;第三设置模块,用于当未 记录有具有相同源地址信息和目的地址信息的消息时,记录所述第一核发送消息的目的地 址信息和消息的源地址信息,并将其对应的消息数量设置为所述第一消息数量。
[0028] 结合第二方面的第九种实现方式,在第十种实现方式中,所述相关信息还包括所 述消息的长度信息,所述第四确定模块包括:计算单元,用于根据所述长度信息以及所述众 核平台中的各个节点一次发送消息的最大长度信息,计算出所述消息的第一消息数量。
[0029] 经由上述的技术方案可知,本发明实施例提供的平衡节点负载的方法中,第一核 中记录有负载信息,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址 信息和上述消息的源地址信息,对于第一核需要发送的任一消息,可以根据第一核记录的 各个消息的目的地址信息和源地址信息,确定出各个消息发送至相应的目的地址对应的核 所需经过的节点,从而可以计算出第一核中所有消息发送完毕后,各个节点所需承载的负 载量,将所承载的负载量超过其第一预设负载值的节点作为第一节点,当第一节点承载的 负载量大于第一预设负载值时,表明第一节点所承载的负载量过多,甚至超载,此时会影响 CPU的性能,从各个消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信 息对应的源核或第一消息的目的核地址信息对应的目的核,可以从第一消息的源核或目的 核中选择待迁移核,将该待迁移核中的至少一个执行程序分别迁移至从众核平台选择出的 目标核,由于目标核对应节点所承载的负载量低于第二预设负载值,所以当将上述至少一 个执行程序迁移至目标核后,目标核对应节点所承载的负载量在一个合适的范围内,目标 核将上述至少一个执行程序对应的消息发送中至相应的目的地址信息对应的核所需经过 的节点不包括第一节点,这样就可以降低第一节点的负载量,从而提升CPU的性能。

【专利附图】

【附图说明】
[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0031] 图1为现有技术中二维Mesh网络芯片内布局的示意图;
[0032]图2为本发明实施例提供的一种平衡节点负载的方法的流程示意图;
[0033]图3为本发明实施例提供的一种平衡节点负载的方法的另一实施例的方法流程 不意图;
[0034]图4为本发明实施例提供的一种平衡节点负载的方法又一实施例的方法流程示 意图;
[0035]图5为本发明实施例提供的一种平衡节点负载的方法的另一方法流程示意图; [0036]图6为本发明实施例提供的一种根据默认路由算法得到的各个节点的远端负载 量以及本地负载量的方法流程图;
[0037]图7为本发明实施例提供的平衡节点负载的方法中从众核平台中选择目标核的 一种实现方法的流程示意图;
[0038]图8为本发明实施例提供的平衡节点负载的方法中将所述待迁移核中的至少一 个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的一种实现方法的流程 示意图;
[0039]图9为本发明实施例提供的平衡节点负载的方法中第一核记录负载信息的一种 实现方法的流程示意图;
[0040]图1〇为本发明实施例提供的一种平衡节点负载的示意图;
[0041]图11为本发明实施例提供的一种平衡节点负载的装置的结构示意图;
[0042]图12为本发明实施例提供的一种平衡节点负载的装置的另一实施例的装置结构 示意图;
[0043] 图13为本发明实施例提供的一种平衡节点负载的装置又一实施例的装置结构示 意图;
[0044]图14为本发明实施例提供的一种平衡节点负载的装置的另一装置结构示意图;
[0045]图15为本发明实施例提供的终端的结构示意图。

【具体实施方式】
[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0047]请参阅附图2,为本发明实施例提供的一种平衡节点负载的方法的流程示意图,该 方法应用于众核平台,该方法包括:
[0048]步骤S2〇l :获取该众核平台中的第一核内记录的负载信息。
[0049] 第一核包括众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要 发送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生 成与该消息相关的信息,与该消息相关的信息可以包括生成消息的指令、该消息或者接收 消息的指令。
[0050] 众核平台包括:空闲核与已分配有执行程序的核。空闲核是指未分配有执行程序 的核。
[0051] 第一核可以包括一个或多个核,将多个核中的每一个核称为核A,则核A中都记录 有核A需要发送的消息的数量、核A需要发送消息的目的地址信息和核A需要发送消息的 源地址信息,其中需要发送消息的源地址信息就是核A的地址信息。
[0052]步骤S202 :对于任一上述消息,根据上述消息的目的地址信息和上述消息的源地 址信息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
[0053]步骤S2〇3 :根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完 成所有消息的发送时,各个节点所需承载的负载量。
[0054] 步骤S204 :将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上 述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或 第一消息的目的核地址信息对应的目的核。
[0055]第一预设负载值可以为节点的消息负载阈值,即节点所能承载消息数量的最大 值,当然,第一预设负载值也可以低于节点的消息负载阈值。
[0056] 第一核可以包括一个或多个核,每一个核对应的第一预设负载值可能不同,也可 能相同,每一个核的第一预设负载值得大小可以由众核平台分配,在此本发明不作具体限 定。
[0057] 步骤S205 :从第一消息的源核或目的核中选择待迁移核。
[0058] 步骤S206 :将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出 的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信 息对应的核,所需经过的节点不包括第一节点。
[0059] 待迁移核可以包括一个或多个执行程序,可以将待迁移核中需要迁移的执行程 序分别迁移至不同的核中,也可以将待迁移核中需要迁移的执行程序迁移至同一核中,也 可以将待迁移核中需要迁移的执行程序部分迁移至同一个核中,部分分别迁移至不同的核 中,本发明实施例对此不作具体限定。
[0060] 综上,目标核可能是一个核,也可能是多个核,但是目标核对应的节点所承载的负 载量低于第二预设负载值。
[0061] 当目标核对应的节点所承载的负载量低于第二预设负载值时,可能表明需要经由 目标核对应的节点转发的消息负载数量低于该目标核对应节点的第一预设负载值或者目 标核对应的节点所承载的负载量为空,优选的,目标核为空闲核。
[0062] 第二预设负载值可以与第一预设负载值相同,也可以低于第一预设负载值。
[0063] 本发明实施例提供的平衡节点负载的方法中,第一核中记录有负载信息,负载信 息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信 息,对于第一核需要发送的任一消息,可以根据第一核记录的各个消息的目的地址信息和 源地址信息,确定出各个消息发送至相应的目的地址对应的核所需经过的节点,从而可以 计算出第一核中所有消息发送完毕后,各个节点所需承载的负载量,将所承载的负载量超 过其第一预设负载值的节点作为第一节点,当第一节点承载的负载量大于第一预设负载值 时,表明第一节点所承载的负载量过多,甚至超载,此时会影响CPU的性能,从各个消息中 确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息 的目的核地址信息对应的目的核,可以从第一消息的源核或目的核中选择待迁移核,将该 待迁移核中的至少一个执行程序分别迁移至从众核平台选择出的目标核,由于目标核对应 节点所承载的负载量低于第二预设负载值,所以当将上述至少一个执行程序迁移至目标核 后,目标核对应节点所承载的负载量在一个合适的范围内,目标核将上述至少一个执行程 序对应的消息发送中至相应的目的地址信息对应的核所需经过的节点不包括第一节点,这 样就可以降低第一节点的负载量,从而提升CPU的性能。
[0064] 请参阅图3,为本发明实施例提供的一种平衡节点负载的方法的另一实施例的方 法流程示意图,该方法应用于众核平台,该方法包括:
[0065] 步骤S301 :获取众核平台中的第一核内记录的负载信息。
[0066] 第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发 送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成 与上述消息相关的信息。
[0067] 步骤S302 :对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信 息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
[0068] 步骤S303 :根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完 成所有消息的发送时,各个节点所需承载的负载量。
[0069] 步骤S304 :将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上 述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或 第一消息的目的核地址信息对应的目的核。
[0070] 步骤S305 :从第一消息的源核或目的核中选择待迁移核。
[0071] 步骤S3〇6 :将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出 的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信 息对应的核,所需经过的节点不包括所述第一节点。
[0072]由于待迁移核中的至少一个执行程序分别迁移至众核平台中选择出的相应的目 的核,所以接收到某一执行程序的目的核可以执行与该某一执行程序对应的功能。
[0073] 目标核对应的节点所承载的负载量低于第二预设负载值。
[0074] 步骤S307 :将目的地址信息为待迁移核的地址信息的核中的目的地址信息更新 为相应的目标核的地址信息。
[0075] 如果没有步骤S307,假设执行程序A迁移至目标核A,且源核A需要将消息A发送 至包含执行程序A的核,那么执行程序A对应的待接收消息的目的地址信息为目标核A的 地址信息,由于源核A中消息A对应的目的核地址信息并没有改变,仍为待迁移核,所以当 消息A发送至待迁移核时,待迁移核可以向源核A发送"目标地址信息已经更新为目标核A" 的消息,以便源核A可以正确的将消息A发送至目标核A中,即当待迁移核中的至少一个执 行程序分别迁移至相应的目标核后,还需要向其他源核发送相应的变更地址信息的消息。
[0076] 步骤S307可以避免待迁移核发送目标地址信息己经更新为目标核A的消息,因为 步骤S307是主动将源核A中消息A对应的目的核地址信息进行了更新,所以当源核A发送 消息A时,无需再次发送至待迁移核,从而减轻了节点的所承载的负载量,进一步的提高了 CPU的效率。
[0077] 请参阅图4,为本发明实施例提供的一种平衡节点负载的方法又一实施例的方法 流程示意图,该方法应用于众核平台,该方法包括:
[0078] 步骤S401 :获取众核平台中的第一核内记录的负载信息。
[0079] 第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发 送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成 与上述消息相关的信息。
[0080] 步骤S402 :对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信 息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
[0081] 步骤S403 :根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完 成所有消息的发送时,各个节点所需承载的负载量。
[0082] 步骤S404 :将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上 述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或 第一消息的目的核地址信息对应的目的核。
[0083] 步骤S405 :从第一消息的源核或目的核中选择待迁移核。
[0084] 步骤S406 :将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出 的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信 息对应的核,所需经过的节点不包括所述第一节点。
[0085]目标核对应的节点所承载的负载量低于第二预设负载值。
[0086] 步骤S4〇7 :在待迁移核中设置反馈程序,反馈程序用于在待迁移核接收到其他核 发送的消息时,向上述其他核发送更新目的核地址信息的指示。
[0087] 步骤S408 :在上述其他核中设置应答程序,应答程序用于在接收到所述更新目的 核地址信息的指示时,将上述其他核中与上述至少一个执行程序对应的消息的目的核地址 信息更新为相应目标核的地址信息。
[0088] 本发明实施例在待迁移核中设置反馈程序,在上述其他核中设置应答程序,可以 使上述其他核只需要向待迁移核发送一次消息,即可根据待迁移核反馈的更新目的核地址 信息的指示,对相应的消息的目的核地址信息进行更新,不必每次都向待迁移核发送消息, 从而减轻了节点所承载的负载量,进一步提高了 CPU的性能。
[0089] 请参阅图5,为本发明实施例提供的一种平衡节点负载的方法的另一方法流程示 意图,该方法应用于众核平台,该方法包括:
[0090] 步骤S501 :获取众核平台中的第一核内记录的负载信息。
[0091] 第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发 送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成 与上述消息相关的信息。
[0092] 步骤S5〇2 :对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信 息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
[0093] 步骤S503 :根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完 成所有消息的发送时,各个节点所需承载的负载量。
[0094]步骤S504 :将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上 述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或 第一消息的目的核地址信息对应的目的核。
[0095] 步骤S505 :从第一消息的源核或目的核中选择待迁移核。
[0096] 步骤S506 :确定第一节点所承载的负载量中的本地负载量。
[0097]可以根据记录的每一核中的消息对应的源核地址信息、目的核地址信息以及消息 的数量,确定出各个节点的本地负载量以及远端负载量。下面举一根据默认路由算法得到 各个节点所承载的负载量的过程,以二维Mesh网络且节点先比较X坐标再比较y坐标为例 进行说明(当然也可以先考虑y坐标,在考虑X坐标,该过程与先考虑 X坐标,在考虑y坐标 相同,此处不再一一赘述)。
[0098]消息1的源核地为(0,0),目的核地址为(1,1),消息1的数量为10。消息2的源 核地址为(0, 0),目的核地址为(〇, 〇,消息2的数量为500。消息3的源核地址为(丨,丨),目 的核地址为(0, 0),消息3的数量为700。消息4的源核地址为(1,1),目的核地址为(0, 1 ), 消息4的数量为600。
[00"]请参阅图6,为本发明实施例提供的一种根据默认路由算法得到的各个节点的远 端负载量以及本地负载量的方法流程图,该方法包括:
[0100]步骤S601 :根据记录的消息1的源核地址(〇, 〇)、目的核地址(丨,丨)以及消息1的 数量10,将节点(0, 0)的本地消息负载加10,并比较节点(0, 0)的地址与目的核地址(丨,i ), 得知消息1向右发送。 ^101]步骤S602 :比较节点(1,0)与目的核对应的节点(1,1),得知消息1向下发送,将 节点(1,〇)的远端负载加10,比较节点(1,;〇与目的核(1,υ,得知将消息1发送至目的核 (1,1)。
[0102]步骤S6〇3 :节点(1,1)收到消息后,经过对比目的核的地址信息与节点(丨,丨)的地 址信息一致,把消息发送到核(hl),并将节点(1,η的本地消息负载加 1〇。
[0=3]对于消息2、消息3以及消息4,可以执行与步骤S601至步骤S603相应的步骤,从 而获得各个节点的本地负载量以及远端负载量,在此本发明实施例对此不作具体限定。 [0104]根据上述方法可以得出,核(〇,〇)的远端消息负载的数量为〇,本地负载量为 1210 ;核(1,〇)的远端消息负载的数量为1〇,本地负载量为〇 ;核(〇, υ的远端消息负载的 数量为1300,本地负载量为5〇0 ;核α, 1)的远端消息负载的数量为0,本地负载量为1310。
[0105] 步骤S506可以在步骤S505之前,也可在步骤S505之后。
[0106] 步骤S5〇7 :当第一节点的本地负载量不大于第一节点的预设本地负载值时,执行 将待迁移核中的至少一个上述执行程序分别迀移至从众核平台中选择出的相应的目标核 的操作。
[0107] 因为当第一节点的本地负载量大于第一节点的预设本地负载值时,很难甚至是不 能将第一节点的本地负载量调低,所以当第一节点的本地负载量大于第一节点的预设本地 负载值时,无需在执行步骤S508。当然也可以继续执行步骤S508,以便将第一节点的远端 负载量调低一些,从而缓解第一节点负载量过多的状态。
[0108] 步骤S507可以在步骤S505之前,也可在步骤S505之后,对此本发明实施例对此 不作具体限定,但是步骤S507必须在步骤S 5〇6之后。
[0109] 步骤S508 :将待迁移核中的至少一个执行程序分别迀移至从众核平台中选择出 的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信 息对应的核,所需经过的节点不包括所述第一节点。
[0110] 目标核对应的节点所承载的负载量低于第二预设负载值。
[0111] 可以理解的是,上述任一实施例中当将待迁移核中的至少一个执行程序分别迁移 至相应的目标核中后,可能导致目标核对应的节点承载的负载量过多,所以可以将第二预 设负载值设置在一个合理的范围内,以便当相应的执行程序迁移至目标核后,目标核对应 的节点所承载的负载量仍低于第一预设负载值,或者在将待迁移核中的至少一个执行程序 分别迁移至相应的目标核中后,检查目标核所承载的负载量是否大于其对应的第一预设负 载值,如果大于,则可以将目标核中的执行程序进行迁移,或者取消将待迁移核中的执行程 序迁移至目标核的步骤,以使待迁移核重新选择其他目标核。
[0112] 上述任一实施例中从众核平台中选择目标核的方法有多种,请参阅图7,为本发明 实施例提供的平衡节点负载的方法中从众核平台中选择目标核的一种实现方法的流程示 意图,该实现方法包括:
[0113] 步骤S701 :将所承载的负载量低于第二预设负载值的节点作为第二节点,检测第 二节点对应的核的状态标识。 _
[0114] 状态标识包括空闲状态标识与非空闲状态标识。
[0115] 步骤S702 :将状态标识为空闲状态标识的核确定为第二核。
[0116] 步骤S703 :从第二核中选择出目标核。 -
[0117] 本发明实施例选择状态标识为空闲状态标识的空闲核作为目标核,这样在空闲核 接收执行程序后,空闲核所承载的负载量一般不会超过其对应的第一预设负载值,所以优 选的目标核为空闲核。 _
[0118] 本发明实施例提供的平衡节点负载的方法中从众核平台中选择目标核的另一种 实现方法为:将所承载的负载量低于第二预设负载值的节点作为第二、节点,从第二节点中 选择所承载的负载量最小的节点,并将所承载的负载量最小的节点对应的核作为目标核。
[0119] 当上述实施例中"从众核平台中选择出的相应的目标核"为一个目标核时,目标核 可以为上述獅細減量最小的节点对应賊;当上述实酬巾"从嫌平台中选择出 的相应的目标核,,为至少一个核时,可以将第二节点所承载的负载量进行排序,然后选择所 承载的负载量相对较少的核作为目标核。
[0120] 上述任一实施例中从第一消息的源核或目的核中选择待迁移核的方法有多种,本 发明实施例提供的平衡节点负载的方法中从第一消息的源核或目的核中选择待迁移核的 一种实现方法为:比较各个第一消息的源核中消息的数量,获得消息数量最多的源核,并将 消息数量最多的源核或消息数量最多的源核对应的目的核作为待迁移核。
[0121] 假设第一消息包括:消息B、消息C和消息D,消息B对应的源核为源核B、目的核 为目的核B,消息C对应的源核为源核C、目的核为目的核C,消息D对应的源核为源核D、目 的核为目的核D,且消息B的数量为10、消息C的数量为20、消息D的数量为30,假设第一 节点所承载的负载量超过其对应的第一预设负载值为30,那么如果将消息D对应的源核D 或目的核D作为待迁移核,只需要迁移一个待迁移核即可使第一节点所承载的负载不大于 第一预设负载值,如果将源核B或目的核B作为待迁移核,那么还需要将源核c或目的核C 作为待迁移核,即需要至少迁移两次。
[0122] 上述任一实施例中将待迁移核中的至少一个上述执行程序分别迁移至从众核平 台中选择出的相应的目标核的方法有多种,本发明实施例提供的平衡节点负载的方法中将 待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的 一种实现方法为:对于上述至少一个上述执行程序中的每一执行程序,获得该执行程序,将 该执行程序设置于相应的目标核,并根据相应的目标核的地址信息和该执行程序对应的待 迁移核的负载信息,对目标核的负载信息进行更新,将待迁移核中的该执行程序删除。
[0123] 为了节省各个核中的空间,优选地,可以将待迁移核中的执行程序删除。
[0124] 上述任一实施例中的第一核中还可以记录有应用程序类别,此时上述任一实施例 中将待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标 核的实现方法有多种,请参阅图8,为本发明实施例提供的平衡节点负载的方法中将所述待 迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的一 种实现方法的流程示意图,该实现方法包括:
[0125] 步骤S801 :获得第一核中各个执行程序的执行程序类别。
[0126] 步骤S802 :将同一执行程序类别的执行程序设置于同一目标核中。
[0127] 步骤S803 :将第一核中上述同一执行程序类别的执行程序清除。
[0128] 上述任一实施例中第一核记录负载信息的方法有多种,请参阅图9,为本发明实施 例提供的平衡节点负载的方法中第一核记录负载信息的一种实现方法的流程示意图,该实 现方法包括:
[0129] 步骤S901 :在检测到第一核发送消息时,检测上述消息的相关信息。
[0130] 上述相关信息包括上述消息的目的地址信息和上述消息的源地址信息。
[0131] 步骤S902 :确定上述消息的第一消息数量。
[0132] 上述相关信息还可以包括上述消息的长度信息,此时确定上述消息的第一消息数 量的方法可以为根据上述长度信息以及众核平台中的各个节点一次发送消息的最大长度 信息,计算出上述消息的第一消息数量。
[0133] 将上述消息的长度信息除以上述最大长度信息所得的商进行向上取整,得到的 值,可以为第一消息数量。
[0134] 当然根据不同的实际情况,相关信息可以不包括上述消息的长度信息。
[0135]步骤S9〇3:当已经记录有具有相同源地址信息和目的地址信息的消息时,将上述 具有相同源地址信息和目的地址信息的消息对应的消息的数量加所述第一消息数量。
[0136] 步骤S904 :当未记录有具有相同源地址信息和目的地址信息的消息时,记录所述 第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为所述 第一消息数量。
[0137] 上述任一实施例中,优选的,可以周期性的执行实施例中的各个步骤,或者设定预 设时间,在当前时间到达预设时间时,执行上述实施例中的步骤。
[0138] 为了本领域人员更加理解本发明实施例,下面举一具体例子对平衡节点负载的过 程进行说明。
[0139] 请参阅图10,为本发明实施例提供的一种平衡节点负载的示意图。
[0140] 图10中包括节点(〇,〇)、节点(1,0)、节点(2,0)、节点(0, 1)、节点(1,1)、节点 (2, 1)、节点(0, 2)、节点(1,2)以及节点(2, 2),图10中还画出了消息记录单元在内存中为 各个节点保留的空间,用箭头的方式表示节点与内存空间的对应关系。图10中仅用位置坐 标表示各个节点的地址信息。
[0141] 假设节点(1,2)的远端消息负载阈值小于节点(1,2)的远端负载量,即节点(1, 2) 过载,而节点(1,2)包括10条远端消息负载,这10条远端消息是由核(0,0)发送至核 (2, 2),假设该10条远端消息的传输路径为:核(0,0)、节点(〇,1)、节点(0, 2)、节点(1,2)、 节点(2,2)以及核(2,2),可知该消息从核(0,0)发送至核(2,2)的过程中需要经过节点 (1,2),为了使节点(1,2)不过载,此时可以选择一空闲节点(2,0),将节点(2, 2)的执行程 序(或将节点(0, 0)的执行程序)迁移至节点(2,0),以使该10条远端消息的传输路径为:核 (〇, 0)、节点(1,〇)以及节点(2, 0),这样可以避免这10条消息经过节点(1,2),从而可以使 节点(1,2)上的远端负载量降低,且使节点(2, 0)的远端消息负载从0变为10,从而平衡了 节点的消息负载。
[0142] 在改变传输路径之后,传输路径中出现了新的节点,例如节点(1,〇),这个节点很 有可能出现负载量过多的情况,所以优选的,再次计算各个节点所承载的负载量,并判断各 个节点是否超过其对应的第一预设负载值
[0143] 上述实施例中都是以二维的Mesh网络为例进行说明的,本发明实施例还可以应 用于三维Mesh网络以及至少三维Mesh网络等等。
[0144] 现有技术中的核分为两种,一种是宏内核,一种是微内核,上述实施例可以应用于 这两种内核。
[0145] 上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式 的装置实现,因此本发明还公开了多种装置,下面给出具体的实施例进行详细说明;
[0146] 请参阅图11,为本发明实施例提供的一种平衡节点负载的装置的结构示意图,该 装置应用于众核平台,该装置包括:
[0147] 获取模块1101、第一确定模块1102、计算模块1103、第二确定模块11〇4、第一选择 模块1105以及迁移模块1106,其中:
[0148] 获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
[0149] 第一核包括上述众核平台中已分配有执行程序的核,负载信息包括第一核中需要 发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生 成与上述消息相关的信息。
[0150] 第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息 的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应 的核所需经过的节点。
[0151] 计算模块1103,用于根据第一确定模块11〇2确定出的上述消息的数量以及上述 消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
[0152] 第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第 一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对 应的源核或第一消息的目的核地址信息对应的目的核。
[0153] 第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的 核中选择待迁移核。
[0154] 迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述 执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至 少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点 不包括上述第一节点。
[0155] 上述目标核对应的节点所承载的负载量低于第二预设负载值。
[0156] 本发明实施例提供的平衡节点负载的装置中,首先通过获取模块1101获取第一 核内记录的负载信息,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地 址信息和上述消息的源地址信息,第一确定模块1102对于第一核需要发送的任一消息,可 以根据第一核记录的各个消息的目的地址信息和源地址信息,确定出各个消息发送至相应 的目的地址对应的核所需经过的节点,从而可以由计算模块1103计算出在第一核中所有 消息发送完毕后,各个节点所需承载的负载量,第二确定模块1104将所承载的负载量超过 其第一预设负载值的节点作为第一节点,当第一节点承载的负载量大于第一预设负载值 时,表明第一节点所承载的负载量过多,甚至超载,此时会影响CPU的性能,从各个消息中 确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息 的目的核地址信息对应的目的核,第一选择模块1105可以从第一消息的源核或目的核中 选择待迁移核,迁移模块1106将该待迁移核中的至少一个执行程序分别迁移至从众核平 台选择出的目标核,由于目标核对应节点所承载的负载量低于第二预设负载值,所以当将 上述至少一个执行程序迁移至目标核后,目标核对应节点所承载的负载量在一个合适的范 围内,目标核将上述至少一个执行程序对应的消息发送中至相应的目的地址信息对应的核 所需经过的节点不包括第一节点,这样就可以降低第一节点的负载量,从而提升CPU的性 能。
[0157] 请参阅图12,为本发明实施例提供的一种平衡节点负载的装置的另一实施例的装 置结构示意图,该装置应用于众核平台,该装置包括:
[0158] 获取模块1101、第一确定模块1102、计算模块1103、第二确定模块11〇4、第一选择 模块1105、迁移模块1106以及更新模块1201,其中:
[0159] 获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
[0160] 第一核包括上述众核平台中己分配有执行程序的核,负载信息包括第一核中需要 发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生 成与上述消息相关的信息。
[0161] 第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息 的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应 的核所需经过的节点。
[0162] 计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述 消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
[0163] 第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第 一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对 应的源核或第一消息的目的核地址信息对应的目的核。
[0164] 第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的 核中选择待迁移核。
[0165] 迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述 执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至 少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点 不包括上述第一节点。
[0166] 上述目标核对应的节点所承载的负载量低于第二预设负载值。
[0167] 更新模块1201,用于在将上述待迁移核中的至少一个上述执行程序分别迁移至从 上述众核平台中选择出的相应的目标核之后,将目的地址信息为上述待迁移核的地址信息 的核,中的目的地址信息更新为相应的目标核的地址信息。
[0168] 请参阅图13,为本发明实施例提供的一种平衡节点负载的装置又一实施例的装置 结构示意图,该装置应用于众核平台,该装置包括 :
[0169] 获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择 模块1105、迁移模块1106、第一设置模块1301以及第二设置模块1302,其中:
[0170] 获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
[0171] 第一核包括上述众核平台中已分配有执行程序的核,负载信息包括第一核中需要 发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生 成与上述消息相关的信息。
[0172] 第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息 的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应 的核所需经过的节点。
[0173] 计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述 消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
[0174] 第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第 一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对 应的源核或第一消息的目的核地址信息对应的目的核。
[0175] 第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的 核中选择待迁移核。
[0176] 迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述 执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至 少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点 不包括上述第一节点。
[0177] 上述目标核对应的节点所承载的负载量低于第二预设负载值。
[0178] 第一设置模块1301,用于在待迁移核中设置反馈程序,反馈程序用于在上述待迁 移核接收到其他核发送的消息时,向上述其他核发送更新目的核地址信息的指不。
[0179] 第二设置模块1302,用于在上述其他核中设置应答程序,应答程序用于在接收到 上述更新目的核地址信息的指示时,将上述其他核中与上述至少一个执行程序对应的消息 的目的核地址信息更新为相应目标核的地址信息。 >
[0180] 请参阅图14,为本发明实施例提供的一种平衡节点负载的装置的另一装置结构示 意图,该装置应用于众核平台,该装置包括:
[0181] 获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择 模块1105、第三确定模块1401、触发模块1402以及迁移模块1106,其中:
[0182] 获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
[0183] 第一核包括上述众核平台中已分配有执行程序的核,上述负载信息包括第一核中 需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用 于生成与上述消息相关的信息。
[0184] 第一确定模块1102,用于对于任一上述消息,根据上述获得模块获得的上述消息 的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应 的核所需经过的节点。
[0185] 计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述 消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
[0186] 第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第 一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对 应的源核或第一消息的目的核地址信息对应的目的核。
[0187] 第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的 核中选择待迁移核。
[0188] 第三确定模块1401,用于确定第一节点所承载的负载量中的本地负载量;
[0189] 触发模块1402,用于当第一节点的本地负载量不大于第一节点的预设本地负载值 时,触发迁移模块1106。
[0190] 迁移模块1106,用于将第一选择模块1105选择出的上述待迁移核中的至少一个 上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上 述至少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的 节点不包括第一节点,上述目标核对应的节点所承载的负载量低于第二预设负载值。
[0191] 上述任一装置实施例中还可以包括:检测模块,用于将所承载的负载量低于第二 预设负载值的节点作为第二节点,检测第二节点对应的核的状态标识,状态标识包括空闲 状态标识与非空闲状态标识;第三确定模块,用于将状态标识为空闲状态标识的核确定为 第二核;第二选择模块,用于从第二核中选择出上述目标核。
[0192] 上述任一装置实施例中还可以包括:第三选择模块,用于将所承载的负载量低于 第二预设负载值的节点作为第二节点,从第二节点中选择所承载的负载量最小的节点,并 将上述所承载的负载量最小的节点对应的核作为上述目标核。
[0193] 上述任一装置实施例中的第一选择模块可以包括:比较单元,用于比较各个第一 消息的源核中消息的数量,获得消息数量最多的源核,并将上述消息数量最多的源核或上 述消息数量最多的源核对应的目的核作为上述待迁移核。 ^
[0194] 上述任一装置实施例中的迁移模块可以具体用于对于上述至少一个上述执行程 序中的每一上述执行程序,获得上述执行程序,将上述执行程序设置于相应的上述目标核, 并根据相应的上述目标核的地址信息和上述执行程序对应的待迁移核的负载信息,对上述 目标核的负载信息进行更新,将上述待迁移核中的上述执行程序删除。
[0195] 上述任一装置实施例中的第一核还可以记录有应用程序类别,此时上述任一装置 实施例中的迁移模块可以包括:获得单元,用于获得第一核中各个执行程序的执行程序类 另IJ ;设置单元,用于将同一执行程序类别的执行程序设置于同-上述目标核中;清除单元, 用于将第一核中上述同一执行程序类别的执行程序清除。
[0196] 上述任一装置实施例中还可以包括:检测模块,用于在检测到第一核发送消息时, 检测上述消息的相关信息,上述相关信息包括上述消息的目的地址信息和上述消息的源地 址信息;第四确定模块,用于确定上述消息的第一消息数量;增加模块,用于当己经记录有 具有相同源地址信息和目的地址信息的消息时,将上述具有相同源地址信息和目的地址信 息的消息对应的消息的数量增加第一消息数量;第三设置模块,用于当未记录有具有相同 源地址信息和目的地址信息的消息时,记录第一核发送消息的目的地址信息和消息的源地 址信息,并将其对应的消息数量设置为第一消息数量。
[0197] 上述任一装置实施例中的第四确定模块可以包括:计算单元,用于根据上述长度 信息以及上述众核平台中的各个节点一次发送消息的最大长度信息,计算出上述消息的第 一消息数量。
[0198] 本发明实施例提供的一种终端,该终端可用于执行上述任一实施例所述的方法。 请参阅图15,为本发明实施例提供的终端的结构示意图。
[0199] 该终端可以为服务器、平板电脑、PDA (Personal Digital Assistant,个人数字助 理)、P0S (Point of Sales,销售终端)或车载电脑等终端设备,以终端为服务器为例,图15 示出的是与本发明实施例提供的终端相关的服务器的部分结构的框图。参考图I 5,服务器 包括存储器1510以及处理器1520等部件。本领域技术人员可以理解,图15中示出的服务 器结构只做实现方式的举例,并不构成对服务器的限定,可以包括比图示更多或更少的部 件,或者组合某些部件,或者不同的部件布置。
[0200] 下面结合图15对服务器中的各个构成部件进行具体的介绍:
[0201] 存储器1510可用于存储软件程序以及模块,处理器1520通过运行存储在存储器 1510的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器1510可 主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需 的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使 用所创建的数据(比如音频数据、电话本等)等。此外,存储器1510可以包括高速随机存取 存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失 性固态存储器件。
[0202] 处理器1520是服务器的控制中心,利用各种接口和线路连接整个服务器的各个 部分,通过运行或执行存储在存储器1510内的软件程序和/或模块,以及调用存储在存储 器1δ1〇内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选 的,处理器152〇可包括一个或多个处理单元;优选的,处理器1520可集成应用处理器和调 制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处 理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1520 中。
[0203] 在本发明实施例中,该终端所包括处理器具有以下功能:
[0204]获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台 中已分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述 消息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的 信息;对于任一所述消息,根据所述消息的目的地址信息和所述消息的源地址信息,确定将 所述消息发送至所述目的地址信息对应的核所需经过的节点;根据所述消息的数量以及所 述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载 量;将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所 有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第 一消息的目的核地址信息对应的目的核;从所述第一消息的源核或目的核中选择待迁移 核;将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相 应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息发送中至相应的目 的地址信息对应的核所需经过的节点不包括所述第一节点,所述目标核对应的节点所承载 的负载量低于第二预设负载值。
[0205]该终端包括的存储器存储有第一核中需要发送的消息的数量、所述消息的目的地 址信息和所述消息的源地址信息。
[0206]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。
[0207]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个 实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间 存在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在 涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些 要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设 备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排 除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0208]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程ROM、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。
[0209] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
【权利要求】
1. 一种平衡节点负载的方法,应用于众核平台,其特征在于,所述方法包括: 获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中 己分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消 息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信 息; 对于任一所述消息,根据所述消息的目的地址信息和所述消息的源地址信息,确定将 所述消息发送至所述目的地址信息对应的核所需经过的节点; 根据所述消息的数量以及所述消息所需经过的节点的信息,计算出完成所有消息的发 送时,各个节点所需承载的负载量; 将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所 有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第 -消息的目的核地址信息对应的目的核; 从所述第一消息的源核或目的核中选择待迁移核; 将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的 相应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息,发送至相应的 目的地址信息对应的核,所需经过的节点不包括所述第-节点,所述目标核对应的节点所 承载的负载量低于第二预设负载值。
2. 根据权利要求1所述方法,其特征在于,从所述众核平台中选择目标核包括: 将所承载的负载量低于所述第二预设负载值的节点作为第二节点,检测所述第二节点 对应的核的状态标识,所述状态标识包括空闲状态标识与非空闲状态标识; 将状态标识为空闲状态标识的核确定为第二核; 从所述第二核中选择出所述目标核。
3. 根据权利要求1所述方法,其特征在于,从所述众核平台中选择目标核包括: 将所承载的负载量低于所述第二预设负载值的节点作为第二节点,从所述第二节点中 选择所承载的负载量最小的节点,并将所述所承载的负载量最小的节点对应的核作为所述 目标核。
4. 根据权利要求1至3任一所述方法,其特征在于,所述从所述第一消息的源核或目的 核中选择待迁移核包括: 比较各个所述第一消息的源核中消息的数量,获得消息数量最多的源核,并将所述消 息数量最多的源核或所述消息数量最多的源核对应的目的核作为所述待迁移核。
5. 根据权利要求1所述方法,其特征在于,所述将所述待迁移核中的至少一个所述执 行程序分别迁移至从所述众核平台中选择出的相应的目标核包括: 对于所述至少一个所述执行程序中的每一所述执行程序,获得所述执行程序,将所述 执行程序设置于相应的所述目标核,并根据相应的所述目标核的地址信息和所述执行程序 对应的待迁移核的负载信息,对所述目标核的负载信息进行更新,将所述待迁移核中的所 述执行程序删除。
6. 根据权利要求1或5所述方法,其特征在于,在所述将所述待迁移核中的至少一个所 述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之后,还包括: 将目的地址信息为所述待迁移核的地址信息的核,中的目的地址信息更新为相应的目 标核的地址信息。
7. 根据权利要求1或5所述方法,其特征在于,在将所述待迁移核中的至少一个所述执 行程序分别迁移至从所述众核平台中选择出的相应的目标核之后,还包括: 在所述待迁移核中设置反馈程序,所述反馈程序用于在所述待迁移核接收到其他核发 送的消息时,向所述其他核发送更新目的核地址信息的指示; 在所述其他核中设置应答程序,所述应答程序用于在接收到所述更新目的核地址信息 的指示时,将所述其他核中与所述至少一个执行程序对应的消息的目的核地址信息更新为 相应目标核的地址信息。
8. 根据权利要求1所述方法,其特征在于,所述第一核中还记录有应用程序类别,所述 将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应 的目标核包括: 获得所述第一核中各个执行程序的执行程序类别; 将同一执行程序类别的执行程序设置于同一所述目标核中; 将所述第一核中所述同一执行程序类别的执行程序清除。
9. 根据权利要求1、2、3和8任一所述方法,其特征在于,在将所述待迁移核中的至少一 个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之前,还包括: 确定所述第一节点所承载的负载量中的本地负载量; 当所述第一节点的本地负载量不大于所述第一节点的预设本地负载值时,执行所述将 所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的 目标核的操作。
10. 根据权利要求1所述方法,其特征在于,所述第一核记录负载信息包括: 在检测到所述第一核发送消息时,检测所述消息的相关信息,所述相关信息包括所述 消息的目的地址信息和所述消息的源地址信息; 确定所述消息的第一消息数量; 当已经记录有具有相同源地址信息和目的地址信息的消息时,将所述具有相同源地址 信息和目的地址信息的消息对应的消息的数量增加所述第一消息数量; 当未记录有具有相同源地址信息和目的地址信息的消息时,记录所述第一核发送消息 的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为所述第一消息数量。
11. 根据权利要求10所述方法,其特征在于,所述相关信息还包括所述消息的长度信 息,所述确定所述消息的第一消息数量包括: 根据所述长度信息以及所述众核平台中的各个节点一次发送消息的最大长度信息,计 算出所述消息的第一消息数量。
12. -种平衡节点负载的装置,应用于众核平台,其特征在于,所述装置包括: 获取模块,用于获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所 述众核平台中已分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的 数量、所述消息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述 消息相关的信息; 第一确定模块,用于对于任一所述消息,根据所述获得模块获得的所述消息的目的地 址信息和所述消息的源地址信息,确定将所述消息发送至所述目的地址信息对应的核所需 经过的节点; 计算模块,用于根据所述第一确定模块确定出的所述消息的数量以及所述消息所需经 过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量; 第二确定模块,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点, 从所述消息中确定所有经过所述第一节点的第一消息以及所述第一消息的源核地址信息 对应的源核或所述第一消息的目的核地址信息对应的目的核; 第一选择模块,用于从所述第二确定模块确定出的所述第一消息的源核或目的核中选 择待迁移核; 迁移模块,用于将所述第一选择模块选择出的所述待迁移核中的至少一个所述执行程 序分别迁移至从所述众核平台中选择出的相应的目标核,以便所述目标核将所述至少一个 所述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括 所述第一节点,所述目标核对应的节点所承载的负载量低于第二预设负载值。
13. 根据权利要求12所述装置,其特征在于,还包括: 检测模块,用于将所承载的负载量低于所述第二预设负载值的节点作为第二节点,检 测所述第二节点对应的核的状态标识,所述状态标识包括空闲状态标识与非空闲状态标 识; 第三确定模块,用于将状态标识为空闲状态标识的核确定为第二核; 第二选择模块,用于从所述第二核中选择出所述目标核。
14. 根据权利要求12所述装置,其特征在于,还包括: 第三选择模块,用于将所承载的负载量低于所述第二预设负载值的节点作为第二节 点,从所述第二节点中选择所承载的负载量最小的节点,并将所述所承载的负载量最小的 节点对应的核作为所述目标核。
15. 根据权利要求12至14任一所述装置,其特征在于,所述第一选择模块包括: 比较单元,用于比较各个所述第一消息的源核中消息的数量,获得消息数量最多的源 核,并将所述消息数量最多的源核或所述消息数量最多的源核对应的目的核作为所述待迁 移核。
16. 根据权利要求12所述装置,其特征在于,所述迁移模块具体用于:对于所述至少一 个所述执行程序中的每一所述执行程序,获得所述执行程序,将所述执行程序设置于相应 的所述目标核,并根据相应的所述目标核的地址信息和所述执行程序对应的待迁移核的负 载信息,对所述目标核的负载信息进行更新,将所述待迁移核中的所述执行程序删除。
17. 根据权利要求12或16所述装置,其特征在于,还包括: 更新模块,用于在将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核 平台中选择出的相应的目标核之后,将目的地址信息为所述待迁移核的地址信息的核,中 的目的地址信息更新为相应的目标核的地址信息。
18. 根据权利要求12或16所述装置,其特征在于,还包括: 第一设置模块,用于在所述待迁移核中设置反馈程序,所述反馈程序用于在所述待迁 移核接收到其他核发送的消息时,向所述其他核发送更新目的核地址信息的指示; 第二设置模块,用于在所述其他核中设置应答程序,所述应答程序用于在接收到所述 更新目的核地址信息的指示时,将所述其他核中与所述至少一个执行程序对应的消息的目 的核地址信息更新为相应目标核的地址信息。
19. 根据权利要求12所述装置,其特征在于,所述第一核中还记录有应用程序类别,所 述迁移模块包括: 获得单元,用于获得所述第一核中各个执行程序的执行程序类别; 设置单元,用于将同一执行程序类别的执行程序设置于同一所述目标核中; 清除单元,用于将所述第一核中所述同一执行程序类别的执行程序清除。
20. 根据权利要求12、13、14和19任一所述装置,其特征在于,还包括: 第三确定模块,用于确定所述第一节点所承载的负载量中的本地负载量; 触发模块,用于当所述第一节点的本地负载量不大于所述第一节点的预设本地负载值 时,触发所述迁移模块。
21. 根据权利要求12所述装置,其特征在于,还包括: 检测模块,用于在检测到所述第一核发送消息时,检测所述消息的相关信息,所述相关 信息包括所述消息的目的地址信息和所述消息的源地址信息; 第四确定模块,用于确定所述消息的第一消息数量; 增加模块,用于当已经记录有具有相同源地址信息和目的地址信息的消息时,将所述 具有相同源地址信息和目的地址信息的消息对应的消息的数量增加所述第一消息数量; 第三设置模块,用于当未记录有具有相同源地址信息和目的地址信息的消息时,记录 所述第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为 所述第一消息数量。
22. 根据权利要求21所述装置,其特征在于,所述相关信息还包括所述消息的长度信 息,所述第四确定模块包括: 计算单元,用于根据所述长度信息以及所述众核平台中的各个节点一次发送消息的最 大长度信息,计算出所述消息的第一消息数量。
【文档编号】H04L12/803GK104219161SQ201310218830
【公开日】2014年12月17日 申请日期:2013年6月4日 优先权日:2013年6月4日
【发明者】王金堂 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1