CN104219161B - 一种平衡节点负载的方法及装置 - Google Patents
一种平衡节点负载的方法及装置 Download PDFInfo
- Publication number
- CN104219161B CN104219161B CN201310218830.7A CN201310218830A CN104219161B CN 104219161 B CN104219161 B CN 104219161B CN 201310218830 A CN201310218830 A CN 201310218830A CN 104219161 B CN104219161 B CN 104219161B
- Authority
- CN
- China
- Prior art keywords
- core
- message
- node
- address information
- migrated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明实施例公开了一种平衡节点的负载的方法及装置,该方法应用于众核平台,该方法包括:获取众核平台中的第一核内记录的负载信息;对于任一消息,根据消息的目的地址信息和消息的源地址信息,确定将消息发送至目的地址信息对应的核所需经过的节点;根据消息的数量以及消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;将所承载的负载量超过其第一预设负载值的节点作为第一节点,从消息中确定所有经过第一节点的第一消息;从第一消息的源核或目的核中选择待迁移核;将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核。采用本发明实施例提供的方法及装置可以提高CPU的性能。
Description
技术领域
本发明涉及通信技术领域,更具体的说,是涉及一种平衡节点负载的方法及装置。
背景技术
随着互联网的发展,众核平台上核的数量越来越多,各个核之间通信的消息数量也越来越多。下面以Mesh网络芯片为例对众核平台上各个核之间的通信过程进行说明。
请参阅图1,为现有技术中二维Mesh网络芯片内布局的示意图,每一个核都对应一节点Switch,节点Switch是各个核之间进行通信时消息的中转站。节点Switch会根据其接收到的消息的目的核地址与节点Switch自身的位置决定向哪个位置发送该消息。假设一消息的源核地址为(0,0)、目的核地址为(1,1),节点Switch先比较x坐标再比较y坐标,则核(0,0)向核(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,0)的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)来说上述消息为远端负载。
发明人在实现本发明创造的过程中发现,在核与核进行通信时,可能会造成一些节点Switch的负载量过多,从而导致CPU的性能降低。
发明内容
有鉴于此,本发明提供了一种平衡节点负载的方法及装置,以克服现有技术中由于一些节点的负载量过多,导致CPU的性能降低的问题。
为实现上述目的,本发明提供如下技术方案:
第一方面,一种平衡节点负载的方法,应用于众核平台,所述方法包括:获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中已分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信息;对于任一所述消息,根据所述消息的目的地址信息和所述消息的源地址信息,确定将所述消息发送至所述目的地址信息对应的核所需经过的节点;根据所述消息的数量以及所述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第一消息的目的核地址信息对应的目的核;从所述第一消息的源核或目的核中选择待迁移核;将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点,所述目标核对应的节点所承载的负载量低于第二预设负载值。
在第一方面的第一种可能实现方式中,从所述众核平台中选择目标核包括:将所承载的负载量低于所述第二预设负载值的节点作为第二节点,检测所述第二节点对应的核的状态标识,所述状态标识包括空闲状态标识与非空闲状态标识;将状态标识为空闲状态标识的核确定为第二核;从所述第二核中选择出所述目标核。
在第一方面的第二种可能实现方式中,从所述众核平台中选择目标核包括:将所承载的负载量低于所述第二预设负载值的节点作为第二节点,从所述第二节点中选择所承载的负载量最小的节点,并将所述所承载的负载量最小的节点对应的核作为所述目标核。
结合第一方面、结合第一方面的第一种可能实现方式或者结合第一方面的第二种可能实现方式,在第三种可能实现方式中,所述从所述第一消息的源核或目的核中选择待迁移核包括:比较各个所述第一消息的源核中消息的数量,获得消息数量最多的源核,并将所述消息数量最多的源核或所述消息数量最多的源核对应的目的核作为所述待迁移核。
在第一方面的第四种可能实现方式中,所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核包括:对于所述至少一个所述执行程序中的每一所述执行程序,获得所述执行程序,将所述执行程序设置于相应的所述目标核,并根据相应的所述目标核的地址信息和所述执行程序对应的待迁移核的负载信息,对所述目标核的负载信息进行更新,将所述待迁移核中的所述执行程序删除。
结合第一方面或者结合第一方面的第四种可能实现方式,在第五种可能实现方式中,在所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之后,还包括:将目的地址信息为所述待迁移核的地址信息的核,中的目的地址信息更新为相应的目标核的地址信息。
结合第一方面或者结合第一方面的第四种可能实现方式,在第六种可能实现方式中,在将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之后,还包括:在所述待迁移核中设置反馈程序,所述反馈程序用于在所述待迁移核接收到其他核发送的消息时,向所述其他核发送更新目的核地址信息的指示;在所述其他核中设置应答程序,所述应答程序用于在接收到所述更新目的核地址信息的指示时,将所述其他核中与所述至少一个执行程序对应的消息的目的核地址信息更新为相应目标核的地址信息。
在第一方面的第七种可能实现方式中,所述第一核中还记录有应用程序类别,所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核包括:获得所述第一核中各个执行程序的执行程序类别;将同一执行程序类别的执行程序设置于同一所述目标核中;将所述第一核中所述同一执行程序类别的执行程序清除。
结合第一方面、结合第一方面的第一种可能实现方式、结合第一方面的第二种可能实现方式、结合第一方面的第三种可能实现方式或者结合第一方面的第七种可能实现方式,在第八种可能实现方式中,在将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之前,还包括:确定所述第一节点所承载的负载量中的本地负载量;当所述第一节点的本地负载量不大于所述第一节点的预设本地负载值时,执行所述将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核的操作。
在第一方面的第九种实现方式中,所述第一核记录负载信息包括:在检测到所述第一核发送消息时,检测所述消息的相关信息,所述相关信息包括所述消息的目的地址信息和所述消息的源地址信息;确定所述消息的第一消息数量;当已经记录有具有相同源地址信息和目的地址信息的消息时,将所述具有相同源地址信息和目的地址信息的消息对应的消息的数量增加所述第一消息数量;当未记录有具有相同源地址信息和目的地址信息的消息时,记录所述第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为所述第一消息数量。
结合第一方面的第九种实现方式,在第十种实现方式中,所述相关信息还包括所述消息的长度信息,所述确定所述消息的第一消息数量包括:根据所述长度信息以及所述众核平台中的各个节点一次发送消息的最大长度信息,计算出所述消息的第一消息数量。
第二方面,一种平衡节点负载的装置,应用于众核平台,所述装置包括:获取模块,用于获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中已分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信息;第一确定模块,用于对于任一所述消息,根据所述获得模块获得的所述消息的目的地址信息和所述消息的源地址信息,确定将所述消息发送至所述目的地址信息对应的核所需经过的节点;计算模块,用于根据所述第一确定模块确定出的所述消息的数量以及所述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;第二确定模块,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第一消息的目的核地址信息对应的目的核;第一选择模块,用于从所述第二确定模块确定出的所述第一消息的源核或目的核中选择待迁移核;迁移模块,用于将所述第一选择模块选择出的所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点,所述目标核对应的节点所承载的负载量低于第二预设负载值。
在第二方面的第一种可能实现方式中,还包括:检测模块,用于将所承载的负载量低于所述第二预设负载值的节点作为第二节点,检测所述第二节点对应的核的状态标识,所述状态标识包括空闲状态标识与非空闲状态标识;第三确定模块,用于将状态标识为空闲状态标识的核确定为第二核;第二选择模块,用于从所述第二核中选择出所述目标核。
在第二方面的第二种可能实现方式中,还包括:第三选择模块,用于将所承载的负载量低于所述第二预设负载值的节点作为第二节点,从所述第二节点中选择所承载的负载量最小的节点,并将所述所承载的负载量最小的节点对应的核作为所述目标核。
结合第二方面、结合第二方面的第一种可能实现方式或者结合第二方面的第二种可能实现方式,在第三种可能实现方式中,所述第一选择模块包括:比较单元,用于比较各个所述第一消息的源核中消息的数量,获得消息数量最多的源核,并将所述消息数量最多的源核或所述消息数量最多的源核对应的目的核作为所述待迁移核。
在第二方面的第四种可能实现方式中,所述迁移模块具体用于:对于所述至少一个所述执行程序中的每一所述执行程序,获得所述执行程序,将所述执行程序设置于相应的所述目标核,并根据相应的所述目标核的地址信息和所述执行程序对应的待迁移核的负载信息,对所述目标核的负载信息进行更新,将所述待迁移核中的所述执行程序删除。
结合第二方面或者结合第二方面的第四种可能实现方式,在第五种可能实现方式中,还包括:更新模块,用于在将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核之后,将目的地址信息为所述待迁移核的地址信息的核,中的目的地址信息更新为相应的目标核的地址信息。
结合第二方面或者结合第二方面的第四种可能实现方式,在第六种可能实现方式中,还包括:第一设置模块,用于在所述待迁移核中设置反馈程序,所述反馈程序用于在所述待迁移核接收到其他核发送的消息时,向所述其他核发送更新目的核地址信息的指示;第二设置模块,用于在所述其他核中设置应答程序,所述应答程序用于在接收到所述更新目的核地址信息的指示时,将所述其他核中与所述至少一个执行程序对应的消息的目的核地址信息更新为相应目标核的地址信息。
在第二方面的第七种可能实现方式中,所述第一核中还记录有应用程序类别,所述迁移模块包括:获得单元,用于获得所述第一核中各个执行程序的执行程序类别;设置单元,用于将同一执行程序类别的执行程序设置于同一所述目标核中;清除单元,用于将所述第一核中所述同一执行程序类别的执行程序清除。
结合第二方面、结合第二方面的第一种可能实现方式、结合第二方面的第二种可能实现方式、结合第二方面的第三种可能实现方式或者结合第二方面的第七种可能实现方式,在第八种可能实现方式中,还包括:第三确定模块,用于确定所述第一节点所承载的负载量中的本地负载量;触发模块,用于当所述第一节点的本地负载量不大于所述第一节点的预设本地负载值时,触发所述迁移模块。
在第二方面的第九种实现方式中,还包括:检测模块,用于在检测到所述第一核发送消息时,检测所述消息的相关信息,所述相关信息包括所述消息的目的地址信息和所述消息的源地址信息;第四确定模块,用于确定所述消息的第一消息数量;增加模块,用于当已经记录有具有相同源地址信息和目的地址信息的消息时,将所述具有相同源地址信息和目的地址信息的消息对应的消息的数量增加所述第一消息数量;第三设置模块,用于当未记录有具有相同源地址信息和目的地址信息的消息时,记录所述第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为所述第一消息数量。
结合第二方面的第九种实现方式,在第十种实现方式中,所述相关信息还包括所述消息的长度信息,所述第四确定模块包括:计算单元,用于根据所述长度信息以及所述众核平台中的各个节点一次发送消息的最大长度信息,计算出所述消息的第一消息数量。
经由上述的技术方案可知,本发明实施例提供的平衡节点负载的方法中,第一核中记录有负载信息,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,对于第一核需要发送的任一消息,可以根据第一核记录的各个消息的目的地址信息和源地址信息,确定出各个消息发送至相应的目的地址对应的核所需经过的节点,从而可以计算出第一核中所有消息发送完毕后,各个节点所需承载的负载量,将所承载的负载量超过其第一预设负载值的节点作为第一节点,当第一节点承载的负载量大于第一预设负载值时,表明第一节点所承载的负载量过多,甚至超载,此时会影响CPU的性能,从各个消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核,可以从第一消息的源核或目的核中选择待迁移核,将该待迁移核中的至少一个执行程序分别迁移至从众核平台选择出的目标核,由于目标核对应节点所承载的负载量低于第二预设负载值,所以当将上述至少一个执行程序迁移至目标核后,目标核对应节点所承载的负载量在一个合适的范围内,目标核将上述至少一个执行程序对应的消息发送中至相应的目的地址信息对应的核所需经过的节点不包括第一节点,这样就可以降低第一节点的负载量,从而提升CPU的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中二维Mesh网络芯片内布局的示意图;
图2为本发明实施例提供的一种平衡节点负载的方法的流程示意图;
图3为本发明实施例提供的一种平衡节点负载的方法的另一实施例的方法流程示意图;
图4为本发明实施例提供的一种平衡节点负载的方法又一实施例的方法流程示意图;
图5为本发明实施例提供的一种平衡节点负载的方法的另一方法流程示意图;
图6为本发明实施例提供的一种根据默认路由算法得到的各个节点的远端负载量以及本地负载量的方法流程图;
图7为本发明实施例提供的平衡节点负载的方法中从众核平台中选择目标核的一种实现方法的流程示意图;
图8为本发明实施例提供的平衡节点负载的方法中将所述待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的一种实现方法的流程示意图;
图9为本发明实施例提供的平衡节点负载的方法中第一核记录负载信息的一种实现方法的流程示意图;
图10为本发明实施例提供的一种平衡节点负载的示意图;
图11为本发明实施例提供的一种平衡节点负载的装置的结构示意图;
图12为本发明实施例提供的一种平衡节点负载的装置的另一实施例的装置结构示意图;
图13为本发明实施例提供的一种平衡节点负载的装置又一实施例的装置结构示意图;
图14为本发明实施例提供的一种平衡节点负载的装置的另一装置结构示意图;
图15为本发明实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅附图2,为本发明实施例提供的一种平衡节点负载的方法的流程示意图,该方法应用于众核平台,该方法包括:
步骤S201:获取该众核平台中的第一核内记录的负载信息。
第一核包括众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成与该消息相关的信息,与该消息相关的信息可以包括生成消息的指令、该消息或者接收消息的指令。
众核平台包括:空闲核与已分配有执行程序的核。空闲核是指未分配有执行程序的核。
第一核可以包括一个或多个核,将多个核中的每一个核称为核A,则核A中都记录有核A需要发送的消息的数量、核A需要发送消息的目的地址信息和核A需要发送消息的源地址信息,其中需要发送消息的源地址信息就是核A的地址信息。
步骤S202:对于任一上述消息,根据上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
步骤S203:根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
步骤S204:将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
第一预设负载值可以为节点的消息负载阈值,即节点所能承载消息数量的最大值,当然,第一预设负载值也可以低于节点的消息负载阈值。
第一核可以包括一个或多个核,每一个核对应的第一预设负载值可能不同,也可能相同,每一个核的第一预设负载值得大小可以由众核平台分配,在此本发明不作具体限定。
步骤S205:从第一消息的源核或目的核中选择待迁移核。
步骤S206:将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括第一节点。
待迁移核可以包括一个或多个执行程序,可以将待迁移核中需要迁移的执行程序分别迁移至不同的核中,也可以将待迁移核中需要迁移的执行程序迁移至同一核中,也可以将待迁移核中需要迁移的执行程序部分迁移至同一个核中,部分分别迁移至不同的核中,本发明实施例对此不作具体限定。
综上,目标核可能是一个核,也可能是多个核,但是目标核对应的节点所承载的负载量低于第二预设负载值。
当目标核对应的节点所承载的负载量低于第二预设负载值时,可能表明需要经由目标核对应的节点转发的消息负载数量低于该目标核对应节点的第一预设负载值或者目标核对应的节点所承载的负载量为空,优选的,目标核为空闲核。
第二预设负载值可以与第一预设负载值相同,也可以低于第一预设负载值。
本发明实施例提供的平衡节点负载的方法中,第一核中记录有负载信息,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,对于第一核需要发送的任一消息,可以根据第一核记录的各个消息的目的地址信息和源地址信息,确定出各个消息发送至相应的目的地址对应的核所需经过的节点,从而可以计算出第一核中所有消息发送完毕后,各个节点所需承载的负载量,将所承载的负载量超过其第一预设负载值的节点作为第一节点,当第一节点承载的负载量大于第一预设负载值时,表明第一节点所承载的负载量过多,甚至超载,此时会影响CPU的性能,从各个消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核,可以从第一消息的源核或目的核中选择待迁移核,将该待迁移核中的至少一个执行程序分别迁移至从众核平台选择出的目标核,由于目标核对应节点所承载的负载量低于第二预设负载值,所以当将上述至少一个执行程序迁移至目标核后,目标核对应节点所承载的负载量在一个合适的范围内,目标核将上述至少一个执行程序对应的消息发送中至相应的目的地址信息对应的核所需经过的节点不包括第一节点,这样就可以降低第一节点的负载量,从而提升CPU的性能。
请参阅图3,为本发明实施例提供的一种平衡节点负载的方法的另一实施例的方法流程示意图,该方法应用于众核平台,该方法包括:
步骤S301:获取众核平台中的第一核内记录的负载信息。
第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成与上述消息相关的信息。
步骤S302:对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
步骤S303:根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
步骤S304:将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
步骤S305:从第一消息的源核或目的核中选择待迁移核。
步骤S306:将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点。
由于待迁移核中的至少一个执行程序分别迁移至众核平台中选择出的相应的目的核,所以接收到某一执行程序的目的核可以执行与该某一执行程序对应的功能。
目标核对应的节点所承载的负载量低于第二预设负载值。
步骤S307:将目的地址信息为待迁移核的地址信息的核中的目的地址信息更新为相应的目标核的地址信息。
如果没有步骤S307,假设执行程序A迁移至目标核A,且源核A需要将消息A发送至包含执行程序A的核,那么执行程序A对应的待接收消息的目的地址信息为目标核A的地址信息,由于源核A中消息A对应的目的核地址信息并没有改变,仍为待迁移核,所以当消息A发送至待迁移核时,待迁移核可以向源核A发送“目标地址信息已经更新为目标核A”的消息,以便源核A可以正确的将消息A发送至目标核A中,即当待迁移核中的至少一个执行程序分别迁移至相应的目标核后,还需要向其他源核发送相应的变更地址信息的消息。
步骤S307可以避免待迁移核发送目标地址信息已经更新为目标核A的消息,因为步骤S307是主动将源核A中消息A对应的目的核地址信息进行了更新,所以当源核A发送消息A时,无需再次发送至待迁移核,从而减轻了节点的所承载的负载量,进一步的提高了CPU的效率。
请参阅图4,为本发明实施例提供的一种平衡节点负载的方法又一实施例的方法流程示意图,该方法应用于众核平台,该方法包括:
步骤S401:获取众核平台中的第一核内记录的负载信息。
第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成与上述消息相关的信息。
步骤S402:对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
步骤S403:根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
步骤S404:将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
步骤S405:从第一消息的源核或目的核中选择待迁移核。
步骤S406:将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点。
目标核对应的节点所承载的负载量低于第二预设负载值。
步骤S407:在待迁移核中设置反馈程序,反馈程序用于在待迁移核接收到其他核发送的消息时,向上述其他核发送更新目的核地址信息的指示。
步骤S408:在上述其他核中设置应答程序,应答程序用于在接收到所述更新目的核地址信息的指示时,将上述其他核中与上述至少一个执行程序对应的消息的目的核地址信息更新为相应目标核的地址信息。
本发明实施例在待迁移核中设置反馈程序,在上述其他核中设置应答程序,可以使上述其他核只需要向待迁移核发送一次消息,即可根据待迁移核反馈的更新目的核地址信息的指示,对相应的消息的目的核地址信息进行更新,不必每次都向待迁移核发送消息,从而减轻了节点所承载的负载量,进一步提高了CPU的性能。
请参阅图5,为本发明实施例提供的一种平衡节点负载的方法的另一方法流程示意图,该方法应用于众核平台,该方法包括:
步骤S501:获取众核平台中的第一核内记录的负载信息。
第一核为众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发送的消息的数量、该消息的目的地址信息和该消息的源地址信息,上述执行程序用于生成与上述消息相关的信息。
步骤S502:对于任一消息,根据上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至目的地址信息对应的核所需经过的节点。
步骤S503:根据上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
步骤S504:将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
步骤S505:从第一消息的源核或目的核中选择待迁移核。
步骤S506:确定第一节点所承载的负载量中的本地负载量。
可以根据记录的每一核中的消息对应的源核地址信息、目的核地址信息以及消息的数量,确定出各个节点的本地负载量以及远端负载量。下面举一根据默认路由算法得到各个节点所承载的负载量的过程,以二维Mesh网络且节点先比较x坐标再比较y坐标为例进行说明(当然也可以先考虑y坐标,在考虑x坐标,该过程与先考虑x坐标,在考虑y坐标相同,此处不再一一赘述)。
消息1的源核地为(0,0),目的核地址为(1,1),消息1的数量为10。消息2的源核地址为(0,0),目的核地址为(0,1),消息2的数量为500。消息3的源核地址为(1,1),目的核地址为(0,0),消息3的数量为700。消息4的源核地址为(1,1),目的核地址为(0,1),消息4的数量为600。
请参阅图6,为本发明实施例提供的一种根据默认路由算法得到的各个节点的远端负载量以及本地负载量的方法流程图,该方法包括:
步骤S601:根据记录的消息1的源核地址(0,0)、目的核地址(1,1)以及消息1的数量10,将节点(0,0)的本地消息负载加10,并比较节点(0,0)的地址与目的核地址(1,1),得知消息1向右发送。
步骤S602:比较节点(1,0)与目的核对应的节点(1,1),得知消息1向下发送,将节点(1,0)的远端负载加10,比较节点(1,1)与目的核(1,1),得知将消息1发送至目的核(1,1)。
步骤S603:节点(1,1)收到消息后,经过对比目的核的地址信息与节点(1,1)的地址信息一致,把消息发送到核(1,1),并将节点(1,1)的本地消息负载加10。
对于消息2、消息3以及消息4,可以执行与步骤S601至步骤S603相应的步骤,从而获得各个节点的本地负载量以及远端负载量,在此本发明实施例对此不作具体限定。
根据上述方法可以得出,核(0,0)的远端消息负载的数量为0,本地负载量为1210;核(1,0)的远端消息负载的数量为10,本地负载量为0;核(0,1)的远端消息负载的数量为1300,本地负载量为500;核(1,1)的远端消息负载的数量为0,本地负载量为1310。
步骤S506可以在步骤S505之前,也可在步骤S505之后。
步骤S507:当第一节点的本地负载量不大于第一节点的预设本地负载值时,执行将待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的操作。
因为当第一节点的本地负载量大于第一节点的预设本地负载值时,很难甚至是不能将第一节点的本地负载量调低,所以当第一节点的本地负载量大于第一节点的预设本地负载值时,无需在执行步骤S508。当然也可以继续执行步骤S508,以便将第一节点的远端负载量调低一些,从而缓解第一节点负载量过多的状态。
步骤S507可以在步骤S505之前,也可在步骤S505之后,对此本发明实施例对此不作具体限定,但是步骤S507必须在步骤S506之后。
步骤S508:将待迁移核中的至少一个执行程序分别迁移至从众核平台中选择出的相应的目标核,以便目标核将至少一个执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括所述第一节点。
目标核对应的节点所承载的负载量低于第二预设负载值。
可以理解的是,上述任一实施例中当将待迁移核中的至少一个执行程序分别迁移至相应的目标核中后,可能导致目标核对应的节点承载的负载量过多,所以可以将第二预设负载值设置在一个合理的范围内,以便当相应的执行程序迁移至目标核后,目标核对应的节点所承载的负载量仍低于第一预设负载值,或者在将待迁移核中的至少一个执行程序分别迁移至相应的目标核中后,检查目标核所承载的负载量是否大于其对应的第一预设负载值,如果大于,则可以将目标核中的执行程序进行迁移,或者取消将待迁移核中的执行程序迁移至目标核的步骤,以使待迁移核重新选择其他目标核。
上述任一实施例中从众核平台中选择目标核的方法有多种,请参阅图7,为本发明实施例提供的平衡节点负载的方法中从众核平台中选择目标核的一种实现方法的流程示意图,该实现方法包括:
步骤S701:将所承载的负载量低于第二预设负载值的节点作为第二节点,检测第二节点对应的核的状态标识。
状态标识包括空闲状态标识与非空闲状态标识。
步骤S702:将状态标识为空闲状态标识的核确定为第二核。
步骤S703:从第二核中选择出目标核。
本发明实施例选择状态标识为空闲状态标识的空闲核作为目标核,这样在空闲核接收执行程序后,空闲核所承载的负载量一般不会超过其对应的第一预设负载值,所以优选的目标核为空闲核。
本发明实施例提供的平衡节点负载的方法中从众核平台中选择目标核的另一种实现方法为:将所承载的负载量低于第二预设负载值的节点作为第二节点,从第二节点中选择所承载的负载量最小的节点,并将所承载的负载量最小的节点对应的核作为目标核。
当上述实施例中“从众核平台中选择出的相应的目标核”为一个目标核时,目标核可以为上述所承载的负载量最小的节点对应的核;当上述实施例中“从众核平台中选择出的相应的目标核”为至少一个核时,可以将第二节点所承载的负载量进行排序,然后选择所承载的负载量相对较少的核作为目标核。
上述任一实施例中从第一消息的源核或目的核中选择待迁移核的方法有多种,本发明实施例提供的平衡节点负载的方法中从第一消息的源核或目的核中选择待迁移核的一种实现方法为:比较各个第一消息的源核中消息的数量,获得消息数量最多的源核,并将消息数量最多的源核或消息数量最多的源核对应的目的核作为待迁移核。
假设第一消息包括:消息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作为待迁移核,即需要至少迁移两次。
上述任一实施例中将待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的方法有多种,本发明实施例提供的平衡节点负载的方法中将待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的一种实现方法为:对于上述至少一个上述执行程序中的每一执行程序,获得该执行程序,将该执行程序设置于相应的目标核,并根据相应的目标核的地址信息和该执行程序对应的待迁移核的负载信息,对目标核的负载信息进行更新,将待迁移核中的该执行程序删除。
为了节省各个核中的空间,优选地,可以将待迁移核中的执行程序删除。
上述任一实施例中的第一核中还可以记录有应用程序类别,此时上述任一实施例中将待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的实现方法有多种,请参阅图8,为本发明实施例提供的平衡节点负载的方法中将所述待迁移核中的至少一个上述执行程序分别迁移至从众核平台中选择出的相应的目标核的一种实现方法的流程示意图,该实现方法包括:
步骤S801:获得第一核中各个执行程序的执行程序类别。
步骤S802:将同一执行程序类别的执行程序设置于同一目标核中。
步骤S803:将第一核中上述同一执行程序类别的执行程序清除。
上述任一实施例中第一核记录负载信息的方法有多种,请参阅图9,为本发明实施例提供的平衡节点负载的方法中第一核记录负载信息的一种实现方法的流程示意图,该实现方法包括:
步骤S901:在检测到第一核发送消息时,检测上述消息的相关信息。
上述相关信息包括上述消息的目的地址信息和上述消息的源地址信息。
步骤S902:确定上述消息的第一消息数量。
上述相关信息还可以包括上述消息的长度信息,此时确定上述消息的第一消息数量的方法可以为根据上述长度信息以及众核平台中的各个节点一次发送消息的最大长度信息,计算出上述消息的第一消息数量。
将上述消息的长度信息除以上述最大长度信息所得的商进行向上取整,得到的值,可以为第一消息数量。
当然根据不同的实际情况,相关信息可以不包括上述消息的长度信息。
步骤S903:当已经记录有具有相同源地址信息和目的地址信息的消息时,将上述具有相同源地址信息和目的地址信息的消息对应的消息的数量加所述第一消息数量。
步骤S904:当未记录有具有相同源地址信息和目的地址信息的消息时,记录所述第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为所述第一消息数量。
上述任一实施例中,优选的,可以周期性的执行实施例中的各个步骤,或者设定预设时间,在当前时间到达预设时间时,执行上述实施例中的步骤。
为了本领域人员更加理解本发明实施例,下面举一具体例子对平衡节点负载的过程进行说明。
请参阅图10,为本发明实施例提供的一种平衡节点负载的示意图。
图10中包括节点(0,0)、节点(1,0)、节点(2,0)、节点(0,1)、节点(1,1)、节点(2,1)、节点(0,2)、节点(1,2)以及节点(2,2),图10中还画出了消息记录单元在内存中为各个节点保留的空间,用箭头的方式表示节点与内存空间的对应关系。图10中仅用位置坐标表示各个节点的地址信息。
假设节点(1,2)的远端消息负载阈值小于节点(1,2)的远端负载量,即节点(1,2)过载,而节点(1,2)包括10条远端消息负载,这10条远端消息是由核(0,0)发送至核(2,2),假设该10条远端消息的传输路径为:核(0,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,0)、节点(1,0)以及节点(2,0),这样可以避免这10条消息经过节点(1,2),从而可以使节点(1,2)上的远端负载量降低,且使节点(2,0)的远端消息负载从0变为10,从而平衡了节点的消息负载。
在改变传输路径之后,传输路径中出现了新的节点,例如节点(1,0),这个节点很有可能出现负载量过多的情况,所以优选的,再次计算各个节点所承载的负载量,并判断各个节点是否超过其对应的第一预设负载值
上述实施例中都是以二维的Mesh网络为例进行说明的,本发明实施例还可以应用于三维Mesh网络以及至少三维Mesh网络等等。
现有技术中的核分为两种,一种是宏内核,一种是微内核,上述实施例可以应用于这两种内核。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了多种装置,下面给出具体的实施例进行详细说明。
请参阅图11,为本发明实施例提供的一种平衡节点负载的装置的结构示意图,该装置应用于众核平台,该装置包括:
获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择模块1105以及迁移模块1106,其中:
获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
第一核包括上述众核平台中已分配有执行程序的核,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生成与上述消息相关的信息。
第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应的核所需经过的节点。
计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的核中选择待迁移核。
迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括上述第一节点。
上述目标核对应的节点所承载的负载量低于第二预设负载值。
本发明实施例提供的平衡节点负载的装置中,首先通过获取模块1101获取第一核内记录的负载信息,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,第一确定模块1102对于第一核需要发送的任一消息,可以根据第一核记录的各个消息的目的地址信息和源地址信息,确定出各个消息发送至相应的目的地址对应的核所需经过的节点,从而可以由计算模块1103计算出在第一核中所有消息发送完毕后,各个节点所需承载的负载量,第二确定模块1104将所承载的负载量超过其第一预设负载值的节点作为第一节点,当第一节点承载的负载量大于第一预设负载值时,表明第一节点所承载的负载量过多,甚至超载,此时会影响CPU的性能,从各个消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核,第一选择模块1105可以从第一消息的源核或目的核中选择待迁移核,迁移模块1106将该待迁移核中的至少一个执行程序分别迁移至从众核平台选择出的目标核,由于目标核对应节点所承载的负载量低于第二预设负载值,所以当将上述至少一个执行程序迁移至目标核后,目标核对应节点所承载的负载量在一个合适的范围内,目标核将上述至少一个执行程序对应的消息发送中至相应的目的地址信息对应的核所需经过的节点不包括第一节点,这样就可以降低第一节点的负载量,从而提升CPU的性能。
请参阅图12,为本发明实施例提供的一种平衡节点负载的装置的另一实施例的装置结构示意图,该装置应用于众核平台,该装置包括:
获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择模块1105、迁移模块1106以及更新模块1201,其中:
获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
第一核包括上述众核平台中已分配有执行程序的核,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生成与上述消息相关的信息。
第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应的核所需经过的节点。
计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的核中选择待迁移核。
迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括上述第一节点。
上述目标核对应的节点所承载的负载量低于第二预设负载值。
更新模块1201,用于在将上述待迁移核中的至少一个上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核之后,将目的地址信息为上述待迁移核的地址信息的核,中的目的地址信息更新为相应的目标核的地址信息。
请参阅图13,为本发明实施例提供的一种平衡节点负载的装置又一实施例的装置结构示意图,该装置应用于众核平台,该装置包括:
获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择模块1105、迁移模块1106、第一设置模块1301以及第二设置模块1302,其中:
获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
第一核包括上述众核平台中已分配有执行程序的核,负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生成与上述消息相关的信息。
第一确定模块1102,用于对于任一上述消息,根据获得模块1101获得的上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应的核所需经过的节点。
计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的核中选择待迁移核。
迁移模块1106,用于将第一选择模块1105选择出的待迁移核中的至少一个上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括上述第一节点。
上述目标核对应的节点所承载的负载量低于第二预设负载值。
第一设置模块1301,用于在待迁移核中设置反馈程序,反馈程序用于在上述待迁移核接收到其他核发送的消息时,向上述其他核发送更新目的核地址信息的指示。
第二设置模块1302,用于在上述其他核中设置应答程序,应答程序用于在接收到上述更新目的核地址信息的指示时,将上述其他核中与上述至少一个执行程序对应的消息的目的核地址信息更新为相应目标核的地址信息。
请参阅图14,为本发明实施例提供的一种平衡节点负载的装置的另一装置结构示意图,该装置应用于众核平台,该装置包括:
获取模块1101、第一确定模块1102、计算模块1103、第二确定模块1104、第一选择模块1105、第三确定模块1401、触发模块1402以及迁移模块1106,其中:
获取模块1101,用于获取上述众核平台中的第一核内记录的负载信息。
第一核包括上述众核平台中已分配有执行程序的核,上述负载信息包括第一核中需要发送的消息的数量、上述消息的目的地址信息和上述消息的源地址信息,执行程序用于生成与上述消息相关的信息。
第一确定模块1102,用于对于任一上述消息,根据上述获得模块获得的上述消息的目的地址信息和上述消息的源地址信息,确定将上述消息发送至上述目的地址信息对应的核所需经过的节点。
计算模块1103,用于根据第一确定模块1102确定出的上述消息的数量以及上述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量。
第二确定模块1104,用于将所承载的负载量超过其第一预设负载值的节点作为第一节点,从上述消息中确定所有经过第一节点的第一消息以及第一消息的源核地址信息对应的源核或第一消息的目的核地址信息对应的目的核。
第一选择模块1105,用于从第二确定模块1104确定出的第一消息的源核或目的核中选择待迁移核。
第三确定模块1401,用于确定第一节点所承载的负载量中的本地负载量;
触发模块1402,用于当第一节点的本地负载量不大于第一节点的预设本地负载值时,触发迁移模块1106。
迁移模块1106,用于将第一选择模块1105选择出的上述待迁移核中的至少一个上述执行程序分别迁移至从上述众核平台中选择出的相应的目标核,以便上述目标核将上述至少一个上述执行程序对应的消息,发送至相应的目的地址信息对应的核,所需经过的节点不包括第一节点,上述目标核对应的节点所承载的负载量低于第二预设负载值。
上述任一装置实施例中还可以包括:检测模块,用于将所承载的负载量低于第二预设负载值的节点作为第二节点,检测第二节点对应的核的状态标识,状态标识包括空闲状态标识与非空闲状态标识;第三确定模块,用于将状态标识为空闲状态标识的核确定为第二核;第二选择模块,用于从第二核中选择出上述目标核。
上述任一装置实施例中还可以包括:第三选择模块,用于将所承载的负载量低于第二预设负载值的节点作为第二节点,从第二节点中选择所承载的负载量最小的节点,并将上述所承载的负载量最小的节点对应的核作为上述目标核。
上述任一装置实施例中的第一选择模块可以包括:比较单元,用于比较各个第一消息的源核中消息的数量,获得消息数量最多的源核,并将上述消息数量最多的源核或上述消息数量最多的源核对应的目的核作为上述待迁移核。
上述任一装置实施例中的迁移模块可以具体用于对于上述至少一个上述执行程序中的每一上述执行程序,获得上述执行程序,将上述执行程序设置于相应的上述目标核,并根据相应的上述目标核的地址信息和上述执行程序对应的待迁移核的负载信息,对上述目标核的负载信息进行更新,将上述待迁移核中的上述执行程序删除。
上述任一装置实施例中的第一核还可以记录有应用程序类别,此时上述任一装置实施例中的迁移模块可以包括:获得单元,用于获得第一核中各个执行程序的执行程序类别;设置单元,用于将同一执行程序类别的执行程序设置于同一上述目标核中;清除单元,用于将第一核中上述同一执行程序类别的执行程序清除。
上述任一装置实施例中还可以包括:检测模块,用于在检测到第一核发送消息时,检测上述消息的相关信息,上述相关信息包括上述消息的目的地址信息和上述消息的源地址信息;第四确定模块,用于确定上述消息的第一消息数量;增加模块,用于当已经记录有具有相同源地址信息和目的地址信息的消息时,将上述具有相同源地址信息和目的地址信息的消息对应的消息的数量增加第一消息数量;第三设置模块,用于当未记录有具有相同源地址信息和目的地址信息的消息时,记录第一核发送消息的目的地址信息和消息的源地址信息,并将其对应的消息数量设置为第一消息数量。
上述任一装置实施例中的第四确定模块可以包括:计算单元,用于根据上述长度信息以及上述众核平台中的各个节点一次发送消息的最大长度信息,计算出上述消息的第一消息数量。
本发明实施例提供的一种终端,该终端可用于执行上述任一实施例所述的方法。请参阅图15,为本发明实施例提供的终端的结构示意图。
该终端可以为服务器、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)或车载电脑等终端设备,以终端为服务器为例,图15示出的是与本发明实施例提供的终端相关的服务器的部分结构的框图。参考图15,服务器包括存储器1510以及处理器1520等部件。本领域技术人员可以理解,图15中示出的服务器结构只做实现方式的举例,并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图15对服务器中的各个构成部件进行具体的介绍:
存储器1510可用于存储软件程序以及模块,处理器1520通过运行存储在存储器1510的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器1510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1520是服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器1510内的软件程序和/或模块,以及调用存储在存储器1510内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器1520可包括一个或多个处理单元;优选的,处理器1520可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1520中。
在本发明实施例中,该终端所包括处理器具有以下功能:
获取所述众核平台中的第一核内记录的负载信息,所述第一核包括所述众核平台中已分配有执行程序的核,所述负载信息包括所述第一核中需要发送的消息的数量、所述消息的目的地址信息和所述消息的源地址信息,所述执行程序用于生成与所述消息相关的信息;对于任一所述消息,根据所述消息的目的地址信息和所述消息的源地址信息,确定将所述消息发送至所述目的地址信息对应的核所需经过的节点;根据所述消息的数量以及所述消息所需经过的节点的信息,计算出完成所有消息的发送时,各个节点所需承载的负载量;将所承载的负载量超过其第一预设负载值的节点作为第一节点,从所述消息中确定所有经过所述第一节点的第一消息以及所述第一消息的源核地址信息对应的源核或所述第一消息的目的核地址信息对应的目的核;从所述第一消息的源核或目的核中选择待迁移核;将所述待迁移核中的至少一个所述执行程序分别迁移至从所述众核平台中选择出的相应的目标核,以便所述目标核将所述至少一个所述执行程序对应的消息发送中至相应的目的地址信息对应的核所需经过的节点不包括所述第一节点,所述目标核对应的节点所承载的负载量低于第二预设负载值。
该终端包括的存储器存储有第一核中需要发送的消息的数量、所述消息的目的地址信息和所述消息的源地址信息。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (22)
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所述装置,其特征在于,所述相关信息还包括所述消息的长度信息,所述第四确定模块包括:
计算单元,用于根据所述长度信息以及所述众核平台中的各个节点一次发送消息的最大长度信息,计算出所述消息的第一消息数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218830.7A CN104219161B (zh) | 2013-06-04 | 2013-06-04 | 一种平衡节点负载的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310218830.7A CN104219161B (zh) | 2013-06-04 | 2013-06-04 | 一种平衡节点负载的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104219161A CN104219161A (zh) | 2014-12-17 |
CN104219161B true CN104219161B (zh) | 2017-09-05 |
Family
ID=52100307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310218830.7A Expired - Fee Related CN104219161B (zh) | 2013-06-04 | 2013-06-04 | 一种平衡节点负载的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104219161B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
CN102025753A (zh) * | 2009-09-17 | 2011-04-20 | 阿里巴巴集团控股有限公司 | 一种服务器数据资源负载均衡处理方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677014B2 (en) * | 2006-11-27 | 2014-03-18 | Cisco Technology, Inc. | Fine granularity exchange level load balancing in a multiprocessor storage area network |
-
2013
- 2013-06-04 CN CN201310218830.7A patent/CN104219161B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146089A (zh) * | 2007-08-22 | 2008-03-19 | 杭州华三通信技术有限公司 | 在多核系统上配置核资源的方法、多核系统及管理核 |
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
CN101256515A (zh) * | 2008-03-11 | 2008-09-03 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
CN102025753A (zh) * | 2009-09-17 | 2011-04-20 | 阿里巴巴集团控股有限公司 | 一种服务器数据资源负载均衡处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104219161A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064808B (zh) | 一种基于分布式存储系统的负载均衡方法及装置 | |
CN104035823B (zh) | 负载均衡方法及装置 | |
CN105915650B (zh) | 负载均衡方法和装置 | |
CN102457571A (zh) | 一种云存储中数据均衡分布方法 | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
Liang et al. | Where will threatened migratory birds go under climate change? Implications for China's national nature reserves | |
CN103955955B (zh) | 一种电子地图信息处理方法及装置 | |
US10310748B2 (en) | Determining data locality in a distributed system using aggregation of locality summaries | |
CN104158748B (zh) | 一种面向云计算网络的拓扑探测方法 | |
CN109213699A (zh) | 一种元数据管理方法、系统、设备及计算机可读存储介质 | |
CN110209348A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110334544A (zh) | 联邦模型退化处理方法、装置、联邦训练系统及存储介质 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN105592123A (zh) | 存储管理系统、管理装置及方法 | |
CN111290699A (zh) | 数据迁移方法、装置及系统 | |
CN110209341A (zh) | 一种数据写入方法、装置和存储设备 | |
CN108984339A (zh) | 数据恢复方法及相关产品 | |
CN105243006A (zh) | 基于流量实验的流量层设置及流量实验的实现方法和装置 | |
CN105653463A (zh) | 存储管理系统、管理装置及方法 | |
CN104219161B (zh) | 一种平衡节点负载的方法及装置 | |
CN112422630A (zh) | 云存储系统和云存储系统中的对象处理方法 | |
CN105653529B (zh) | 存储管理系统、管理装置及方法 | |
CN109729008B (zh) | 路由选择方法、装置及计算机设备 | |
CN107925702A (zh) | 用于检测损坏的绑定器的方法和设备 | |
CN110007940A (zh) | 灰度发布的验证方法、系统、服务器及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170905 |
|
CF01 | Termination of patent right due to non-payment of annual fee |