一种协同计算集群负载均衡的方法及系统的制作方法

文档序号:6622269阅读:183来源:国知局
一种协同计算集群负载均衡的方法及系统的制作方法
【专利摘要】本发明提出了一种负载均衡的方法和系统,应用于多核处理器加众核处理器MIC协同计算集群中。对多核处理器和MIC设备分别编号,然后进行多层次数据划分,即根据多核处理器计算和MIC计算的特点,通过对多核处理器设备和MIC设备分别分组,实现动态数据划分,以及对多核处理器和MIC设备组内的设备分别进行静态数据划分,最后根据所述多核处理器和MIC编号及所述分组对计算任务进行动态任务划分。通过本发明的方案,能够根据动态任务划分实现多核处理器和MIC之间的负载均衡,并且采用多层次数据划分,充分发挥多核处理器和MIC的计算能力,达到计算性能的最优化。
【专利说明】一种协同计算集群负载均衡的方法及系统

【技术领域】
[0001] 本发明涉及高性能计算领域,尤其涉及一种负载均衡的方法及系统。

【背景技术】
[0002] MIC (Many Integrated Core)是Intel公司推出的众核处理器,跟通用的多核至强 处理器相比,MIC众核架构具有更小的内核和硬件线程,众核处理器计算资源密度更高,具 有更高的计算性能,双精性能超过lTFlops。
[0003] 随着高性能计算应用软件的发展,应用对计算性能的需求越来越高,多核处理器 +MIC异构协同计算相对于传统的多核处理器集群带来了更高的性能、更低的成本等优势, 越来越多的高性能计算应用软件采用多核处理器+MIC异构协同计算的计算方式。
[0004] 多核处理器+MIC异构协同计算架构如图2所示,在一个计算节点内采用了多核处 理器+MIC异构的计算方式,多核处理器和MIC的计算能力差别很大,简单的静态任务/数 据划分无法充分的发挥多核处理器和MIC的计算能力。


【发明内容】

[0005] 为了解决上述问题,本发明提出了一种多核处理器加 MIC协同计算集群负载均衡 的方法和系统,能够使得多核处理器和MIC的资源得到充分利用,充分的发挥多核处理器 和MIC的计算能力,实现多核处理器和MIC之间的协同计算和负载均衡。
[0006] 为了达到上述目的,本发明提出了一种负载均衡的方法,应用于多核处理器加众 核处理器MIC协同计算集群中,包括 :
[0007] 对所述多核处理器加众核处理器MIC协同计算集群负载均衡系统中的计算节点、 多核处理器和众核处理器MIC分别进行编号。
[0008] 对所述多核处理器和所述MIC进行多层次数据划分,根据计算任务的特点,对所 述多核处理器和所述MIC进行分组,实现动态数据划分;对所述多核处理器组内和/或所述 MIC组内的设备分别进行静态数据划分。
[0009] 主进程根据所述多核处理器和MIC编号及所述分组将所述计算任务动态划分给 所述多核处理器和所述MIC。
[0010] 优选地,所述多核处理器组内的设备进行静态数据划分的步骤包括:
[0011] 所述多核处理器主要用于执行程序的逻辑控制、数据的10操作、网络通信、部分 核心计算任务;将所述逻辑控制、数据的10操作、网络通信、部分核心计算任务分别划分给 多个不同的所述多核处理器组内的设备。
[0012] 优选地,所述MIC组内的设备进行静态数据划分的步骤包括:
[0013] 所述MIC众核处理器主要用于处理核心计算任务;将所述核心计算任务分别划分 给多个不同的所述MIC组内的设备。
[0014] 优选地,所述计算节点包括一个或多个多核处理器和一个或多个所述MIC。
[0015] 优选地,所述根据计算任务的特点,对所述多核处理器和所述MIC进行分组是指: 当一个所述核处理器设备或所述MIC设备上可用的内存空间不能满足所述计算任务的内 存要求和/或所述计算任务不能细分时,对所述多核处理器和所述MIC进行分组。
[0016] 优选地,所述对所述多核处理器和所述MIC进行分组的步骤包括:
[0017] 根据所述核处理器内存大小和所述计算任务对内存的要求计算出所需的所述核 处理器设备的数目GC,将N个所述计算节点中的N个所述核处理器设备划分为N/GC个组; 以及,
[0018] 根据所述MIC内存大小和所述计算任务对内存的要求计算出所需的所述MIC设备 的数目GM,若每个所述计算节点包含Μ个MIC设备,将N个所述计算节点的M*N个所述MIC 设备划分为M*N/GM个组。
[0019] 优选地,所述对所述多核处理器和所述MIC进行分组的步骤还包括:
[0020] 所述多核处理器设备的所述N/GC个组执行不同的计算任务;每个组内的所述核 处理器设备再对同一个计算任务进行数据划分,所述数据划分采用静态数据划分;以及,
[0021] 所述MIC设备的所述M*N/GM个组执行不同的计算任务;每个组内的所述MIC设备 再对同一个计算任务进行数据划分,所述数据划分采用静态数据划分。
[0022] 优选地,所述主进程根据所述多核处理器和MIC编号及所述分组将所述计算任务 动态划分给所述多核处理器和所述MIC的步骤包括:
[0023] 由所述主进程动态的发送任务编号给各个多核处理器组和/或MIC组内的组长, 所述组长再把任务编号广播给组内的组员,然后组内的设备同时计算所述任务编号对应的 计算任务的不同部分,计算完毕之后即可向所述主进程请求下一个任务,直到所有所述计 算任务完毕为止。
[0024] 本发明还提出了一种负载均衡的系统,应用于多核处理器加众核处理器MIC协同 计算集群中;所述系统包括编号模块、多层次数据划分模块和任务划分模块。
[0025] 所述编号模块,用于对所述多核处理器加 MIC协同计算集群中的计算节点、所述 多核处理器和所述MIC分别进行编号。
[0026] 所述多层次数据划分模块,用于对所述多核处理器和所述MIC进行多层次数据划 分。
[0027] 所述任务划分模块,用于根据所述多核处理器和MIC编号及所述分组将所述计算 任务动态划分给所述多核处理器和所述MIC。
[0028] 其中,所述对所述多核处理器和所述MIC进行多层次数据划分包括:
[0029] 根据计算任务的特点,对所述多核处理器和所述MIC进行分组,实现动态数据划 分;以及
[0030] 对所述多核处理器组内和/或所述MIC组内的设备分别进行静态数据划分。
[0031] 优选地,所述多核处理器组内的设备进行静态数据划分的步骤包括:
[0032] 所述多核处理器主要用于执行程序的逻辑控制、数据的10操作、网络通信、部分 核心计算任务;所述多层次数据划分模块将所述逻辑控制、数据的10操作、网络通信、部分 核心计算任务分别划分给多个不同的所述多核处理器组内的设备。
[0033] 优选地,所述MIC组内的设备进行静态数据划分的步骤包括:
[0034] 所述MIC主要用于处理核心计算任务;所述多层次数据划分模块将所述核心计算 任务分别划分给多个不同的所述MIC组内的设备。
[0035] 优选地,所述计算节点包括一个或多个所述多核处理器和一个或多个所述MIC。
[0036] 优选地,所述根据计算任务的特点对所述多核处理器和所述MIC进行分组是指: 当一个所述多核处理器设备或所述MIC设备上可用的内存空间不能满足所述计算任务的 内存要求和/或所述计算任务不能细分时,所述多层次数据划分模块对所述多核处理器和 所述MIC进行分组。
[0037] 优选地,所述对所述多核处理器和所述MIC进行分组的步骤包括:
[0038] 所述多层次数据划分模块根据所述多核处理器内存大小和所述计算任务对内存 的要求计算出所需的所述多核处理器设备的数目GC,将N个所述计算节点中的N个所述多 核处理器设备划分为N/GC个组;以及
[0039] 所述多层次数据划分模块根据所述MIC内存大小和所述计算任务对内存的要求 计算出所需的所述MIC设备的数目GM,则若每个所述计算节点包含Μ个MIC设备,将N个所 述节点的M*N个所述MIC设备划分为M*N/GM个组。
[0040] 优选地,所述对所述多核处理器和所述MIC进行分组的步骤还包括:
[0041] 所述多核处理器设备的所述N/GC个组执行不同的计算任务;每个组内的所述多 核处理器设备再对同一个任务进行数据划分,所述数据划分通过所述多层次数据划分模块 进行静态的划分;以及,
[0042] 所述MIC设备的所述M*N/GM个组执行不同的计算任务;每个组内的所述MIC设备 再对同一个任务进行数据划分,所述数据划分通过所述多层次数据划分模块进行静态的划 分。
[0043] 优选地,所述根据所述多核处理器和MIC编号及所述分组将所述计算任务动态划 分给所述多核处理器和所述MIC是指:
[0044] 所述任务划分模块动态的发送任务编号给各个多核处理器组和/或MIC组内的组 长,所述组长再把所述任务编号广播给组内的组员,然后组内的设备同时计算所述任务编 号对应的计算任务的不同部分,计算完毕之后即可向所述任务划分模块请求下一个任务, 直到所有所述计算任务完毕为止。
[0045] 与现有技术相比,本发明采用多层次数据划分,包括两层化分,多核处理器和MIC 分组的动态数据划分;以及多核处理器组内和/或MIC组内的静态数据划分。通过本发明 的方案,能够根据动态任务划分实现多核处理器和MIC之间的负载均衡,并且采用多层次 数据划分,充分发挥多核处理器和MIC的计算能力,达到计算性能的最优化。

【专利附图】

【附图说明】
[0046] 下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一 步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
[0047] 图1.多核处理器加 MIC协同计算集群负载均衡方法流程图
[0048] 图2.多核处理器加 MIC协同计算架构
[0049] 图3.多核处理器加 MIC协同计算动态任务划分示意图
[0050] 图4.多核处理器加 MIC协同计算集群负载均衡系统示意图

【具体实施方式】
[0051] 为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不 能用来限制本发明的保护范围。
[0052] 为了使多核处理器和MIC的资源得到充分利用,实现多核处理器和MIC之间的协 同计算和负载均衡,本发明提出了一种多核处理器加众核处理器MIC协同计算集群负载均 衡的方法,本发明对多核处理器和MIC设备分别编号,然后进行多层次数据划分,即根据多 核处理器计算和MIC计算的特点,通过对多核处理器设备和MIC设备分别分组,实现动态数 据划分,以及对多核处理器和MIC设备组内的设备分别进行静态数据划分,最后根据所述 多核处理器和MIC编号及所述分组对计算任务进行动态任务划分,达到多核处理器+MIC协 同计算的负载均衡。其方法流程图如图1所示,具体为以下步骤:步骤101、多核处理器、MIC 设备分别编号;步骤102、多核处理器、MIC设备分别分组;步骤103、多核处理器、MIC设备 进行静态数据划分;步骤104、多核处理器、MIC设备进行动态任务划分。下面经分别详细阐 述:
[0053] 步骤101、多核处理器、MIC设备分别编号;
[0054] 在多核处理器加 MIC协同计算中,多核处理器和MIC的计算能力不同,静态地给多 核处理器和MIC划分任务会导致多核处理器和MIC计算不同步,导致严重的负载不均衡,为 了实现多核处理器和MIC的负载均衡,需要对多核处理器和MIC不同的划分方法。具体如 图3所示,首先将整个多核处理器+MIC集群分成N个节点,并对每个节点进行编号,如节点 0、节点1、···、节点N-1。一个节点内可以有一个或多个多核处理器,可以有一个或多个MIC 卡,把每个节点上的所有多核处理器看成一个设备,每块MIC卡看成一个设备,对集群节点 上的所有多核处理器设备和MIC设备,即MIC卡分别编号,每个节点上有Μ个MIC设备,即Μ 块MIC卡,每个节点上有1个多核处理器设备,则Ν个节点(编号为0,1,2,···,Ν-1)上共有 N个多核处理器设备,编号为1,2,…,N;N个节点上共有M*N个MIC设备,编号为1,2,…, M*N。其中,N和Μ可以为任意正整数。
[0055] 步骤102、多核处理器、MIC设备分别分组;
[0056] 设备编号之后就可以对设备进行分组,具体如图3所示,根据算法的特点,有些任 务不能细分,一个多核处理器设备或MIC设备上可用的内存空间可能不能满足计算的内存 要求,需要多设备数据划分、共同计算,这时需要根据多核处理器内存或MIC内存进行分 组:
[0057] 1)根据多核处理器内存大小和计算对内存的要求可以计算得到一组内的多核处 理器设备数目为GC个,具体计算方法如下:假设一个多核处理设备的内存大小为MemC,计 算需要的内存大小为Mcom,一组内的多核处理设备数目为GC = (Mcom+MemC-1)/MemC ;那么 所有的多核处理器设备分为N/GC个组,每个组计算同一个任务,组内的多核处理器设备再 进行数据划分,数据划分采用静态的划分,即,把同一个任务中的数据静态的划分成GC份, 组内的设备分别计算其中的一份,因为组内的多核处理器设备计算能力一致;
[0058] 2)根据MIC内存大小和计算对内存的要求可以计算得到一组内的MIC设备数目 为GM个,具体计算方法如下:假设一个MIC设备的内存大小为MemM,计算需要的内存大小 为Mcom,一组内的多核处理设备数目为GM = (Mcom+MemM-1) /MemM ;那么所有的MIC设备分 为M*N/GM个组。
[0059] 步骤103、多核处理器、MIC设备进行静态数据划分;
[0060] 依据步骤102中的分组,每个组计算同一个任务,组内的多核处理器设备和MIC 设备再进行数据划分,数据划分采用静态划分,即,把同一个任务中的数据静态的划分成GM 份,组内的设备分别计算其中的一份。
[0061] 具体地,根据多核处理器和MIC各自的计算能力对每组中的多核处理器和MIC设 备进行动态数据划分,所述多核处理器主要用于执行程序的逻辑控制、数据的10操作、网 络通信、部分核心计算任务;所述MIC众核处理器主要用于处理核心计算任务。
[0062] 步骤104、任务划分;
[0063] 根据算法的可并行性和数据的无依赖性,可以对任务进行划分,划分成多个独立 的子任务,子任务之间没有依赖性,可以独立运行。多核处理器和MIC设备分组之后,就可 以把任务动态划分给每个多核处理器组或MIC组,具体如图3所示,可以采用MPI通信进行 划分,共启动N/GC+(M*N)/GM+1个进程,0号进程为主进程,负责任务划分、分发;其它进程 为计算进程,每个计算进程负责一个多核处理器设备或MIC设备的计算,控制同一个多核 处理器组或MIC组的进程为一组进程,选择进程号最小的为组长,其它为组员。组内的组长 进程向主进程请求任务,主进程得到组长进程的请求后把新的任务编号发给该组长进程, 直到所有的计算任务分配完毕。组长进程再把任务编号广播给组内的组员,然后组内的设 备同时计算,组内的设备分别计算同一个任务的不同部分,计算完毕之后组长进程再向主 进程请求下一个任务,直到所有任务计算完毕为止。
[0064] 采用MPI通信实现任务划分的伪代码如下:
[0065]

【权利要求】
1. 一种负载均衡的方法,其特征在于,应用于多核处理器加众核处理器MIC协同计算 集群中,包括: 对所述多核处理器加所述MIC协同计算集群负载均衡系统中的计算节点、所述多核处 理器和所述MIC分别进行编号; 对所述多核处理器和所述MIC进行多层次数据划分,根据计算任务的特点,对所述多 核处理器和所述MIC进行分组,实现动态数据划分;对所述多核处理器组内和/或所述MIC 组内的设备分别进行静态数据划分; 主进程根据所述多核处理器和所述MIC的编号及所述分组将所述计算任务动态划分 给所述多核处理器和所述MIC。
2. 如权利要求1所述的方法,其特征在于, 所述对多核处理器组内的设备进行静态数据划分的步骤包括: 将逻辑控制、数据的10操作、网络通信、部分核心计算任务分别划分给多个不同的所 述多核处理器组内的设备; 所述对MIC组内的设备进行静态数据划分的步骤包括: 将核心计算任务分别划分给对个不同的所述MIC组内的设备。
3. 如权利要求1所述的方法,其特征在于,所述计算节点包括一个或多个多核处理器 和一个或多个所述MIC。
4. 如权利要求1所述的方法,其特征在于,所述对所述多核处理器和所述MIC进行分组 的步骤包括: 根据所述核处理器内存大小和所述计算任务对内存的要求计算出所需的所述核处理 器设备的数目GC,将N个所述计算节点中的N个所述核处理器设备划分为N/GC个组; 根据所述MIC内存大小和所述计算任务对内存的要求计算出所需的所述MIC设备的数 目GM,若每个所述计算节点包含Μ个MIC设备,将N个所述计算节点的M*N个所述MIC设备 划分为M*N/GM个组。
5. 如权利要求4所述的方法,其特征在于,还包括: 所述多核处理器设备的所述N/GC个组执行不同的计算任务;每个组内的所述核处理 器设备再对同一个计算任务进行数据划分,所述数据划分采用静态的划分; 所述MIC设备的所述M*N/GM个组执行不同的计算任务;每个组内的所述MIC设备再对 同一个计算任务进行数据划分,所述数据划分采用静态的划分。
6. 如权利要求1所述的方法,其特征在于,所述主进程根据所述多核处理器和所述MIC 的编号及所述分组将所述计算任务动态划分给所述多核处理器和所述MIC的步骤包括: 由所述主进程动态的发送任务编号给各个多核处理器组和/或MIC组内的组长,所述 组长再把任务编号广播给组内的组员,然后组内的设备同时计算所述任务编号对应的计算 任务的不同部分,计算完毕之后即可向所述主进程请求下一个任务,直到所有所述计算任 务完毕为止。
7. -种负载均衡的系统,其特征在于,应用于多核处理器加众核处理器MIC协同计算 集群中;所述系统包括编号模块、多层次数据划分模块和任务划分模块; 所述编号模块,用于对所述多核处理器加所述MIC协同计算集群中的计算节点、所述 多核处理器和所述MIC分别进行编号; 所述多层次数据划分模块,用于对所述多核处理器和所述MIC进行多层次数据划分; 所述任务划分模块,用于根据所述多核处理器和所述MIC的编号及所述分组将所述计 算任务动态划分给所述多核处理器和所述MIC ; 其中,所述对所述多核处理器和所述MIC进行多层次数据划分包括: 根据计算任务的特点,对所述多核处理器和所述MIC进行分组,实现动态数据划分;以 及 对所述多核处理器组内和/或所述MIC组内的设备分别进行静态数据划分。
8. 如权利要求7所述的系统,其特征在于, 所述对多核处理器组内的设备进行静态数据划分的步骤包括: 所述多层次数据划分模块将逻辑控制、数据的10操作、网络通信、部分核心计算任务 分别划分给多个不同的所述多核处理器组内的设备; 所述对MIC组内的设备进行静态数据划分的步骤包括: 所述多层次数据划分模块将核心计算任务分别划分给不同的所述MIC组内的设备。
9. 如权利要求7所述的系统,其特征在于,所述计算节点包括一个或多个多核处理器 和一个或多个所述MIC。
10. 如权利要求7所述的系统,其特征在于,所述对所述多核处理器和所述MIC进行分 组的步骤包括: 所述多层次数据划分模块根据所述多核处理器内存大小和所述计算任务对内存的要 求计算出所需的所述多核处理器设备的数目GC,将N个所述计算节点中的N个所述多核处 理器设备划分为N/GC个组; 所述多层次数据划分模块根据所述MIC内存大小和所述计算任务对内存的要求计算 出所需的所述MIC设备的数目GM,则若每个所述计算节点包含Μ个MIC设备,将N个所述节 点的M*N个所述MIC设备划分为M*N/GM个组。
11. 如权利要求10所述的系统,其特征在于,还包括: 所述多核处理器设备的所述N/GC个组执行不同的计算任务;每个组内的所述多核处 理器设备再对同一个任务进行数据划分,所述数据划分通过所述多层次数据划分模块进行 静态的划分; 所述MIC设备的所述M*N/GM个组执行不同的计算任务;每个组内的所述MIC设备再对 同一个任务进行数据划分,所述数据划分通过所述多层次数据划分模块进行静态的划分。
12. 如权利要求7所述的系统,其特征在于,所述根据所述多核处理器和MIC编号及所 述分组将所述计算任务动态划分给所述多核处理器和所述MIC是指: 所述任务划分模块动态的发送任务编号给各个多核处理器组和/或MIC组内的组长, 所述组长再把所述任务编号广播给组内的组员,然后组内的设备同时计算所述任务编号对 应的计算任务的不同部分,计算完毕之后即可向所述任务划分模块请求下一个任务,直到 所有所述计算任务完毕为止。
【文档编号】G06F9/50GK104156271SQ201410377441
【公开日】2014年11月19日 申请日期:2014年8月1日 优先权日:2014年8月1日
【发明者】张广勇, 卢晓伟, 沈铂, 吴韶华, 王娅娟 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1