CN110333945A - 一种动态负载均衡方法、系统及终端 - Google Patents
一种动态负载均衡方法、系统及终端 Download PDFInfo
- Publication number
- CN110333945A CN110333945A CN201910383255.3A CN201910383255A CN110333945A CN 110333945 A CN110333945 A CN 110333945A CN 201910383255 A CN201910383255 A CN 201910383255A CN 110333945 A CN110333945 A CN 110333945A
- Authority
- CN
- China
- Prior art keywords
- gpu
- data
- remaining
- unit
- data group
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种动态负载均衡方法、系统及终端,动态确定异构多GPU系统中每个GPU的数据计算量;根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU分配不同长度的数据组;确定每个GPU的当前运行状态及剩余的数据量;当第一GPU完成处理所分配的数据组时,如果第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配。由于数据组并不是一次性全部提交到目标GPU,因此在二次分配的时候可以灵活地把可能存在计算延迟的GPU上的数据组中的剩余单位数据块分配到其它GPU,从而可以最大程度的利用数据传输时间重叠和多GPU计算资源,提高整个系统的并行计算性能。
Description
技术领域
本申请涉及大数据并行计算技术领域,具体涉及一种动态负载均衡方法、系统及终端。
背景技术
图形处理器(Graphics Processing Units,GPU)的计算性能在近几年得到了快速发展,以GPU为代表的并行计算成为了大数据和高性能计算的研究热点。但是受单个GPU的计算能力和内存容量的限制,当面临大数据处理或复杂的计算任务时,单个GPU的并行加速方案很难满足实时处理的要求。因此,当前大多数服务器和工作站都配备了多个GPU。在大数据处理时就需要使用多GPU系统,即把一个计算任务分配到多个GPU节点,由多个GPU分担、协作、并行完成该任务。
如图1所示为传统技术中一种多GPU系统框架,多个GPU连接在同一个主板上,GPU之间共享同一个CPU和CPU内存,板上的GPU可以通过点对点(P2P)机制实现数据的直接传输。GPU使用PCI-E x16接口连接到主板,而目前主流的主板通常最多支持4路x16接口,因此在单个CPU上通常可以接入4个GPU卡,即构成4-GPU独立计算机系统。在多GPU系统的编程中,可以使用多线程管理GPU设备,每个线程对应一个GPU,或者在单线程中调用CUDA API函数cudaSetDevice()切换GPU设备并为GPU分配计算任务。在Unix/Linux环境下可以使用PThread创建和管理线程,也可以使用OpenMP简化多线程编程实现。
多GPU系统中一个重要的问题就是负载均衡,早期的负载均衡算法主要是针对多CPU系统而提出,如轮询法、随机法、源地址哈希法、加权轮询法和加权随机法等。由于CPU和GPU的结构和特征差别较大,这些负载均衡方法都无法很好地移植到多GPU环境。
目前多GPU系统下使用较多的负载均衡方法是简单的平均分配法,即把一个大规模数据或任务平均拆分为规模一致的多个部分(数据块或子任务),然后把数据块或子任务分配到各个GPU节点。如图2所示,在一个拥有四个GPU节点的计算机系统中,把原始数据平均地分割成4个子集,并把每个子集分配到一个GPU上,各GPU分别处理分配到的数据子集,最后把所有GPU处理的中间结果传输到主机内存中并进行合并即可得到最终的计算结果。
上述负载均衡的方法在异构多GPU系统中(异构是指各GPU设备产自不同制造商或属于不同系列的产品,因而各GPU存在不同的计算性能),当多个GPU计算性能差别较大时,系统的性能取决于性能最低的GPU,这导致整体的计算性能非常低下,甚至比只使用其中一个性能较高的GPU的性能更低。而且上述负载均衡属于静态数据分配,这种静态的负载均衡方法没有考虑GPU在实际运行中的性能波动,这将导致错误的数据和任务分配模式,从而使得整个系统的计算性能急剧降低。
发明内容
本申请为了解决上述技术问题,提出了如下技术方案:
第一方面,本申请实施例提供了一种动态负载均衡方法,基于异构多GPU系统,其特征在于,所述方法包括:动态确定所述异构多GPU系统中每个GPU的数据计算量;根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同;在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间;当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。
采用上述实现方式,动态的反馈策略可以根据各个GPU计算节点的运行时性能状态动态地预测相对计算能力,进而动态地计算剩余数据的处理时间,实现动态地调整数据分配量,结合延时提交机制可以很好地修正数据分配错误,即使前一次负载均衡分配出现错误,由于数据组并没有全部提交到目标GPU,在二次分配的时候可以很方便地把可能存在延迟的数据组中的单位数据块分配到其它GPU,从而可以最大程度的利用数据传输重叠机制和多GPU计算资源,提高整个系统的并行计算性能。
结合第一方面,在第一方面第一种可能的实现方式中,所述动态确定所述异构多GPU系统中每个GPU的数据计算量包括:将每个GPU确定为一个独立的计算节点;通过模糊神经网络预测各个计算节点的相对计算能力,各个节点的相对计算能力用于计算相应节点的剩余数据处理时间。
结合第一方面,在第一方面第二种可能的实现方式中,所述根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,包括:将需要处理的数据总量以单位数据块进行划分;根据每个GPU的当前相对计算能力,为不同性能的GPU动态地分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
结合第一方面第一种可能的实现方式,在第一方面第三种可能的实现方式中,所述在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间,包括:将收集的所述计算节点的当前运行时状态以及剩余的数量动态地反馈给模糊神经网络;通过模糊神经网络对每个计算节点的当前运行状态进行分析确定出每个GPU的当前相对计算能力,进而计算出剩余数据的处理时间,以实现每个GPU上数据处理量在运行时的动态调整。
结合第一方面,在第一方面第四种可能的实现方式中,所述当第一GPU完成所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,包括:依据模糊神经网络得到的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间;确定分配给所述第二GPU数据组中剩余的单位数据块数量;根据所述第二GPU当前相对计算能力,计算出当前处理单位数据块需要的时间,并结合分配给所述第二GPU数据组中剩余的单位数据块数量,确定出所述第二GPU剩余数据的处理时间。
第二方面,本申请实施例提供了一种动态负载均衡系统,基于异构多GPU系统,其特征在于,所述系统包括:第一确定模块,用于动态确定所述异构多GPU系统中每个GPU的数据计算量;数据分配模块,用于根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同;第二确定模块,用于在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间;二次分配模块,用于当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。
结合第二方面,在第二方面第一种可能的实现方式中,所述第一确定模块包括:所述第一确定模块包括:第一确定单元,用于将每个GPU抽象为一个独立的计算节点;计算单元,通过模糊神经网络预测各个计算节点的相对计算能力,各个节点的相对计算能力用于计算相应节点的剩余数据处理时间。
结合第二方面,在第二方面第二种可能的实现方式中,所述数据分配模块包括:数据划分单元,用于将需要处理的数据总量以单位数据块进行划分;数据分配单元,根据每个GPU的当前相对计算能力,为不同性能的GPU动态地分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
结合第二方面第一种可能的实现方式,在第二方面第三种可能的实现方式中,所述第二确定模块包括:反馈单元,用于将收集的所述计算节点的当前运行时状态以及剩余的数据量动态地反馈给模糊神经网络;第二确定单元,用于通过模糊神经网络对每个计算节点的当前运行状态进行分析确定出每个GPU的当前相对计算能力,进而计算出剩余数据的处理时间,以实现每个GPU上数据处理量在运行时的动态调整。
结合第二方面,在第二方面第四种可能的实现方式中,所述二次分配模块包括:第三确定单元,依据模糊神经网络得到的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间;第四确定单元,用于确定分配给所述第二GPU数据组中剩余的数据块数量;第五确定单元,用于根据所述第二GPU当前相对计算能力,计算出当前处理单位数据块需要的时间,并结合分配给所述第二GPU数据组中剩余的数据块数量,确定出所述第二GPU剩余数据的处理时间。
第三方面,本申请实施例提供了一种终端,包括处理器;存储器,用于存储计算机可执行指令;当所述处理器执行所述计算机可执行指令时,所述处理器执行第一方面或第一方面任一可能的实现方式的动态负载均衡方法。
附图说明
图1为多GPU系统构架;
图2为传统的数据平均分配方法;
图3为本申请实施例提供的一种动态负载均衡方法的流程示意图;
图4为本申请实施例提供的一种基于模糊神经网络的数据动态负载均衡调度方法的流程示意图;
图5为本申请实施例提供的一种动态负载均衡系统的示意图;
图6为本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面结合附图与具体实施方式对本方案进行阐述。
图3为本申请实施例提供的一种动态负载均衡方法的流程示意图,参见图3,所述方法包括:
S101,动态确定所述异构多GPU系统中每个GPU的数据计算量。
将每个GPU确定为一个独立的计算节点,通过模糊神经网络预测各个计算节点的相对计算能力。
一个示意性举例,在一个异构多GPU系统中,假设有m个GPU,则对应m个计算节点NODE={N1,N2,…,Nm},对于原始大数据块,初始先划分一个相同尺寸的单位数据块集合DATA={D1,D2,…,Dn}。负载均衡的目的是建立一个从单位数据块集合DATA到计算设备集合NODE的映射,把DATA划分为m个数据组DGROUP={W1,W2,…,Wm},每个数据组包含一定数量的单位数据块,其中Wi为分配到计算节点Ni的数据组。以各计算节点达到负载均衡、数据处理时间最小为优化目标。对于任意一个计算节点Ni,定义相对计算能力Pi来表示该节点的计算性能,相对计算能力的定义如下:
其中,Dunit代表一个单位数据块;Ti unit为计算节点处理该单位数据块实际消耗的时间;f(x)为一个归一化函数。为了预测计算节点的当前计算能力,本发明引入模糊数学理论,选择五个与计算性能相关的性能评估指标作为论域。这五个特征分别为浮点计算性能(F)、内存大小(M)、并行能力(P)、计算资源占用率(UF)、内存占用率(UM)。在每个论域中使用模糊概念“低”和“高”定义模糊集合,总共得到10个模糊集合。同样,相对计算能力Pi也需要进行模糊化。论域和模糊集合如表1所示,其中论域F、M、P、UF、UM作为输入值,论域CP为输出值。
表1论域和模糊集合
S102,根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组。
本实施中,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同。具体地,将需要处理的数据总量以单位数据块进行划分;根据每个GPU的当前相对计算能力分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
数据组中的单位数据块并不是一次性全部提交到计算节点,而是使用重叠机制以流水线的方式提交(数据组中的数据块有未提交、已提交和已完成三种状态)。设一个计算节点Ni处理一个数据块所需要的时间为且与Pi成正相关,即分配给Ni的数据量为Wi,则该计算节点所需要的总时间为:
Ti=Ti unit×Wi
理想状态下所有的计算节点同时完成工作,即:
从而可以得出Wi分配方式,以两个计算节点为例,即T1=T2,则:
S103,在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间。
具体地,如图4所示,将收集的所述计算节点N1-N3的运行时状态以及剩余的数据量动态地反馈给模糊神经网络FNN。通过模糊神经网络FNN对每个计算节点的分析确定出每个GPU的当前相对计算能力,进而计算剩余数据的处理时间,以实现运行时动态调整。
本申请结合BP(back propagation)神经网络设计了一个模糊神经网络结构。其中,第一层为清晰输入层,输入多GPU系统中五个特征的清晰值;第二层为模糊化层,使用隶属函数对第一层的输入值进行模糊化,得到模糊集合的隶属度,第二层也可看作为BP神经网络的输入层;第三层和第四层分别为BP神经网络的隐含层和输出层,输出层有两个神经元,分别输出论域CP的两个模糊集隶属度CPL和CPH;第五层为解模糊层,把第四层得到的模糊值转化为一个清晰值,即相对计算能力。本申请不限于BP神经网络,也可以为其它网络结构也可以达到类似的效果,如采用Hopfield网络、多层感知机甚至深度学习。
S104,当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配。
其中,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。本实施例中,为了确定第二GPU数据处理完毕需要的时间,首先依据模糊神经网络预测的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间然后确定分配给所述第二GPU数据组中剩余的单位数据块数量,最后根据所述第二GPU处理单位数据块需要的时间和分配给所述第二GPU数据组中剩余的单位数据块数量确定出所述第二GPU的剩余数据处理时间。
假设已完成处理的数据任务量为Wi',那么可以得到该节点处理剩余数据任务的处理时间为:
Ti'=Ti unit×(Wi-Wi')
通过二次分配使数据分配可达到均衡状态,从而使数据并行处理时间最短。而且本实施例中不限于二次分配,还可以三次分配、四次分配或者更多次,只要存在数据处理完毕处于闲置状态的GPU,则可以根据实际情况对未提交给其他GPU的单位数据块进行再次分配,重新组织,以使得数据并行处理时间最短。
由上述实施例可知,本实施例提供了一种动态负载均衡方法,本方法引入模糊数学理论,选择五个与计算性能相关的性能评估指标作为论域。这五个性能指标同时覆盖、融合了GPU的静态和动态性能。通过预测GPU计算节点的计算性能(相对计算能力)就可以使用数据分配模型准确地为各个GPU计算节点动态地分配数据和任务。结合模糊数学和BP神经网络设计了一个模糊神经网络结构,可高效地处理负载均衡系统中的不确定性问题。动态的反馈策略可以根据各个GPU计算节点的运行时性能状态动态地调整数据的分配量,结合延时提交机制可以很好地修正数据分配的错误,即使前一次负载均衡分配出现错误,由于数据组中剩余的单位数据块并没有全部提交到目标GPU,在二次分配的时候也可以很方便地把可能存在延迟的GPU的数据组中的剩余单位数据块分配给其它GPU,从而可以最大程度的利用数据传输重叠机制和多GPU计算资源,提高整个系统的并行计算性能。
与上述实施例提供的一种动态负载均衡方法相对应,本申请还提供了一种动态负载均衡系统的实施例。参见图5,动态负载均衡系统20包括:第一确定模块201、数据分配模块202、第二确定模块203和二次分配模块204。
所述第一确定模块201,用于动态确定所述异构多GPU系统中每个GPU的数据计算量。所述数据分配模块202,用于根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同。所述第二确定模块203,用于在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间。所述二次分配模块204,用于当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。
进一步地,所述第一确定模块201包括:第一确定单元和计算单元。所述第一确定单元,用于将每个GPU抽象为一个独立的计算节点。所述计算单元,通过模糊神经网络预测各个计算节点的相对计算能力,各个节点的相对计算能力用于计算相应节点的剩余数据处理时间。
所述数据分配模块202包括:数据划分单元和数据分配单元。所述数据划分单元,用于将需要处理的数据总量以单位数据块进行划分。所述数据分配单元,根据每个GPU的当前相对计算能力,为不同性能的GPU动态地分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
所述第二确定模块203包括:反馈单元和第二确定单元。所述反馈单元,用于将收集的所述计算节点的当前运行时状态以及剩余数据的处理时间动态地反馈给模糊神经网络。所述第二确定单元,用于通过模糊神经网络对每个计算节点的当前运行状态进行分析确定出每个GPU的当前相对计算能力,进而计算出剩余数据的处理时间,以实现每个GPU上数据处理量在运行时的动态调整。
所述二次分配模块204包括:第三确定单元、第四确定单元和第五确定单元。所述第三确定单元,用于依据模糊神经网络得到的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间。所述第四确定单元,用于确定分配给所述第二GPU数据组中剩余的单位数据块数量。所述第五确定单元,用于根据所述第二GPU当前相对计算能力,计算出当前处理单位数据块需要的时间,并结合分配给所述第二GPU数据组中剩余的数据块数量确定出所述第二GPU的剩余数据处理时间。
本申请实施例还提供了一种终端,参见图4,所述终端30包括:处理器301、存储器302和通信接口303。
在图4中,处理器301、存储器302和通信接口303可以通过总线相互连接;总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器301通常是控制终端30的整体功能,例如终端的启动、以及终端启动后对数据进行分割、GPU运行时状态监控和数据动态分配。此外,处理器301可以是通用处理器,例如,中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:networkprocessor,缩写:NP)或者CPU和NP的组合。处理器也可以是微处理器(MCU)。处理器还可以包括硬件芯片。上述硬件芯片可以是专用集成电路(ASIC),可编程逻辑器件(PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(CPLD),现场可编程逻辑门阵列(FPGA)等。
存储器302被配置为存储计算机可执行指令以支持终端30数据的操作。存储器301可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
启动终端30后,处理器301和存储器302上电,处理器301读取并执行存储在存储器302内的计算机可执行指令,以完成上述的动态负载均衡方法实施例中的全部或部分步骤。
通信接口303用于终端30传输数据,例如实现与各个GPU之间的数据通信。通信接口303包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口包括USB接口、Micro USB接口,还可以包括以太网接口。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
在一个示意性实施例中,本申请实施例提供的终端30还包括电源组件,电源组件为终端30的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为终端30生成、管理和分配电力相关联的组件。
通信组件,通信组件被配置为便于终端30和其他设备之间有线或无线方式的通信。终端30可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一个示意性实施例中,终端30可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、终端、微终端、处理器或其他电子元件实现。
本申请说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统及终端实施例而言,由于其中的方法基本相似于方法的实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当然,上述说明也并不仅限于上述举例,本申请未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述;以上实施例及附图仅用于说明本申请的技术方案并非是对本申请的限制,如来替代,本申请仅结合并参照优选的实施方式进行了详细说明,本领域的普通技术人员应当理解,本技术领域的普通技术人员在本申请的实质范围内所做出的变化、改型、添加或替换都不脱离本申请的宗旨,也应属于本申请的权利要求保护范围。
Claims (10)
1.一种动态负载均衡方法,基于异构多GPU系统,其特征在于,所述方法包括:
动态确定所述异构多GPU系统中每个GPU的数据计算量;
根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同;
在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间;
当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。
2.根据权利要求1所述的动态负载均衡方法,其特征在于,所述动态确定所述异构多GPU系统中每个GPU的数据计算量包括:
将每个GPU确定为一个独立的计算节点;
通过模糊神经网络预测各个计算节点的相对计算能力,各个节点的相对计算能力用于计算相应节点的剩余数据处理时间。
3.根据权利要求1所述的动态负载均衡方法,其特征在于,所述根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,包括:
将需要处理的数据总量以单位数据块进行划分;
根据每个GPU的当前相对计算能力,为不同性能的GPU动态地分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
4.根据权利要求2所述的动态负载均衡方法,其特征在于,所述在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及数据的剩余处理时间,包括:
将收集的所述计算节点的当前运行时状态以及剩余的数据量动态地反馈给模糊神经网络;
通过模糊神经网络对每个计算节点的当前运行状态进行分析确定出每个GPU的当前相对计算能力,进而计算出剩余数据的处理时间,以实现每个GPU上数据处理量在运行时的动态调整。
5.根据权利要求1所述的动态负载均衡方法,其特征在于,所述当第一GPU完成所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,包括:
依据模糊神经网络得到的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间;
确定分配给所述第二GPU数据组中剩余的单位数据块数量;
根据所述第二GPU当前相对计算能力,计算出当前处理单位数据块需要的时间,并结合分配给所述第二GPU数据组中剩余的单位数据块的数量,确定出所述第二GPU的剩余数据处理时间。
6.一种动态负载均衡系统,基于异构多GPU系统,其特征在于,所述系统包括:
第一确定模块,用于动态确定所述异构多GPU系统中每个GPU的数据计算量;
数据分配模块,用于根据需要处理的数据总量和每个GPU的相对计算能力为不同性能的GPU动态地分配不同长度的数据组,不同所述数据组中包含的单位数据块的数量不同,同一数据组中不同单位数据块提交给对应所述GPU的时间不同;
第二确定模块,用于在所述GPU处理所述数据组时,依据每个GPU的当前运行状态和剩余的数据量,动态地确定每个GPU的当前相对计算能力及剩余数据的处理时间;
二次分配模块,用于当第一GPU完成处理所分配的数据组时,如果存在第二GPU剩余数据处理时间大于预设阈值,则将剩余数据量进行二次分配,所述第一GPU和第二GPU为所述异构多GPU系统中任一GPU。
7.根据权利要求6所述的动态负载均衡系统,其特征在于,所述第一确定模块包括:
第一确定单元,用于将每个GPU抽象为一个独立的计算节点;
计算单元,通过模糊神经网络预测各个计算节点的相对计算能力,各个节点的相对计算能力用于计算相应节点的剩余数据处理时间。
8.根据权利要求6所述的动态负载均衡系统,其特征在于,所述数据分配模块包括:
数据划分单元,用于将需要处理的数据总量以单位数据块进行划分;
数据分配单元,根据每个GPU的当前相对计算能力,为不同性能的GPU动态地分配不同长度的数据组,其中每个数据组中包含多个单位数据块,其中数据组中的单位数据块采用流水线的方式提交给每个GPU,使得每个数据组中的单位数据块存在不同的处理状态。
9.根据权利要求7所述的动态负载均衡系统,其特征在于,所述第二确定模块包括:
反馈单元,用于将收集的所述计算节点的当前运行时状态以及数据的剩余处理时间动态地反馈给模糊神经网络;
第二确定单元,用于通过模糊神经网络对每个计算节点的当前运行状态进行分析确定出每个GPU的当前相对计算能力,进而计算出剩余数据的处理时间,以实现每个GPU上数据处理量在运行时的动态调整。
10.根据权利要求6所述的动态负载均衡系统,其特征在于,所述二次分配模块包括:
第三确定单元,依据模糊神经网络得到的当前相对计算能力,确定所述第二GPU处理单位数据块需要的时间;
第四确定单元,用于确定分配给所述第二GPU数据组中剩余的单位数据块数量;
第五确定单元,用于根据所述第二GPU当前相对计算能力,计算出当前处理单位数据块需要的时间,并结合分配给所述第二GPU数据组中剩余的数据块数量,确定出所述第二GPU的剩余数据处理时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383255.3A CN110333945A (zh) | 2019-05-09 | 2019-05-09 | 一种动态负载均衡方法、系统及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910383255.3A CN110333945A (zh) | 2019-05-09 | 2019-05-09 | 一种动态负载均衡方法、系统及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110333945A true CN110333945A (zh) | 2019-10-15 |
Family
ID=68140046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910383255.3A Pending CN110333945A (zh) | 2019-05-09 | 2019-05-09 | 一种动态负载均衡方法、系统及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333945A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515739A (zh) * | 2019-10-23 | 2019-11-29 | 上海燧原智能科技有限公司 | 深度学习神经网络模型负载计算方法、装置、设备及介质 |
CN111062855A (zh) * | 2019-11-18 | 2020-04-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形流水线性能分析方法 |
CN111614769A (zh) * | 2020-05-22 | 2020-09-01 | 武汉魅瞳科技有限公司 | 一种深度学习技术的行为智能分析引擎系统及控制方法 |
CN112753018A (zh) * | 2020-03-04 | 2021-05-04 | 深圳市大疆创新科技有限公司 | 自适应负载均衡的方法、系统及存储介质 |
CN113051957A (zh) * | 2019-12-26 | 2021-06-29 | 浙江宇视科技有限公司 | 一种数据分析方法与系统 |
CN113992493A (zh) * | 2020-07-08 | 2022-01-28 | 阿里巴巴集团控股有限公司 | 视频处理方法、系统、设备及存储介质 |
CN113992589A (zh) * | 2021-10-21 | 2022-01-28 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN117472594A (zh) * | 2023-12-27 | 2024-01-30 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的处理器任务执行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130293546A1 (en) * | 2012-05-03 | 2013-11-07 | Samsung Electronics Co., Ltd. | Dynamic load balancing apparatus and method for graphic processing unit (gpu) |
CN104035751A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
CN104580503A (zh) * | 2015-01-26 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种高效动态负载均衡的处理大规模数据的系统及方法 |
-
2019
- 2019-05-09 CN CN201910383255.3A patent/CN110333945A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130293546A1 (en) * | 2012-05-03 | 2013-11-07 | Samsung Electronics Co., Ltd. | Dynamic load balancing apparatus and method for graphic processing unit (gpu) |
CN104035751A (zh) * | 2014-06-20 | 2014-09-10 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
CN104580503A (zh) * | 2015-01-26 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种高效动态负载均衡的处理大规模数据的系统及方法 |
Non-Patent Citations (2)
Title |
---|
CHAO-LONG ZHANG等: "A Fuzzy Neural Network Based Dynamic Data Allocation Model on Heterogeneous Multi-GPUs for Large-scale Computations", 《INTERNATIONAL JOURNAL OF AUTOMATION AND COMPUTING》 * |
MICHAEL BOYER等: "Load Balancing in a Changing World:Dealing with Heterogeneity and Performance Variability", 《IN PROCEEDINGS OF ACM INTERNATIONAL CONFERENCE ON COMPUTING FRONTIERS》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515739B (zh) * | 2019-10-23 | 2020-01-31 | 上海燧原智能科技有限公司 | 深度学习神经网络模型负载计算方法、装置、设备及介质 |
CN110515739A (zh) * | 2019-10-23 | 2019-11-29 | 上海燧原智能科技有限公司 | 深度学习神经网络模型负载计算方法、装置、设备及介质 |
CN111062855A (zh) * | 2019-11-18 | 2020-04-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形流水线性能分析方法 |
CN111062855B (zh) * | 2019-11-18 | 2023-09-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形流水线性能分析方法 |
CN113051957A (zh) * | 2019-12-26 | 2021-06-29 | 浙江宇视科技有限公司 | 一种数据分析方法与系统 |
CN112753018B (zh) * | 2020-03-04 | 2022-06-10 | 深圳市大疆创新科技有限公司 | 自适应负载均衡的方法、系统及存储介质 |
CN112753018A (zh) * | 2020-03-04 | 2021-05-04 | 深圳市大疆创新科技有限公司 | 自适应负载均衡的方法、系统及存储介质 |
CN111614769B (zh) * | 2020-05-22 | 2023-05-09 | 武汉魅瞳科技有限公司 | 一种深度学习技术的行为智能分析引擎系统及控制方法 |
CN111614769A (zh) * | 2020-05-22 | 2020-09-01 | 武汉魅瞳科技有限公司 | 一种深度学习技术的行为智能分析引擎系统及控制方法 |
CN113992493A (zh) * | 2020-07-08 | 2022-01-28 | 阿里巴巴集团控股有限公司 | 视频处理方法、系统、设备及存储介质 |
CN113992589A (zh) * | 2021-10-21 | 2022-01-28 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN113992589B (zh) * | 2021-10-21 | 2023-05-26 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN117472594A (zh) * | 2023-12-27 | 2024-01-30 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的处理器任务执行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333945A (zh) | 一种动态负载均衡方法、系统及终端 | |
CN102232282B (zh) | 一种实现数据中心资源负载均衡的方法及装置 | |
CN104881325A (zh) | 一种资源调度方法和资源调度系统 | |
CN108431796B (zh) | 分布式资源管理系统和方法 | |
CN103713956B (zh) | 应用于云计算虚拟化管理环境中的智能加权负载均衡方法 | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
CN107003887A (zh) | Cpu超载设置和云计算工作负荷调度机构 | |
CN103853618B (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
US8892728B2 (en) | Automatic zone-based management of a data center | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
US10027596B1 (en) | Hierarchical mapping of applications, services and resources for enhanced orchestration in converged infrastructure | |
CN108804383B (zh) | 基于度量空间的支撑点并行枚举方法及装置 | |
CN111464659A (zh) | 节点的调度、节点的预选处理方法、装置、设备及介质 | |
US20210326185A1 (en) | Method, first agent and computer program product controlling computing resources in a cloud network for enabling a machine learning operation | |
da Rosa Righi et al. | Enhancing performance of IoT applications with load prediction and cloud elasticity | |
CN112817728A (zh) | 任务调度方法、网络设备和存储介质 | |
Lakzaei et al. | A joint computational and resource allocation model for fast parallel data processing in fog computing | |
CN115187144B (zh) | 虚拟电厂电力流转方法、装置、设备、介质和程序产品 | |
CN106844037B (zh) | 一种基于knl的测试方法及系统 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
US10180712B2 (en) | Apparatus and method for limiting power in symmetric multiprocessing system | |
Alizadeh et al. | TPEL: Task possible execution level for effective scheduling in fog–cloud environment | |
Ghazali et al. | CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning | |
CN115373828A (zh) | 一种资源调度方法、装置、设备以及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |