中央处理器和图形处理器负载均衡的方法和系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术,尤指一种中央处理器(Central Processing Unit,简称:CPU)和图形处理器(Graphics Processing Unit,简称:GPU)负载均衡的方法和系统。
【背景技术】
[0002]目前,随着高性能计算应用软件的发展,应用对计算性能的需求越来越高,越来越多的高性能计算应用软件采用的是CPU与GPU异构协同计算的计算模式,即在传统的多核CPU架构基础上扩展GPU架构处理器,组成CPU和GPU混合的架构平台,基于该架构平台设计相应的软件解决方案,使得CPU与GPU能够有效的进行协同计算。其中,CPU与GPU的负载均衡问题是关系到CPU与GPU混合架构平台的计算性能能否发挥到极致的重要因素。
[0003]现有技术中,将CPU与GPU异构协同计算集群划分为多个计算节点,节点间采用分布式的计算方法,计算节点内采用CPU与GPU异构并行计算,而对于设备内采用的是共享存储器模型,设计负载均衡时,只需要保证设备之间的负载均衡即可。
[0004]但是,采用现有技术,对于CPU与GPU协同计算,由于CPU和GPU计算能力相差很大,如果给CPU设备和GPU设备划分相同的任务或者数据量,则会增加CPU设备与GPU设备间负载均衡的难度。
【发明内容】
[0005]为了解决上述技术问题,本发明提供了一种中央处理器和图形处理器负载均衡的方法和系统,能够对CPU设备和GPU设备进行分组来完成任务计算,从而优化了 CPU设备与GPU设备间的负载均衡。
[0006]第一方面,本发明提供的中央处理器和图形处理器负载均衡的方法,应用于包含多个计算节点的CPU与GPU异构协同计算集群中,包括:
[0007]对至少一个相同的CPU设备和至少一个相同的GPU设备分别进行编号,其中,每个计算节点的所有CPU作为一个CPU设备,每个计算节点的一块GPU作为一个GPU设备;
[0008]根据计算每个任务需要的内存空间,将所述CPU设备和所述GPU设备分别按照编号顺序进行分组;
[0009]将每个任务分别划分给一个CPU设备分组或一个GPU设备分组计算。
[0010]第二方面,本发明提供的中央处理器和图形处理器负载均衡的系统,应用于包含多个计算节点的CPU与GPU异构协同计算集群中,包括:编号单元、分组单元和计算单元;
[0011]所述编号单元,用于对至少一个相同的CPU设备和至少一个相同的GPU设备分别进行编号,其中,每个计算节点的所有CPU作为一个CPU设备,每个计算节点的一块GPU作为一个GPU设备;
[0012]所述分组单元,用于根据计算每个任务需要的内存空间,将所述CPU设备和所述GHJ设备分别按照编号顺序进行分组;
[0013]所述计算单元,用于将每个任务分别划分给一个CPU设备分组或一个GPU设备分组计算。
[0014]与现有技术相比,本发明提供的中央处理器和图形处理器负载均衡的方法和系统,应用于包含多个计算节点的CPU与GPU异构协同计算集群中,通过对至少一个相同的CPU设备和至少一个相同的GPU设备分别进行编号,再根据计算每个任务所需要的内存空间,将所述CPU设备和所述GPU设备分别按照编号顺序进行分组,然后将每个任务划分给一个CPU设备分组或一个GPU设备分组来完成每个任务的计算,由于一个组内的CPU设备或GPU设备都相同,即具有相同的内存空间,因此都具有相同的计算能力,将划分的任务数据分配给组内每个CPU设备或者每个GPU设备,使得他们可以同时处理相同的任务数据,从而完成所有任务的计算,进而优化了 CPU与GPU设备间负载均衡。
[0015]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0016]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0017]图1为本发明实施例提供的中央处理器和图形处理器负载均衡的方法实施例一的流程图;
[0018]图2本发明实施例提供的中央处理器和图形处理器协同计算任务划分示意图;
[0019]图3为本发明实施例提供的中央处理器和图形处理器负载均衡的系统结构框图。
【具体实施方式】
[0020]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0021]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0022]本发明的实施例可应用于包含多个计算节点的CPU和GPU异构协同计算集群的平台上,其中CPU为相同的多核处理器,主要用于程序的逻辑控制、数据的1操作、网络通信、部分核心计算等;GPU相同的为众核处理器,主要用于核心任务的计算,但并不以此为限。
[0023]本发明实施例涉及的方法,旨在解决现有技术中由于CPU和GPU计算能力相差很大,如果在给CPU设备和GPU设备划分相同的任务或者数据量时,则增加CPU与GPU设备间负载均衡的难度的技术问题。
[0024]图1为本发明实施例提供的中央处理器和图形处理器负载均衡的方法实施例一的流程图;图2为本发明实施例提供的中央处理器和图形处理器协同计算任务划分示意图;如图1-图2所示,包括:
[0025]S101、对至少一个相同的CPU设备和至少一个相同的GPU设备分别进行编号,其中,每个计算节点的所有CPU作为一个CPU设备,每个计算节点的一块GPU卡作为一个GPU设备。
[0026]具体的,CPU与GPU异构协同计算集群中包含一个或多个相同的CPU和一个或多个相同的GPU,其中,每个计算节点上的所有CPU可以看作一个设备,每块GPU卡可以看作一个设备,对所有CPU设备和GPU设备分别编号,为了更好的说明本方案,特举例说明,假设N个节点上共有N个CPU,则N个节点上共有N个CPU设备,每个节点上有M块GPU卡,则N个节点上共有M*N个GPU设备,给每个CPU设备编号,可以为1,2,…,N;给每个GPU设备编号,可以为1,2,…,M*N,还可以采用字母或者其他的编码,只需要保证可以每个CPU设备和GPU设备有可以被识别的编号即可,但并不限于此。
[0027]S102、根据计算每个任务需要的内存空间,将所述CPU设备和所述GPU设备分别按照编号顺序进行分组。
[0028]具体的,每个任务的数据结构成员包括任务大小、任务总时间、单位任务平均时间、相对性能加速比指数等,其中有些任务不能细分,一个CPU设备或者一个GPU设备上可用的内存空间不满足其计算的内存要求,就需要多个CPU设备或者GPU设备对任务进行共同计算,此时根据计算每个任务需要的内