CN116700993A - 一种负载均衡方法、装置、设备及可读存储介质 - Google Patents
一种负载均衡方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116700993A CN116700993A CN202310962236.2A CN202310962236A CN116700993A CN 116700993 A CN116700993 A CN 116700993A CN 202310962236 A CN202310962236 A CN 202310962236A CN 116700993 A CN116700993 A CN 116700993A
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- tasks
- computing node
- nodes
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000004891 communication Methods 0.000 claims description 96
- 230000008901 benefit Effects 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 7
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 21
- 238000013461 design Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
本发明在计算机应用技术领域,公开了一种负载均衡方法、装置、设备及可读存储介质,该方法包括:获取多个任务的优先级,多个计算节点的优先级;逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。本发明的技术效果:基于任务与计算节点的优先级,计算节点空闲与否的状态,进行任务按需分配和任务拆分重分配,实现负载均衡,从而加速整体任务的完成效率,提升系统整体性能。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种负载均衡方法、装置、设备及可读存储介质。
背景技术
现有的网络流量或资源调度方法一定程度上提升了系统性能,但是仍然无法从根本上解决负载不均问题。
具体的,在硬件资源利用率因素方面,跨域多元计算系统中由于存在多种不同类型的计算资源,这些资源在系统中得到没有被充分合理地利用,导致资源闲置或过载。在任务分配因素方面,现有系统简单粗放将任务分配给可用的计算节点,从而导致任务的低效执行。
综上所述,如何有效地解决负载均衡等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种负载均衡方法、装置、设备及可读存储介质,能够基于任务情况和计算节点的具体情况,进行任务分配,及已分配任务的拆分重分配,能够使得任务被高效执行,资源不会出现闲置和过载,达到负载均衡。
为解决上述技术问题,本发明提供如下技术方案:
一种负载均衡方法,包括:
获取多个任务的优先级和多个计算节点的优先级;
逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;
若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点。
优选地,所述若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在任务未分配完的情况下,若所述第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的所述第一任务分配给所述第一计算节点;
在所述第一任务未被所述第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分所述第一任务的未完成部分后,分别将拆分所得的子任务分配给所述第一计算节点和所述第二计算节点。
优选地,所述若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在无未分配任务的情况下,若N个所述第一计算节点完成了当前分配的任务,则对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,并将拆分后的N个子任务分别分配给N个所述第一计算节点。
优选地,所述对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,包括:
从已分配的任务中,选出待执行部分的待执行时长最长的任务确定为所述第一任务;
拆分所述待执行部分为N+1个子任务。
优选地,拆分所述待执行部分为N+1个子任务,包括:
对所述待执行部分进行N+1等份拆分,得到N+1个子任务。
优选地,所述对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,包括:
从已分配的任务中,随机选择一个未完成的任务确定为所述第一任务;
拆分所述第一任务中未处理部分为N+1份,得到N+1个子任务。
优选地,所述获取多个任务的优先级,包括:
获取多个任务的单位效益;
利用所述单位效益,确定多个所述任务的优先级。
优选地,所述获取多个任务的单位效益,包括:
获取多个任务的执行时长、任务收益和任务成本;
将单个任务的所述任务收益与所述任务成本做差,并将差值与所述执行时长的比值确定为该任务的单位效益。
优选地,获取多个计算节点的优先级,包括:
从存储介质中读取所述计算节点的优先级。
优选地,从存储介质中读取所述计算节点的优先级之前,还包括:
获取多个计算节点的性能代价比;
利用所述性能代价比,确定多个计算节点的优先级;
将优先级信息存入所述存储介质。
优选地,获取多个计算节点的性能代价比,包括:
获取多个计算节点的计算能力、通信带宽、故障率和功耗;
对于单个计算节点计算1减所述故障率、所述计算能力和所述通信带宽的乘积,并将所述乘积与所述功耗的比值,确定为该计算节点的性能代价比。
优选地,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
按照任务的优先级对任务进行排序,得到任务队列;
按照计算节点的优先级对空闲状态的计算节点进行排序,得到节点队列;
依次将所述任务队列中的任务逐一分配给所述节点队列中的计算节点。
优选地,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
逐个将未分配且优先级最高的任务,分配给跨域多元异构计算系统中处于空闲状态且优先级最高的计算节点。
优选地,所述跨域多元异构计算系统中的计算节点位于多个区域,多个计算节点包括同构节点和异构节点。
优选地,所述跨域多元异构计算系统,包括:局部树形拓扑和全局网型拓扑。
优选地,包括:
所述局部树形拓扑的根节点为局部主节点;
在所述局部树形拓扑中,计算节点间具有树形拓扑通信连接;
在所述全局网型拓扑中,所述局部主节点间具有网型拓扑通信连接。
优选地,所述局部树形拓扑的获取过程,包括:
对于同一个域,获取每两个计算节点之间的综合通信代价;
基于所述综合通信代价,在域内建立局部树形拓扑。
优选地,获取每两个计算节点之间的综合通信代价,包括:
获取每两个计算节点之间的固有开销和延迟开销;
基于所述固有开销和所述延迟开销计算该两个计算节点之间综合通信代价。
优选地,基于所述综合通信代价,在域内建立局部树形拓扑,包括:
在同一个域,基于计算节点搭建网型拓扑,并在所述网型拓扑的边上表示对应的综合通信代价;
从所述网型拓扑中随机选择一个计算节点作为起点,仅保留与该计算节点相连的最小所述综合通信代价的边,并对下一计算节点仅保留与该下一计算节点相连的最小所述综合通信代价的边,直到获得链式拓扑;
基于所述链式拓扑,建立所述局部树形拓扑。
优选地,基于所述链式拓扑,建立所述局部树形拓扑,包括:
从所述链式拓扑中选出中点,并将所述中点确定为所述局部树形拓扑的根节点;
将与所述根节点直接或间接相连的节点确定为所述局部树形拓扑的叶子节点,得到所述局部树形拓扑。
优选地,还包括:
若所述局部树形拓扑的高度大于指定数值,则将最底层叶子节点移动至上一层级。
优选地,所述全局网型拓扑的获取过程,包括:
将所述局部树形拓扑的根节点确定为局部主节点;
对每两个所述局部主节点建立通信连接,得到所述全局网型拓扑。
优选地,若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在任务还未分配完的情况下,若所述第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的所述第一任务分配给所述第一计算节点;
在所述第一任务未被所述第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分所述第一任务的未完成部分后,分别将拆分所得的子任务分配给所述第一计算节点和所述第二计算节点;
在所述第一任务的子任务被执行完毕的情况下,若任务还未分配完,则将未分配任务中优先级最高的第二任务进行拆分,得到所述第二任务的子任务,并将所述第二任务的子任务分配给所述第一计算节点和所述第二计算节点;
在所述第二任务的子任务未被执行完毕的情况下,若任务已被分配完毕且第四计算节点完成了当前分配的任务,则对所述第二任务拆分后的子任务中未完成部分进行拆分,得到新子任务,将所述新子任务分配给所述第一计算节点、所述第二计算节点和所述第四计算节点;
在所述第二任务被执行完毕的情况下,若任务已分配完毕且当前存在未执行完毕的第三任务,则拆分所述第三任务中未完成部分,并将拆分出的所述第三任务的子任务分配给执行所述第二任务的计算节点;
在所述第二任务的子任务被执行完毕的情况下,若任务已分配完毕且当前无未执行完毕的所述第三任务,则确定所述多个任务执行完毕。
一种负载均衡装置,包括:
优先级获取模块,用于获取多个任务的优先级和多个计算节点的优先级;
任务初始化分配模块,用于逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;
任务拆分分配模块,用于若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述负载均衡方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述负载均衡方法的步骤。
应用本发明实施例所提供的方法,获取多个任务的优先级和多个计算节点的优先级;逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。
在本发明中,首先获取多个任务的优先级和以及多个计算节点的优先级,然后,基于将优先级最高的任务分配给计算节点中优先级最高且空闲状态的计算节点。也就是说,在分配任务时,不仅考虑任务的优先级,也考虑计算节点的优先级,以及计算节点的是否处于空闲状态。逐个进行任务分配,便可使得最高优先级的任务分配给空闲状态下,优先级最高的计算节点,而次高优先级的任务则分配给空闲状态下,次高优先级的计算节点,以此类推,直到当前无空闲状态的计算节点或者全部任务都分配完毕。若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将该子任务分配给第一计算节点。第一任务中未处理完的部分任务进行拆分,并将拆分出的子任务分配给第一计算节点。也就是说,对于同一个任务,可以在已分配了计算节点后,当出现了空闲状态的计算节点的情况下,可以通过任务拆分,并进行二次分配,避免发生部分计算节点过载,部分计算节点闲置的情况,多个计算节点处理同一个任务,还可缩短任务被完成的时长。
本发明的技术效果:基于任务与计算节点的优先级,计算节点空闲与否的状态,进行按需分配和多次拆分重分配,实现负载均衡,从而加速整体任务的完成效率,提升系统整体性能。
相应地,本发明实施例还提供了与上述负载均衡方法相对应的负载均衡装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种负载均衡方法的实施流程图;
图2为本发明实施例中一种每条边权重为综合通信代价的6个节点拓扑结构图;
图3为本发明实施例中一种保留节点1代价最小边拓扑结果示意图;
图4为本发明实施例中一种保留节点3代价最小边拓扑结果示意图;
图5为本发明实施例中一种综合通信代价最少的网络拓扑结果示意图;
图6为本发明实施例中一种以节点2为根节点的二叉树示意图;
图7为本发明实施例中一种修改后最终的二叉树型拓扑示意图;
图8为本发明实施例中一种分布式通信拓扑设计模块示意图;
图9为本发明实施例中一种五个计算任务及时长示意图;
图10为本发明实施例中一种计算任务A、B、C分配情况示意图;
图11为本发明实施例中一种计算任务D分配情况示意图;
图12为本发明实施例中一种计算任务D平摊至计算节点1与计算节点2的负载均衡策略的示意图;
图13为本发明实施例中一种计算任务E平摊至计算节点1与计算节点2之上的示意图;
图14为本发明实施例中一种计算任务E的负载均衡使得全局计算任务执行时长最短的示意图;
图15为一种计算任务D完全分配至计算节点2的示意图;
图16为一种计算任务E完全分配至计算节点1的示意图;
图17为本发明实施例中一种负载均衡装置的结构示意图;
图18为本发明实施例中一种电子设备的结构示意图;
图19为本发明实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例中一种负载均衡方法的流程图,该方法包括以下步骤:
S101、获取多个任务的优先级和多个计算节点的优先级。
在本发明中,可以基于任务的重要程度、处理时长、收益、困难度等一个或多个因素来明确任务的优先级。例如,重要程度越高的任务,其优先级越高;对于处理时长,其时长越长,优先级越高;对于收益,则收益越大,优先级越高;困难度越大,则优先级越高。当多个因素共同确定的情况下,可以通过设定权重等级,或计算相关比值等方式进行明确。
在本发明中的一种具体实施方式中,获取多个任务的优先级,包括:
步骤一、获取多个任务的单位效益;
步骤二、利用单位效益,确定多个任务的优先级。
为便于描述,下面将上述两个步骤结合起来进行说明。
其中,单位效益,即指单位时间内效益值。单位效益越高,则任务优先级越高。在本发明中,可以预先为不同等级的优先级设置不同的单位效益区间,从而基于单位效益,明确多个任务的优先级;也可以直接基于单位效益对任务进行自大到小排序,排序的顺序即为任务优先级的顺序。
在本发明中的一种具体实施方式中,获取多个任务的单位效益,包括:
步骤1、获取多个任务的执行时长、任务收益和任务成本;
步骤2、将单个任务的任务收益与任务成本做差,并将差值与执行时长的比值确定为该任务的单位效益。
为便于描述,下面将上述2个步骤结合起来进行说明。
即,在本发明实施例中,考虑计算任务执行的时长因素(T)、计算任务收益因素(S)、以及计算任务的成本因素(H),提出了计算任务的单位效益评价指标(UB),即定义单位时间内效益值,其公式定义如下:
UB(x)=(S-H)/T,计算任务X的单位效益指标UB(x)定义为计算任务收益S与成本H的差值同执行时长T的比值。
对于任务的任务收益、任务成本以及任务执行时长,可以具体参照相关任务衡量算法来进行明确,在本发明中不再一一赘述。
由于计算节点本身的资源情况是相对固定的,因而可以预先对计算节点的优先级进行明确之后,将优先级信息存放在可读存储介质,因而,可以直接通过读取存储介质等方式,直接明确多个计算节点的优先级,而不必实时确认。当然,为了避免计算节点出现较大的差异,还可定期对计算节点的优先级进行更新,更新频率可以根据实际情况而定,例如,高频变化的场景下,一天更新一次,对于非高频变化的场景下,可以一周更新一次。也就是说,在本发明中的一种具体实施方式中,可以从存储介质中读取计算节点的优先级。
相应地,在从存储介质中读取计算节点的优先级之前,还需将优先级信息存入到存储介质中。具体的实现过程,包括:
步骤一、获取多个计算节点的性能代价比;
步骤二、利用性能代价比,确定多个计算节点的优先级;
步骤三、将优先级信息存入存储介质。
为便于描述,下面将上述三个步骤结合起来进行说明。
性能代价比可以具体为其性能相关参数与功耗的比值。具体的,步骤一获取多个计算节点的性能代价比,包括:
步骤1、获取多个计算节点的计算能力、通信带宽、故障率和功耗;
步骤2、对于单个计算节点计算1减故障率、计算能力和通信带宽的乘积,并将乘积与功耗的比值,确定为该计算节点的性能代价比。节点的重要性评价指标取决于节点计算能力、可靠性、通信能力、能源效率等方面。
节点计算能力用每秒浮点数运算次数(FLOPS)来表示、可靠性利用故障率(β)来刻画,通信能力使用通信带宽(G)表示,能源效率采用功耗(W)描述。因此,计算节点Y的性能代价比(Inf),其定义如下:
Inf(x)= FLOPS·G(1-β)/W;其中,1-β即表明非故障概率,即正常概率。
基于性能代价比确定计算节点的优先级的方式,可以参照基于单位效益确定任务的优先级的方式,在此不再一一赘述。
S102、逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕。
在明确了每一个任务的优先级,以及每一个计算节点的优先级之后,则可对任务进行分配。
具体的,对于关注哪个因素的场景下,就基于哪个因素设置任务或计算节点的优先级,从而基于该优先级进行任务分配,可以实现有效参考该因素的任务分配,从而达到想要的效果。例如,当关注任务执行的可靠性,可以基于任务的重要性对任务的优先级进行确定,如更重要的任务,优先级越高,对应计算节点而言,故障率越低则优先级越高,如此,便可使得任务分配时,将更重要的任务分配给故障率更低的计算节点,从而保障重要任务被执行的可靠性。
在本发明中,可以将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到当前没有空闲状态的计算节点,或者任务分配完毕。例如,当存在5个任务,优先级顺序依次为a,b、c、d和e,若对应的计算节点有3个,优先级顺序依次为1、2和3,且这三个计算节点都处于空闲状态,则将最高优先级的任务a分配给优先级最高的计算节点1,将任务b分配给计算节点2,将任务c分配给计算节点3,此时,任务还未分配完成,但由于无空闲状态的计算节点,因而暂停任务分配。
例如,当存在2个任务,优先级顺序依次为a和b,若对应的计算节点有3个,优先级顺序依次为1、2和3,且计算节点1和计算节点3处于空闲状态,则将最高优先级的任务a分配给优先级最高的计算节点1,将任务b分配给计算节点3,任务已分配完成,且无空闲状态的计算节点,因而暂停任务分配。
在本发明中的一种具体实施方式中,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
步骤一、按照任务的优先级对任务进行排序,得到任务队列;
步骤二、按照计算节点的优先级对空闲状态的计算节点进行排序,得到节点队列;
步骤三、依次将任务队列中的任务逐一分配给节点队列中的计算节点。
为便于描述,下面将上述三个步骤结合起来进行说明。
为了方便进行任务分配,可以基于优先级对任务进行排序,得到任务队列,基于计算节点的优先级对空闲状态的计算节点进行排序,从而得到节点队列。然后,将任务队列中的任务逐一分配给节点队列中的计算节点。
例如,当存在5个任务,基于优先级排序的任务队列为:a,b、c、d和e,若对应的计算节点有3个,基于优先级排序的空闲状态的节点队列:1和3,则将最高优先级的任务a分配给优先级最高的计算节点1,将任务b分配给计算节点3,此时任务还未分配完成,但由于无空闲状态的计算节点,因而暂停任务分配。
S103、若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。
由于不同的任务执行的时长不同,不同的计算节点处理相同任务也会存在不同的执行时长的情况,因而在执行完步骤S102之后,会出现计算节点先后完成当前已分配的任务。具体的,当第一计算节点完成了当前分配的任务,则可从已分配的第一任务中未完成部分拆分出子任务,并将该子任务分配给第一计算节点。也就是说,对于第一任务中未完成部分,进行拆分后,原分配了第一任务的计算节点仅需完成未完成部分中未被拆分走的一部分,而被拆分出的另一部分作为第一任务的子任务分配给第一计算节点。
需要注意的是,本发明中的第一、第二、第三和第四等描述,均用于区别存在某种类型的节点或任务,而并非是对节点或任务的主从、先后进行限定。
其中,第一计算节点可以为任意一个或多个完成了当前分配任务的计算节点。第一任务也不限定具体是哪个任务。
在本发明中的一种具体实施方式中,若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点,包括:
步骤一、在任务未分配完的情况下,若第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的第一任务分配给第一计算节点;
步骤二、在第一任务未被第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分第一任务的未完成部分后,分别将拆分所得的子任务分配给第一计算节点和第二计算节点。
为便于描述,下面将上述两个步骤结合起来进行说明。
也就是说,该第一任务可以是在分配过程中,当前还未分配的任务中,优先级别最高的一个任务。
当第一计算节点为一个时,则将第一任务直接分配给该第一计算节点;若第一计算节点的为多个时,则将第一任务分配给这多个第一计算节点,具体的,可以将第一任务拆分后,分配给这多个第一计算节点。
例如,在执行步骤S102的任务分配过程中,因暂无空闲状态的计算节点而导致任务暂停分配,而留下了2个任务未分配,在某个计算节点完成了分配的任务之后,便可将这2个任务中优先级最高的第一任务分配给该计算节点。
其中,第二计算节点可以为已被分配过任务,并完成了所分配任务的任意一个计算节点或多个计算节点。此时,可以将第一任务的未完成部分,进行拆分,然后将拆分后的任务分别分配给第一计算节点和第二计算节点。也就是说,当出现新的空闲状态的计算节点,可以通过已分配任务中未完成部分进行拆分,再次进行任务分配,使得两个或两个以上的计算节点对同一第一任务进行处理。
当然,在实际拆分过程中,可以对已分配但未处理完的任意一个任务进行拆分,即被拆分的对象可以为当前最晚被分配过的任务,即第一任务,也可以为在最晚被分配过的任务之前被分配的任务。
应用本发明实施例所提供的方法,获取多个任务的优先级和多个计算节点的优先级;逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。
在本发明中,首先获取多个任务的优先级和以及多个计算节点的优先级,然后,基于将优先级最高的任务分配给计算节点中优先级最高且空闲状态的计算节点。也就是说,在分配任务时,不仅考虑任务的优先级,也考虑计算节点的优先级,以及计算节点的是否处于空闲状态。逐个进行任务分配,便可使得最高优先级的任务分配给空闲状态下,优先级最高的计算节点,而次高优先级的任务则分配给空闲状态下,次高优先级的计算节点,以此类推,直到当前无空闲状态的计算节点或者全部任务都分配完毕。若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将该子任务分配给第一计算节点。第一任务中未处理完的部分任务进行拆分,并将拆分出的子任务分配给第一计算节点。也就是说,对于同一个任务,可以在已分配了计算节点后,当出现了空闲状态的计算节点的情况下,可以通过任务拆分,并进行二次分配,避免发生部分计算节点过载,部分计算节点闲置的情况,多个计算节点处理同一个任务,还可缩短任务被完成的时长。
本发明的技术效果:基于任务与计算节点的优先级,计算节点空闲与否的状态,进行按需分配和多次拆分重分配,实现负载均衡,从而加速整体任务的完成效率,提升系统整体性能。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本发明中的一种具体实施方式中,若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点,包括:
在无未分配任务的情况下,若N个第一计算节点完成了当前分配的任务,则对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,并将拆分后的N个子任务分别分配给N个第一计算节点
当已无未分配任务的情况下,还可以对已分配的任务进行再次拆分,从而提高任务执行效率。具体的,在无未分配任务的情况下,若存在N个空闲节点,则对已分配的第二任务中未处理部分拆分为N+1份,并将拆分后的任务分别分配给N个空闲节点和第三计算节点;其中,第二任务原分配给第三计算节点。
也就是说,当无未分配任务的情况下,则对已分配的但未处理完的任务进行拆分,并进行再次分配,从而使得在全部任务未执行完之前,多个计算节点不会处于闲置状态,任务的拆分再分配,也可以使得单个任务被多个计算节点同时处理,缩短整体的任务执行时长,能够有效提升效率。
在本发明中的一种具体实施方式中,对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,包括:
步骤一、从已分配的任务中,随机选择一个未完成的任务确定为第二任务;
步骤二、拆分第一任务中未处理部分为N+1份,得到N+1个子任务。
为便于描述,下面将上述两个步骤结合起来进行说明。
在选择第二任务时,可以直接从已分配任务中随机选择一个未完成的任务。然后,再对未完成部分进行拆分。例如,当前已分配且还未执行完的任务有4个,此时可以从这4个任务中随机选出一个任务作为第二任务。
在本发明中的一种具体实施方式中,对已分配的第二任务中未处理部分拆分为N+1份,包括:
步骤一、从已分配的任务中,选出待执行部分的待执行时长最长的任务确定为第二任务;
步骤二、拆分待执行部分为N+1个子任务。
为便于描述,下面将上述两个步骤结合起来进行说明。
在本发明中,在明确待要拆分的第二任务时,可以预先将待执行部分的待执行时长最长的任务确定为第二任务。然后,在将第二任务进行拆分,可以使得最长待执行任务被多个计算节点共同处理,缩短整体时长,也可减少需要进行拆分的任务数量,即减少任务拆分次数。
在本发明中的一种具体实施方式中,拆分待执行部分为N+1个子任务,包括:对待执行部分进行N+1等份拆分,得到N+1个子任务。例如,当N为1时,则对待执行部分进行2等分拆分,如此,便可尽可能使得第二任务被拆分后,2个子任务可以同时完成。
在本发明中的一种具体实施方式中,若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点,包括:
在任务还未分配完的情况下,若第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的第一任务分配给第一计算节点;
在第一任务未被第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分第一任务的未完成部分后,分别将拆分所得的子任务分配给第一计算节点和第二计算节点;
在第一任务的子任务被执行完毕的情况下,若任务还未分配完,则将未分配任务中优先级最高的第二任务进行拆分,得到第二任务的子任务,并将第二任务的子任务分配给第一计算节点和第二计算节点;
在第二任务的子任务未被执行完毕的情况下,若任务已被分配完毕且第四计算节点完成了当前分配的任务,则对第二任务拆分后的子任务中未完成部分进行拆分,得到新子任务,将新子任务分配给第一计算节点、第二计算节点和第四计算节点;
在第二任务被执行完毕的情况下,若任务已分配完毕且当前存在未执行完毕的第三任务,则拆分第三任务中未完成部分,并将拆分出的第三任务的子任务分配给执行第二任务的计算节点;
在第二任务的子任务被执行完毕的情况下,若任务已分配完毕且当前无未执行完毕的第三任务,则确定多个任务执行完毕。
举例说明:一共有10个任务待处理,共有5个计算节点可供使用的情况下,这10个任务,按照优先级依次为任务1、任务2、任务3、……、任务10,这5个技术节点按照优先级依次为计算节点1、计算节点2、计算节点3、……、计算节点5。假设一开始5个计算节点都处于空闲状态,则按照高优先级任务给高优先级计算节点,则任务1分配给计算节点1,任务2分配给计算节点2,……,任务5分配给计算节点5,由于无空闲节点,暂停分配,在这5个任务被执行过程中,由于任务5耗时少,计算节点5率先完成任务,处于空闲状态,即,此时计算节点5对应第一计算节点。由于,此时任务还未分配完,任务6属于当前未分配且优先级最高的任务,因而将任务6确定为第一任务,将任务6分配给计算节点5。随着时间的推移,在任务6还未完成的情况下,计算节点1完成任务1,成为空闲节点,即对应第二计算节点,此时,可以将任务6未完成部分拆分出子任务,将子任务分配给计算节点1。随着时间的推移,当任务6被执行完毕之后,可以释放出计算节点1和计算节点5,此时任务还未分配完,可以将当前未分配任务中优先级最高的任务7对半拆分后,分给计算节点1和计算节点5。并在有空闲节点的情况下,对该任务7进行拆分,直到任务10被分配。当任务10被分配之后,若存在空闲节点,此时可以将已分配但未完成的任务9进行拆分,以便任务9被快速执行,直到最后一个任务被拆分给多个计算节点进行并行处理完毕,则可确定这10个任务被处理完。
在本发明中的一种具体实施方式中,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:逐个将未分配且优先级最高的任务,分配给跨域多元异构计算系统中处于空闲状态且优先级最高的计算节点。也就是说,在进行任务分配时,可以基于优先级最高,且未分配为原则,将任务均衡的分配给跨域多元异构计算系统中处于空闲状态且优先级最该的计算节点。
在本发明实施例中,考虑到,相关的多元异构计算系统因其网络架构原因,会导致存在较大的通信开销,影响任务的执行,因而提出了一种跨域多元异构计算系统,其中,跨域多元异构计算系统中的计算节点位于多个区域,多个计算节点包括同构节点和异构节点。对于计算节点位于多个区域,例如,计算节点1-5在区域1,计算节点6-10在区域2,计算节点11-15在区域3中。多个计算节点包括同构节点和异构节点,即可以有相同结构的计算节点,也可以有不同结构的计算节点,例如,计算节点1-10都是GPU,计算节点10-15都是FPGA。
其中,跨域多元异构计算系统,包括:局部树形拓扑和全局网型拓扑。具体的,在同一个区域内,计算节点之间为具备树形拓扑,在不同区域间对应全局网型拓扑。具体的,局部树形拓扑的根节点为局部主节点;在局部树形拓扑中,计算节点间具有树形拓扑通信连接;在全局网型拓扑中,局部主节点间具有网型拓扑通信连接。
在逐个将未分配且优先级最高的任务,分配给跨域多元异构计算系统中处于空闲状态且优先级最高的计算节点之前,可以在多个计算节点之间建立跨域多元异构计算系统。
其中,在多个计算节点之间建立跨域多元异构计算系统,包括:
步骤一、在域内搭建跨域多元异构计算系统的局部树形拓扑;
步骤二、在不同域之间搭建跨域多元异构计算系统的全局网型拓扑。
为便于描述,下面将上述两个步骤结合起来进行说明。
一般地,多元异构计算系统的拓扑设计旨在充分利用不同类型的计算资源,并提供高性能和高效能的计算能力。其代表性拓扑包括集中式拓扑与分布式拓扑。
集中式拓扑:通常采用一个中央控制节点来管理和调度多个异构计算节点。这种架构适用于小规模和中等规模的跨域场景,其中集中式控制节点可以实时监控和调整计算节点的任务分配和资源利用,而边缘计算节点则主要负责实际模型训练任务。
分布式拓扑:将异构计算节点分布在多个地理位置上,通过网络连接进行通信和协调。这种架构适用于大规模和分布式的跨域场景,其中计算节点可以根据任务的特性和资源需求选择合适的计算资源。
上述两种主流拓扑架构具有不同的优势和劣势,下面对它们进行更为细粒度的分析:
集中式拓扑架构的优势包括:
①、简单管理:集中式拓扑中,计算资源和控制节点集中在一个中心位置,这样可以更容易地进行资源管理和控制,减少了系统管理的复杂性;
②、通信效率:由于所有的计算节点连接到一个中心节点,节点之间的通信路径较短,可以获得较低的通信延迟和较高的带宽;
③、资源共享:集中式拓扑可以更方便地实现计算资源的共享,不同节点之间可以共享数据和计算结果,提高资源利用率。
集中式拓扑架构的劣势包括:
①、单点故障:集中式拓扑中存在一个中心节点,如果该节点发生故障,整个系统将受到严重影响甚至无法工作,容错性较差;
②、扩展性限制:集中式拓扑的扩展性较差,当计算节点数量增加时,中心节点可能成为系统的瓶颈,限制了系统的性能和可扩展性;
③、通信开销:由于所有的节点都要连接到中心节点,当节点数量增加时,节点之间的通信开销也会增加,可能会导致通信瓶颈。
分布式拓扑架构的优势包括:
①、高可靠性:分布式拓扑中,系统中的计算节点分散在不同的位置,如果某个节点发生故障,其他节点仍然可以继续工作,提高了系统的容错性和可靠性;
②、高扩展性:分布式拓扑可以通过添加更多的计算节点来扩展系统的性能和容量,节点之间可以并行处理任务,使系统能够处理更大规模的计算任务;
③、负载均衡:分布式拓扑可以更好地实现任务的负载均衡,将任务合理地分配到不同的计算节点上,提高系统的整体性能和吞吐量。
分布式拓扑架构的劣势包括:
①、管理复杂性:分布式拓扑中涉及到多个计算节点和网络组件,管理和调度这些节点和组件需要更复杂的管理机制和算法,增加了系统管理的复杂性;
②、通信开销:分布式拓扑中的计算节点可能分布在不同的位置,节点之间的通信需要通过网络进行,可能面临较高的通信延迟和带宽限制;
③、数据一致性:在分布式拓扑中,数据的一致性可能是一个挑战,不同节点上的数据可能需要进行同步和共享,需要设计合适的数据一致性机制。
综上,集中式拓扑适用于管理简单、通信效率高、资源共享要求较高的场景,但容错性和扩展性有一定限制。而分布式拓扑适用于需要高可靠性、高扩展性和负载均衡的场景,但需要解决管理复杂性、通信开销和数据一致性等问题。因此,跨域多元计算系统架构设计需综合考虑具体的应用需求、系统规模和资源限制等因素,而单一拓扑架构难以适应多元异构场景,那么选择合适的拓扑结构成为首要挑战。
本发明实施例采用跨域多元异构计算节点分层通信拓扑架构,跨域场景下,训练系统分散在不同地域的多个计算节点间不可避免地涉及到信息交互。因此,对不同类型的计算节点按照不同网络拓扑进行分层连接,实现局部与全局信息的高效信息融合。即,对于同一个区域内,搭建局部树形拓扑,而在不同的区域之间,搭建跨域多元异构的全局网型拓扑。
在同一个区域内,搭建局部树形拓扑时,可基于计算节点之间的通信代价,从而搭建出通信代价最小的局部树形拓扑。
具体的,局部树形拓扑的获取过程,包括:
步骤1、对于同一个域,获取每两个计算节点之间的综合通信代价。
综合通信代价即每两个计算节点之间进行通信的综合代价。
其中,综合通信代价可以包括每两个计算节点之间的固有开销和延迟开销。即,获取每两个计算节点之间的综合通信代价,包括:
获取每两个计算节点之间的固有开销和延迟开销;
基于固有开销和延迟开销计算该两个计算节点之间综合通信代价。
可通过将固有开销和延迟开销进行叠加的方式,明确综合通信代价。在进行叠加时,可以根据实际应用需求,对固有开销和延迟开销设置不同的权重,从而进行加权叠加。
例如:计算节点A与计算节点B之间的综合通信代价:Cost(A,B),具体计算:,其中,I(A,B)为固有开销,D(A,B)为延迟开销,即计算节点A与计算节点B之间的综合代价等于它们之间固有开销I(A,B)与延迟开销D(A,B)的线性组合,并且组合系数为α,其中0≤α≤1。其中α=0.5,或取其他数值。
步骤2、基于综合通信代价,在域内建立局部树形拓扑。
也就是说,在搭建局部树形拓扑时,会基于综合通信代价进行搭建。具体的,可以通过综合通信代价进行根节点和叶子节点的选择,以及节点与节点之间的连接关系进行筛选。
在本发明中的一种具体实施方式中,基于综合通信代价,在域内建立局部树形拓扑,包括:
在同一个域,基于计算节点搭建网型拓扑,并在网型拓扑的边上表示对应的综合通信代价;
从网型拓扑中随机选择一个计算节点作为起点,仅保留与该计算节点相连的最小综合通信代价的边,并对下一计算节点仅保留与该下一计算节点相连的最小综合通信代价的边,直到获得链式拓扑;
基于链式拓扑,建立局部树形拓扑。
其中,基于链式拓扑,建立局部树形拓扑,包括:
从链式拓扑中选出中点,并将中点确定为局部树形拓扑的根节点;
将与根节点直接或间接相连的节点确定为局部树形拓扑的叶子节点,得到局部树形拓扑。
在本发明中的一种具体实施方式中,若局部树形拓扑的高度大于指定数值,则将最底层叶子节点移动至上一层级。
举例说明:首先获取计算节点间通信距离引起的固有开销(标准化后数据),如表1所示。假定同一地域内有6个计算节点,它们任意两点间的距离通信固有开销如表1(计算节点间固有开销表)所示。
表1
获取计算节点间的通信延迟开销(标准化后数据),如表2所示。假定同一地域内有6个计算节点,它们任意两点间的通信延迟开销如表2(计算节点间延迟开销表)所示。
表2
基于综合通信代价计算公式,计算表1与表2信息对应的综合通信代价,并获得综合通信代价,如表3(节点间综合通信代价)。
表3
按照表3的综合通信代价搭建6个计算节点拓扑结构图,如图2所示,其中,边权值表示综合通信代价。
在图2中,随机选择一个节点为起点,并保留与之相连的最小代价的边。例如,选择计算节点1为起点,仅保留与之相连的最小权重边,结果如图3所示。
再由节点3开始,仅保留与之相连的最小代价边,且移除其它边后的结果如图4所示。
再由节点2开始重复上述步骤,直到选出所有最小代价边,结果如图5所示。
统计网络拓扑中计算节点数目N,并判断N的奇偶性,从而确定链路中点。例如,图5中包含6个计算节点,因而可选节点2或节点3作为中点。
以选择出的中点,即节点2作为树的根节点构造如图6所示的二叉树。
考虑到,图6中二叉树的高度大于[log2N]+1,因此可对图6的二叉树进行调整。具体调整过程如下:将节点4移动至上一层级,也就是说将节点4挂于节点6之下,同时还要将代价做相应调整(节点4至节点6的综合通信代价为7.5,因此修改后节点4与节点6的代价为7.5),如图7所示。
完成了局部节点的树型拓扑的构造,并且树型结构的根节点即为局部领导者节点,即局部主节点。
在本发明中的一种具体实施方式中,全局网型拓扑的获取过程,包括:
步骤1、将局部树形拓扑的根节点确定为局部主节点;
步骤2、对每两个局部主节点建立通信连接,得到全局网型拓扑。
也就是说,对于全局而言,可直接将局部树形拓扑的根节点确定为局部主节点,然后,再将每两个局部主节点进行互连,从而得到全局网型拓扑。
如图8所示,假定全体计算节点分布在4个地域,分别记为地域A、地域B、地域C以及地域D。同一地域内计算节点称之为局部节点,并且这些节点以分层的树型拓扑进行构建。此外,每个地域内会依据特定的指标选择出一个领导者节点(Leader node),即局部主节点,不同地域间的领导者节点以网型拓扑连接。因此,通过局部树型拓扑与全局网型拓扑,处于不同地域的计算节点可以实现信息的同步与交换。
为了便于本领域技术人员更好的理解本发明实施例所提供的负载均衡方法,下面结合具体示例,对该负载均衡方法进行详细说明。
实施该负载均衡方法包括:
步骤1、分别计算5个计算任务A、B、C、D、E的单位效益UB(X),并且对它们的大小按照降序排列。不失一般性,假定UB(A)>UB(B)>UB(C)>UB(D)>UB(E)。请参考图9,图9为本发明实施例中一种任务执行时长的示意图。
步骤2、基于计算节点重要性评价指标Inf(X)分别计算3个计算节点的重要性指标,并且对它们的大小按照降序排列。不失一般性,假定Inf(节点1)>Inf(节点2)>Inf(节点3)。
步骤3、按照重要计算任务分配至重要计算节点原则,在假定三个节点都处于空闲状态,则分别将计算任务A分配至节点1,将计算任务B分配至计算节点2,将计算任务C分配至节点3,如图10所示。
步骤4、由于计算任务B的执行时长最短,那么在计算任务B结束后立刻为计算节点2分配计算任务D,从而避免资源的闲置,计算任务执行情况如图11所示。
步骤5、当计算任务A结束后,考虑将计算任务D平分至计算节点1和计算节点2之上(如图12中的D1和D2分别分配给计算节点1和计算节点2)。具体执行情况如图12所示。
步骤6、当计算任务D结束后,计算节点3仍处于工作状态,且计算节点1和计算节点2处于闲置状态,因此考虑将计算任务E平摊至计算节点1与计算节点2之上(如图示E1和E2分别分配给计算节点1和计算节点2)。具体执行情况如图13所示。
步骤7、当计算任务C执行完成之后,考虑将计算任务E再平摊至计算节点3之上,从而实现负载均衡。具体执行情况如图14所示。
综上,本发明负载均衡策略下的计算任务执行总时长为:
。
为对比本发明的负载均衡策略可缩短任务执行总时长,下面对列举另一种负载均衡策略,及其对应的认为执行总时长。
步骤1、按照重要计算任务分配至重要计算节点原则,分别将计算任务A分配至节点1,将计算任务B分配至计算节点2,将计算任务C分配至节点3。如图10所示。其中,任务A、B、C、D和E的执行时长可参照图9。
步骤2、当计算任务B结束后,将计算任务D分配至计算节点2之上,如图15所示。
步骤3、当计算任务A完成之后,将计算任务E完全分配至计算节点1之上,如图16所示。
综上,该负载均衡策略下的计算任务执行总时长为:。
二者相比,可发现,本发明的计算任务执行时长小于计算时长/>。另外,本发明各计算节点不会出现闲置情况,因此负载更为均衡。
本发明提出了一种面向跨域场景的多元异构计算系统负载均衡方案。为此,设计了2个主要功能模块:分布式系统通信拓扑设计模块、以及负载均衡设计模块。
本发明的技术效果包括但不限于以下两个方面:
1、考虑到跨域场景下,提出了分层混合树型+网型的分布式计算系统架构。一方面,树型拓扑具有低延迟、数据隔离等优势,规避了参数服务器架构的通信拥塞问题。另一方面,网型拓扑具有更高的灵活性,更高的通信效率,更好的扩展性。
2、本发明提出了负载均衡策略,设计了计算任务与计算资源的重要评价指标,以及任务与资源的最佳匹配策略。这些措施或方法为实现负载均衡提供了便利。
该发明可以广泛应用于任务密集型和计算密集型的应用场景,如人工智能模型训练、数据中心、智能网络系统、分布式计算系统,无线传感器网络等。该发明涉及人工智能、数据中心、云计算、网络流量调度等众多领域,相关研究人员可以借用发明的算法来理解内存占用与通信开销在并行训练过程中,如何实现动态平衡的工作原理,从而更好的解决领域内的同类问题,因此潜在市场较大。
相应于上面的方法实施例,本发明实施例还提供了一种负载均衡装置,下文描述的负载均衡装置与上文描述的负载均衡方法可相互对应参照。
参见图17所示,该装置包括以下模块:
优先级获取模块101,用于获取多个任务的优先级和多个计算节点的优先级;
任务初始化分配模块102,用于逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;
任务拆分分配模块103,用于若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。
应用本发明实施例所提供的装置,获取多个任务的优先级和多个计算节点的优先级;逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将子任务分配给第一计算节点。
在本发明中,首先获取多个任务的优先级和以及多个计算节点的优先级,然后,基于将优先级最高的任务分配给计算节点中优先级最高且空闲状态的计算节点。也就是说,在分配任务时,不仅考虑任务的优先级,也考虑计算节点的优先级,以及计算节点的是否处于空闲状态。逐个进行任务分配,便可使得最高优先级的任务分配给空闲状态下,优先级最高的计算节点,而次高优先级的任务则分配给空闲状态下,次高优先级的计算节点,以此类推,直到当前无空闲状态的计算节点或者全部任务都分配完毕。若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将该子任务分配给第一计算节点。第一任务中未处理完的部分任务进行拆分,并将拆分出的子任务分配给第一计算节点。也就是说,对于同一个任务,可以在已分配了计算节点后,当出现了空闲状态的计算节点的情况下,可以通过任务拆分,并进行二次分配,避免发生部分计算节点过载,部分计算节点闲置的情况,多个计算节点处理同一个任务,还可缩短任务被完成的时长。
本发明的技术效果:基于任务与计算节点的优先级,计算节点空闲与否的状态,进行按需分配和多次拆分重分配,实现负载均衡,从而加速整体任务的完成效率,提升系统整体性能。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于在任务未分配完的情况下,若第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的第一任务分配给第一计算节点;
在第一任务未被第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分第一任务的未完成部分后,分别将拆分所得的子任务分配给第一计算节点和第二计算节点。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于在无未分配任务的情况下,若N个第一计算节点完成了当前分配的任务,则对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,并将拆分后的N个子任务分别分配给N个第一计算节点。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于从已分配的任务中,选出待执行部分的待执行时长最长的任务确定为第一任务;
拆分待执行部分为N+1个子任务。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于对待执行部分进行N+1等份拆分,得到N+1个子任务。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于从已分配的任务中,随机选择一个未完成的任务确定为第一任务;
拆分第一任务中未处理部分为N+1份,得到N+1个子任务。
在本发明的一种具体实施方式中,优先级获取模块,具体用于获取多个任务的单位效益;
利用单位效益,确定多个任务的优先级。
在本发明的一种具体实施方式中,优先级获取模块,具体用于获取多个任务的执行时长、任务收益和任务成本;
将单个任务的任务收益与任务成本做差,并将差值与执行时长的比值确定为该任务的单位效益。
在本发明的一种具体实施方式中,优先级获取模块,具体用于从存储介质中读取计算节点的优先级。
在本发明的一种具体实施方式中,优先级获取模块,具体用于从存储介质中读取计算节点的优先级之前,还获取多个计算节点的性能代价比;
利用性能代价比,确定多个计算节点的优先级;
将优先级信息存入存储介质。
在本发明的一种具体实施方式中,优先级获取模块,具体用于获取多个计算节点的计算能力、通信带宽、故障率和功耗;
对于单个计算节点计算1减故障率、计算能力和通信带宽的乘积,并将乘积与功耗的比值,确定为该计算节点的性能代价比。
在本发明的一种具体实施方式中,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
按照任务的优先级对任务进行排序,得到任务队列;
按照计算节点的优先级对空闲状态的计算节点进行排序,得到节点队列;
依次将任务队列中的任务逐一分配给节点队列中的计算节点。
在本发明的一种具体实施方式中,任务初始化分配模块,具体用于逐个将未分配且优先级最高的任务,分配给跨域多元异构计算系统中处于空闲状态且优先级最高的计算节点。
在本发明的一种具体实施方式中,跨域多元异构计算系统中的计算节点位于多个区域,多个计算节点包括同构节点和异构节点。
在本发明的一种具体实施方式中,跨域多元异构计算系统,包括:局部树形拓扑和全局网型拓扑。
在本发明的一种具体实施方式中,局部树形拓扑的根节点为局部主节点;
在局部树形拓扑中,计算节点间具有树形拓扑通信连接;
在全局网型拓扑中,局部主节点间具有网型拓扑通信连接。
在本发明的一种具体实施方式中,局部树形拓扑的获取过程,包括:
对于同一个域,获取每两个计算节点之间的综合通信代价;
基于综合通信代价,在域内建立局部树形拓扑。
在本发明的一种具体实施方式中,获取每两个计算节点之间的综合通信代价,包括:
获取每两个计算节点之间的固有开销和延迟开销;
基于固有开销和延迟开销计算该两个计算节点之间综合通信代价。
在本发明的一种具体实施方式中,基于综合通信代价,在域内建立局部树形拓扑,包括:
在同一个域,基于计算节点搭建网型拓扑,并在网型拓扑的边上表示对应的综合通信代价;
从网型拓扑中随机选择一个计算节点作为起点,仅保留与该计算节点相连的最小综合通信代价的边,并对下一计算节点仅保留与该下一计算节点相连的最小综合通信代价的边,直到获得链式拓扑;
基于链式拓扑,建立局部树形拓扑。
在本发明的一种具体实施方式中,建立局部树形拓扑,包括:
从链式拓扑中选出中点,并将中点确定为局部树形拓扑的根节点;
将与根节点直接或间接相连的节点确定为局部树形拓扑的叶子节点,得到局部树形拓扑。
在本发明的一种具体实施方式中,还包括:
若局部树形拓扑的高度大于指定数值,则将最底层叶子节点移动至上一层级。
在本发明的一种具体实施方式中,全局网型拓扑的获取过程,包括:
将局部树形拓扑的根节点确定为局部主节点;
对每两个局部主节点建立通信连接,得到全局网型拓扑。
在本发明的一种具体实施方式中,任务拆分分配模块,具体用于在任务还未分配完的情况下,若第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的第一任务分配给第一计算节点;
在第一任务未被第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分第一任务的未完成部分后,分别将拆分所得的子任务分配给第一计算节点和第二计算节点;
在第一任务的子任务被执行完毕的情况下,若任务还未分配完,则将未分配任务中优先级最高的第二任务进行拆分,得到第二任务的子任务,并将第二任务的子任务分配给第一计算节点和第二计算节点;
在第二任务的子任务未被执行完毕的情况下,若任务已被分配完毕且第四计算节点完成了当前分配的任务,则对第二任务拆分后的子任务中未完成部分进行拆分,得到新子任务,将新子任务分配给第一计算节点、第二计算节点和第四计算节点;
在第二任务被执行完毕的情况下,若任务已分配完毕且当前存在未执行完毕的第三任务,则拆分第三任务中未完成部分,并将拆分出的第三任务的子任务分配给执行第二任务的计算节点;
在第二任务的子任务被执行完毕的情况下,若任务已分配完毕且当前无未执行完毕的第三任务,则确定多个任务执行完毕。
相应于上面的方法实施例,本发明实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种负载均衡方法可相互对应参照。
参见图18所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的负载均衡方法的步骤。
具体的,请参考图19,图19为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的负载均衡方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种负载均衡方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的负载均衡方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中多个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,多个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (26)
1.一种负载均衡方法,其特征在于,包括:
获取多个任务的优先级和多个计算节点的优先级;
逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;
若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点。
2.根据权利要求1所述的负载均衡方法,其特征在于,所述若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在任务未分配完的情况下,若所述第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的所述第一任务分配给所述第一计算节点;
在所述第一任务未被所述第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分所述第一任务的未完成部分后,分别将拆分所得的子任务分配给所述第一计算节点和所述第二计算节点。
3.根据权利要求1所述的负载均衡方法,其特征在于,所述若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在无未分配任务的情况下,若N个所述第一计算节点完成了当前分配的任务,则对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,并将拆分后的N个子任务分别分配给N个所述第一计算节点。
4.根据权利要求3所述的负载均衡方法,其特征在于,所述对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,包括:
从已分配的任务中,选出待执行部分的待执行时长最长的任务确定为所述第一任务;
拆分所述待执行部分为N+1个子任务。
5.根据权利要求4所述的负载均衡方法,其特征在于,拆分所述待执行部分为N+1个子任务,包括:
对所述待执行部分进行N+1等份拆分,得到N+1个子任务。
6.根据权利要求3所述的负载均衡方法,其特征在于,所述对已分配给第三计算节点的第一任务中未处理部分拆分为N+1个子任务,包括:
从已分配的任务中,随机选择一个未完成的任务确定为所述第一任务;
拆分所述第一任务中未处理部分为N+1份,得到N+1个子任务。
7.根据权利要求1所述的负载均衡方法,其特征在于,所述获取多个任务的优先级,包括:
获取多个任务的单位效益;
利用所述单位效益,确定多个所述任务的优先级。
8.根据权利要求7所述的负载均衡方法,其特征在于,所述获取多个任务的单位效益,包括:
获取多个任务的执行时长、任务收益和任务成本;
将单个任务的所述任务收益与所述任务成本做差,并将差值与所述执行时长的比值确定为该任务的单位效益。
9.根据权利要求1所述的负载均衡方法,其特征在于,获取多个计算节点的优先级,包括:
从存储介质中读取所述计算节点的优先级。
10.根据权利要求9所述的负载均衡方法,其特征在于,从存储介质中读取所述计算节点的优先级之前,还包括:
获取多个计算节点的性能代价比;
利用所述性能代价比,确定多个计算节点的优先级;
将优先级信息存入所述存储介质。
11.根据权利要求10所述的负载均衡方法,其特征在于,获取多个计算节点的性能代价比,包括:
获取多个计算节点的计算能力、通信带宽、故障率和功耗;
对于单个计算节点计算1减所述故障率、所述计算能力和所述通信带宽的乘积,并将所述乘积与所述功耗的比值,确定为该计算节点的性能代价比。
12.根据权利要求1所述的负载均衡方法,其特征在于,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
按照任务的优先级对任务进行排序,得到任务队列;
按照计算节点的优先级对空闲状态的计算节点进行排序,得到节点队列;
依次将所述任务队列中的任务逐一分配给所述节点队列中的计算节点。
13.根据权利要求1至12任一项所述的负载均衡方法,其特征在于,逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,包括:
逐个将未分配且优先级最高的任务,分配给跨域多元异构计算系统中处于空闲状态且优先级最高的计算节点。
14.根据权利要求13所述的负载均衡方法,其特征在于,所述跨域多元异构计算系统中的计算节点位于多个区域,多个计算节点包括同构节点和异构节点。
15.根据权利要求13所述的负载均衡方法,其特征在于,所述跨域多元异构计算系统,包括:局部树形拓扑和全局网型拓扑。
16.根据权利要求15所述的负载均衡方法,其特征在于,包括:
所述局部树形拓扑的根节点为局部主节点;
在所述局部树形拓扑中,计算节点间具有树形拓扑通信连接;
在所述全局网型拓扑中,所述局部主节点间具有网型拓扑通信连接。
17.根据权利要求16所述的负载均衡方法,其特征在于,所述局部树形拓扑的获取过程,包括:
对于同一个域,获取每两个计算节点之间的综合通信代价;
基于所述综合通信代价,在域内建立局部树形拓扑。
18.根据权利要求17所述的负载均衡方法,其特征在于,获取每两个计算节点之间的综合通信代价,包括:
获取每两个计算节点之间的固有开销和延迟开销;
基于所述固有开销和所述延迟开销计算该两个计算节点之间综合通信代价。
19.根据权利要求17所述的负载均衡方法,其特征在于,基于所述综合通信代价,在域内建立局部树形拓扑,包括:
在同一个域,基于计算节点搭建网型拓扑,并在所述网型拓扑的边上表示对应的综合通信代价;
从所述网型拓扑中随机选择一个计算节点作为起点,仅保留与该计算节点相连的最小所述综合通信代价的边,并对下一计算节点仅保留与该下一计算节点相连的最小所述综合通信代价的边,直到获得链式拓扑;
基于所述链式拓扑,建立所述局部树形拓扑。
20.根据权利要求19所述的负载均衡方法,其特征在于,基于所述链式拓扑,建立所述局部树形拓扑,包括:
从所述链式拓扑中选出中点,并将所述中点确定为所述局部树形拓扑的根节点;
将与所述根节点直接或间接相连的节点确定为所述局部树形拓扑的叶子节点,得到所述局部树形拓扑。
21.根据权利要求20所述的负载均衡方法,其特征在于,还包括:
若所述局部树形拓扑的高度大于指定数值,则将最底层叶子节点移动至上一层级。
22.根据权利要求16所述的负载均衡方法,其特征在于,所述全局网型拓扑的获取过程,包括:
将所述局部树形拓扑的根节点确定为局部主节点;
对每两个所述局部主节点建立通信连接,得到所述全局网型拓扑。
23.根据权利要求1所述的负载均衡方法,其特征在于,若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点,包括:
在任务还未分配完的情况下,若所述第一计算节点完成了当前分配的任务,则将未分配任务中优先级最高的所述第一任务分配给所述第一计算节点;
在所述第一任务未被所述第一计算节点执行完毕的情况下,若第二计算节点完成了当前分配的任务,则拆分所述第一任务的未完成部分后,分别将拆分所得的子任务分配给所述第一计算节点和所述第二计算节点;
在所述第一任务的子任务被执行完毕的情况下,若任务还未分配完,则将未分配任务中优先级最高的第二任务进行拆分,得到所述第二任务的子任务,并将所述第二任务的子任务分配给所述第一计算节点和所述第二计算节点;
在所述第二任务的子任务未被执行完毕的情况下,若任务已被分配完毕且第四计算节点完成了当前分配的任务,则对所述第二任务拆分后的子任务中未完成部分进行拆分,得到新子任务,将所述新子任务分配给所述第一计算节点、所述第二计算节点和所述第四计算节点;
在所述第二任务被执行完毕的情况下,若任务已分配完毕且当前存在未执行完毕的第三任务,则拆分所述第三任务中未完成部分,并将拆分出的所述第三任务的子任务分配给执行所述第二任务的计算节点;
在所述第二任务的子任务被执行完毕的情况下,若任务已分配完毕且当前无未执行完毕的所述第三任务,则确定所述多个任务执行完毕。
24.一种负载均衡装置,其特征在于,包括:
优先级获取模块,用于获取多个任务的优先级和多个计算节点的优先级;
任务初始化分配模块,用于逐个将未分配且优先级最高的任务,分配给处于空闲状态且优先级最高的计算节点,直到无空闲状态的计算节点或任务分配完毕;
任务拆分分配模块,用于若第一计算节点完成了当前分配的任务,则从已分配的第一任务中未完成部分拆分出子任务,将所述子任务分配给所述第一计算节点。
25.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至23任一项所述负载均衡方法的步骤。
26.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至23任一项所述负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310962236.2A CN116700993B (zh) | 2023-08-02 | 2023-08-02 | 一种负载均衡方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310962236.2A CN116700993B (zh) | 2023-08-02 | 2023-08-02 | 一种负载均衡方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116700993A true CN116700993A (zh) | 2023-09-05 |
CN116700993B CN116700993B (zh) | 2024-02-09 |
Family
ID=87837782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310962236.2A Active CN116700993B (zh) | 2023-08-02 | 2023-08-02 | 一种负载均衡方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700993B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149533A (zh) * | 2023-11-01 | 2023-12-01 | 成都正扬博创电子技术有限公司 | 一种能够自动适配多余度配置的综合控制计算机系统 |
CN117472594A (zh) * | 2023-12-27 | 2024-01-30 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的处理器任务执行方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984594A (zh) * | 2014-05-14 | 2014-08-13 | 上海上讯信息技术股份有限公司 | 一种基于分布式可配置加权算法的任务调度方法及系统 |
CN105141541A (zh) * | 2015-09-23 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于任务的动态负载均衡调度方法及装置 |
CN109769032A (zh) * | 2019-02-20 | 2019-05-17 | 西安电子科技大学 | 一种分布式计算方法、系统及计算机设备 |
CN112596902A (zh) * | 2020-12-25 | 2021-04-02 | 中科星通(廊坊)信息技术有限公司 | 基于cpu-gpu协同计算的任务调度方法及装置 |
CN113626166A (zh) * | 2021-08-04 | 2021-11-09 | 北京理工大学 | Gaia系统中基于资源反馈的负载均衡任务调度方法及系统 |
CN113687950A (zh) * | 2021-08-31 | 2021-11-23 | 平安医疗健康管理股份有限公司 | 基于优先级的任务分配方法、装置、设备及存储介质 |
WO2023279555A1 (zh) * | 2021-07-08 | 2023-01-12 | 苏州浪潮智能科技有限公司 | 一种拓扑感知的负载均衡方法、装置及计算机设备 |
-
2023
- 2023-08-02 CN CN202310962236.2A patent/CN116700993B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984594A (zh) * | 2014-05-14 | 2014-08-13 | 上海上讯信息技术股份有限公司 | 一种基于分布式可配置加权算法的任务调度方法及系统 |
CN105141541A (zh) * | 2015-09-23 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于任务的动态负载均衡调度方法及装置 |
CN109769032A (zh) * | 2019-02-20 | 2019-05-17 | 西安电子科技大学 | 一种分布式计算方法、系统及计算机设备 |
CN112596902A (zh) * | 2020-12-25 | 2021-04-02 | 中科星通(廊坊)信息技术有限公司 | 基于cpu-gpu协同计算的任务调度方法及装置 |
WO2023279555A1 (zh) * | 2021-07-08 | 2023-01-12 | 苏州浪潮智能科技有限公司 | 一种拓扑感知的负载均衡方法、装置及计算机设备 |
CN113626166A (zh) * | 2021-08-04 | 2021-11-09 | 北京理工大学 | Gaia系统中基于资源反馈的负载均衡任务调度方法及系统 |
CN113687950A (zh) * | 2021-08-31 | 2021-11-23 | 平安医疗健康管理股份有限公司 | 基于优先级的任务分配方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149533A (zh) * | 2023-11-01 | 2023-12-01 | 成都正扬博创电子技术有限公司 | 一种能够自动适配多余度配置的综合控制计算机系统 |
CN117149533B (zh) * | 2023-11-01 | 2024-01-23 | 成都正扬博创电子技术有限公司 | 一种能够自动适配多余度配置的综合控制计算机系统 |
CN117472594A (zh) * | 2023-12-27 | 2024-01-30 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的处理器任务执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116700993B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116700993B (zh) | 一种负载均衡方法、装置、设备及可读存储介质 | |
CN108566659B (zh) | 一种基于可靠性的5g网络切片在线映射方法 | |
RU2648610C2 (ru) | Система и способ зонирования в программно определяемых сетях | |
CN109582448B (zh) | 一种面向关键度和时效性的边缘计算任务调度方法 | |
CN113115252B (zh) | 延迟敏感任务分布式移动边缘计算资源调度方法及系统 | |
JPH07282013A (ja) | 分散処理システム | |
CN112039965A (zh) | 一种时间敏感网络中的多任务卸载方法及系统 | |
Sedaghat et al. | Decentralized cloud datacenter reconsolidation through emergent and topology-aware behavior | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
Ma et al. | A cyclic game for service-oriented resource allocation in edge computing | |
Wen et al. | Load balancing job assignment for cluster-based cloud computing | |
CN102325054A (zh) | 一种分布式计算管理平台机群分级管理的自适应调整方法 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
Chai et al. | A parallel placement approach for service function chain using deep reinforcement learning | |
Elsharkawey et al. | Mlrts: multi-level real-time scheduling algorithm for load balancing in fog computing environment | |
Edinger et al. | Decentralized low-latency task scheduling for ad-hoc computing | |
CN116302578B (zh) | 一种QoS约束的流应用延迟确保方法及系统 | |
CN113190342A (zh) | 用于云-边协同网络的多应用细粒度卸载的方法与系统架构 | |
Ma et al. | Maximizing container-based network isolation in parallel computing clusters | |
CN109298932B (zh) | 基于OpenFlow的资源调度方法、调度器及系统 | |
CN105138391B (zh) | 面向广域分布云系统公平的多任务虚拟机分配方法 | |
Patil et al. | Resource allocation and scheduling in the cloud | |
Goswami et al. | Deadline stringency based job scheduling in computational grid environment | |
CN110532079B (zh) | 计算资源的分配方法及装置 | |
Sotiriadis | The inter-cloud meta-scheduling framework |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |