一种负载均衡控制方法、装置及电子设备与流程

allin2022-07-12  290



1.本发明涉及工程机械设备技术领域,具体涉及一种负载均衡控制方法、装置及电子设备。


背景技术:

2.工程机械设备随身搭载的计算平台是工程机械车辆的大脑和灵魂,主要负责工程机械设备在无人运行和作业过程的感知融合、综合决策、规划控制,包括传感器信号的处理、感知数据的融合、高精定位地图的建模、作业路径的规划、动作执行机构的决策控制等。工程机械设备要实现无人作业,计算平台需要处理海量的数据,进行大量的并行计算。计算平台在设计时通常融合了不同架构特点的计算单元,比如负责系统调度的cpu,负责控制信号处理的mcu,负责数字图像处理的专业芯片dsp,负责深度学习模型推理的加速芯片gpu或者npu等,通常以主控芯片cpu作为管理者,去调度不同计算单元执行不同特性的功能,以达到优化性能、提高效率、降低成本、稳定运行的目标。
3.目前虽然存在并行计算时的负载分配策略,但负载分配策略固定不灵活,大部分是基于固定的cpu+gpu、cpu+npu、cpu+dsp等架构方式,强依赖于平台自身操作系统的预设调度策略,既不方便后续调整调度策略,也不方便泛化平移到其他计算单元架构不同的平台。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种负载均衡控制方法、装置及电子设备,以解决目前的负载分配策略强依赖于平台自身操作系统的调度策略,既不方便调整调度策略,也不方便泛化平移到其他平台的问题。
5.根据第一方面,本发明实施例提供了一种负载均衡控制方法,包括以下步骤:获取目标任务;对所述目标任务进行分解得到多个子任务;将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点;其中,所述处理能力与设备节点的对应关系中包括与所述总线连接的每个设备节点的标识信息及所述每个设备节点具有的处理能力。
6.本发明实施例提供的负载均衡控制方法,通过获取目标任务,对目标任务进行分解得到多个子任务,进一步可以将多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点,也就是说,可以利用处理能力与设备节点的对应关系将目标任务分配至与总线相连的多个设备节点,其不依赖于平台自身操作系统的调度策略,解决了目前负载分配策略强依赖于平台自身操作系统的调度策略,既不方便调整策略,也不方便泛化平移到其他平台的问题。
7.结合第一方面,在第一方面第一实施方式中,所述处理能力与设备节点的对应关系的构建方法包括:发布搜索命令;获取与所述总线连接的每个设备节点上报的能力集,其中所述能力集中包括所述设备节点具备的处理能力;根据所述每个设备节点上报的能力集
得到所述处理能力与设备节点的对应关系。
8.结合第一方面,在第一方面第二实施方式中,所述将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与所述总线相连的设备节点包括:针对任一子任务,在所述处理能力与设备节点的对应关系中寻找具备完成该子任务的处理能力,并将该子任务分配至与具备完成该子任务的处理能力相对应的设备节点;遍历所述目标任务的所有子任务,将所述多个子任务分配至与所述总线相连的设备节点。
9.结合第一方面,在第一方面第三实施方式中,负载均衡控制方法还包括:获取所有活动设备节点的负载统计信息,其中所述活动设备节点为处于活动状态的设备节点;根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点;当存在需要进行负载迁移的活动设备节点时,确定待迁移设备节点;根据所述待迁移设备节点正在处理的子任务得到待迁移子任务;按照所述处理能力与设备节点的对应关系查找能够处理所述待迁移子任务的备选设备集合,其中所述处理能力与设备节点的对应关系根据所述处理能力与设备节点的对应关系得到;在所述备选设备集合中选取出目标设备节点;将所述待迁移子任务迁移至所述目标设备节点。
10.结合第一方面第三实施方式,在第一方面第四实施方式中,所述根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点包括:分别根据每个活动设备节点的负载统计信息确定所述每个活动设备节点的负载等级;当所述所有活动设备节点的负载等级中存在大于等于预设的第一阈值的负载等级时,判定所述所有活动设备节点中存在需要进行负载迁移的活动设备节点。
11.结合第一方面第四实施方式,在第一方面第五实施方式中,分别根据每个活动设备节点的负载统计信息确定所述每个活动设备节点的负载等级包括:针对任一活动设备节点,根据该活动设备节点的负载统计信息确定该活动设备节点运行过程中是否存在不稳定因素;当该活动设备节点任务执行结果完全符合预期且不存在不稳定因素时,判定所述活动设备节点的负载等级为一级;当该活动设备节点任务执行结果完全符合预期但存在不稳定因素时,判定所述活动设备节点的负载等级为二级;当该活动设备节点任务执行结果不完全符合预期且存在不稳定因素时,判定所述活动设备节点的负载等级为三级;当所述活动设备节点的不能执行任务时,判定所述活动设备节点的负载等级为四级。
12.结合第一方面第三实施方式,在第一方面第六实施方式中,所述当存在需要进行负载迁移的活动设备节点时,确定当前需要迁移的待迁移设备节点包括:将所述需要进行负载迁移的活动设备节点按照健康状态由差到好的顺序进行排列,得到排序表,将所述排序表中健康状态最差的活动设备节点作为当前需要迁移的待迁移设备节点。
13.结合第一方面第三实施方式,在第一方面第七实施方式中,根据所述待迁移设备节点正在处理的子任务得到待迁移子任务包括:将所述待迁移设备节点正在处理的子任务进行分解,得到最小处理单元;将所述最小处理单元作为所述待迁移子任务。
14.结合第一方面第三实施方式,在第一方面第八实施方式中,所述在所述备选设备集合中选取出备选设备节点包括:获取所述备选设备集合中每个备选设备节点的负载等级,得到第二负载等级集合;其中所述第二负载等级集合包括所述每个备选设备节点的负载等级;在所述第二负载等级中筛选出小于所述待迁移设备节点负载等级的负载等级;将与筛选出的负载等级相对应的备选设备节点作为所述目标设备节点。
15.结合第一方面第五实施方式,在第一方面第九实施方式中,在将所述待迁移子任务迁移至所述目标设备节点之前,还包括:根据所述待迁移设备节点的负载等级确定所述待迁移设备节点进行负载迁移时的负载迁移策略。
16.结合第一方面第九实施方式,在第一方面第十实施方式中,所述根据所述待迁移设备节点的负载等级确定所述待迁移设备节点进行负载迁移时的迁移策略包括:当所述待迁移设备节点的负载等级为二级或三级时,所述负载迁移策略为:在不造成所述目标设备节点负载超标的情况下进行负载迁移;当所述待迁移设备节点的负载等级为四级时,所述负载迁移策略为:不考虑所述目标设备节点负载是否超标,直接将所述待迁移子任务迁移至所述目标设备节点。
17.结合第一方面第五实施方式,在第一方面第十一实施方式中,负载均衡方法还包括:当所述待迁移设备节点的负载等级为四级且未能在所述备选设备集合中选取出目标设备节点且时,进行报警;当所述待迁移设备节点的负载等级为二级或三级且未能在所述备选设备集合中选取出目标设备节点且时,保持所述待迁移设备节点中的任务继续执行。
18.结合第一方面第三实施方式,在第一方面第十二实施方式中,当需要进行负载迁移的活动设备节点为多个时,在将所述待迁移子任务迁移至所述目标设备节点之后,还包括:在所述当前需要迁移的活动设备节点中的待迁移子任务迁移结束后,将所述排序表中下一个待迁移设备节点作为当前需要迁移的待迁移设备节点。
19.根据第二方面,本发明实施例还提供了一种负载均衡控制装置,包括获取模块、分解模块和分配模块;所述获取模块用于获取目标任务;所述分解模块用于对所述目标任务进行分解得到多个子任务;所述分配模块用于将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点;其中,所述处理能力与设备节点的对应关系中包括与所述总线连接的每个设备节点的标识信息及所述每个设备节点具有的处理能力。
20.结合第二方面,在第二方面第一实施方式中,负载均衡控制装置还包括第二获取模块和均衡模块,其中第二获取模块用于获取所有活动设备节点的负载统计信息,其中所述活动设备节点为处于活动状态的设备节点;均衡模块用于根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点;当存在需要进行负载迁移的活动设备节点时,确定待迁移设备节点;根据所述待迁移设备节点正在处理的子任务得到待迁移子任务;按照所述处理能力与设备节点的对应关系查找能够处理所述待迁移子任务的备选设备集合,其中所述处理能力与设备节点的对应关系根据所述处理能力与设备节点的对应关系得到;在所述备选设备集合中选取出目标设备节点;将所述待迁移子任务迁移至所述目标设备节点。
21.根据第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的负载均衡控制方法。
22.根据第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的负载均衡控制方法。
附图说明
23.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
24.图1为工程机械设备计算平台应用场景示意图;
25.图2为工程机械设备计算平台的应用示例示意图;
26.图3为工程机械设备计算平台的组成示意图;
27.图4为工程机械设备计算平台中各模块能力集示意图;
28.图5为本发明实施例1中负载均衡控制方法的流程示意图;
29.图6为本发明实施例1中负载均衡控制方法一示例的示意图;
30.图7为本发明实施例1中负载均衡控制方法另一示例的示意图;
31.图8为本发明实施例1中负载均衡控制方法再一示例的示意图;
32.图9为本发明实施例2中负载均衡控制装置的结构示意图。
具体实施方式
33.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.实施例1
35.本发明实施例1提供了一种负载均衡控制方法,应用于工程机械设备计算平台。工程机械设备为实现包括无人驾驶在内的广义无人作业功能其计算平台的一种外部设备连接关系如附图1所示,连接的输入设备包括摄像头、激光雷达、超声波雷达等传感器,输出设备包括机械设备线控模块等动作执行装置,另外还提供扩展接口如pcie、网口等,显示设备,云端即是计算平台的输入设备也是输出设备。
36.挖掘机是众多工程机械设备中的一种,对挖掘机来说其广义的无人作业主要包括无人驾驶和无人挖掘等,现以挖掘机为例说明计算平台是如何使工程机械设备实现无人作业功能的。图2为工程机械设备计算平台的应用示例示意图,如图2所示,挖掘机实际使用场景中各个模块的安装使用方式为:机顶安装激光雷达,360
°
扫描机身四周的目标;机身正前方是主摄像头,负责无人作业过程中前方道路主要视觉输入,分辨率高,视场角大,功能包括车道线检测、路标检测、红绿灯检测、障碍物检测、作业对象检测等;机身四周4个鱼眼摄像头用于自动泊入;正前方的1个鱼眼和两侧的鱼眼可以增加可视区域,减少盲区范围,保障作业安全;尾部鱼眼主要用于倒车和泊车时的辅助视觉检测;机身四个角各有1个超声波雷达,在碰撞避让等功能发挥辅助作用。转向、制动、挖掘等执行装置相互配合完成无人作业的需要的执行动作。显示屏幕显示挖掘机的状态信息、系统提示信息、报警信息等,也可以作为输入设备完成对相关参数的设置。5g通信模块将挖掘机相连到云端,提供远程调用和管理的功能。计算平台需要接收这些特征不一样的数据,进行相应计算处理后发送给不同的接收模块。在不同的应用场景下,计算平台所进行的计算处理任务是截然不同的,计算平台内部的负载也就不一样了。
37.工程机械设备计算平台内部各个处理器核心模块的组成如附图3所示,包括主控
制器、算力卡1、算力卡2以及更多扩展的算力卡。其中主控制器是基础模块,负责系统初始化,系统调度,对自身各个计算单元的负载分配,创建监控程序,管理算力卡1到算力卡n,对扩展算力卡的负载分配。
38.图4为工程机械设备计算平台中各模块能力集示意图,下面结合图4分别对cpu、dsp、mcu、gpu、bpu进行详细说明。
39.cpu:一般是多核的cpu,运行高级操作系统,如linux或者qnx,具有基本的系统调度能力,负责系统初始化、内存管理、线程管理、消息通信等。同时具有基本的计算能力,可以进行激光雷达的点云数据处理、ai模型推理的前处理和后处理、感知融合处理等。另外,也具有基本神经网络推理能力,只是效率相对比较低,在没有专用神经网络处理器的情况下也是可选替代方案。
40.dsp:数字信号处理专业芯片,一般运行自带的bios系统,能快速进行数据处理和数学计算。在ai模型推理的前处理和后处理方面表现优秀。
41.mcu:微控制器,可以接入丰富的传感器和外设,一般运行一些实时rtos系统。可以接摄像头输入,获取图像数据并进行图像处理;可以接入激光雷达、毫米波雷达、超声波雷达等雷达设备,进行基本的雷达数据处理;可以提供显示设备的驱动能力,为开发者和使用者提供可交互的界面;可以接工程机械设备线控模块,进行无人作业的控制执行。
42.npu:神经网络处理单元,具有基本的矩阵运算能力和丰富的神经网络算子,可以加速神经网络模型的运行;可以完成图像分类、目标检测、图像语义分割、语音识别等功能。
43.gpu:图像处理单元,基本功能是图像处理、图像渲染、图形加速等。同时具有很强的矩阵运算能力和并行处理能力,在ai模型加速方面表现优异;可以完成图像分类、目标检测、图像语义分割、语音识别等。
44.bpu:大脑处理单元,能力丰富,既能处理图像,进行模型推理的前后处理,还有具有npu类似的功能,以加速神经网络模型的运行;可以完成图像分类、目标检测、图像语义分割、语音识别等功能。
45.图5为本发明实施例1中负载均衡控制方法的流程示意图,如图5所示,本发明实施例1的负载均衡控制方法包括以下步骤:
46.s101:获取目标任务。
47.s102:对所述目标任务进行分解得到多个子任务。
48.示例1:主控制器根据当前具体场景下的无人作业任务,此无人作业任务一般来自外界输入或者主控制器根据既定规则结合其他条件判断得出,将目标任务分解多个子任务为:1个摄像头输入子任务、1个lidar点云数据输入子任务、1个图像目标检测子任务、1个图像语义分割子任务、1个点云目标检测子任务、1个点云语义分割子任务、1个图像和点云融合计算子任务、1个数据前后处理子任务、1个线控子任务。
49.s103:将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点。
50.其中,所述处理能力与设备节点的对应关系中包括与所述总线连接的每个设备节点的标识信息及所述每个设备节点具有的处理能力。
51.作为具体的实施方式,所述处理能力与设备节点的对应关系的构建方法包括以下步骤:发布搜索命令;获取与所述总线连接的每个设备节点上报的能力集,其中所述能力集
中包括所述设备节点具备的处理能力;根据所述每个设备节点上报的能力集得到所述处理能力与设备节点的对应关系。
52.具体的,处理能力与设备节点的对应关系可以采用设备能力列表的形式,也可以采用备选设备查找表的形式。
53.示例2:如图5所示,处理能力与设备节点的对应关系的构建方法采用如下方式:
54.第1步:主控制器host启动一个管理线程,完成总线bus初始化操作。
55.第2步:总线发出discover命令,搜索总线上面设备节点。
56.第3步:设备1到5启动,并完成设备节点node的初始化操作。
57.第4步:设备节点report上报设备能力集,注册并挂载到总线上,形成设备能力列表,也可称为设备树,由总线登记并统一管理。同时,主控制还会生成一个备选设备查找表。
58.设备1report的信息包括:设备节点类型是cpu,能力集包括系统控制、融合计算(包括图像和点云融合计算)、前后处理、目标检测、语义分割(包括图像语义分割和点云语义分割)、图像处理、点云处理、图像分类。
59.设备2report的信息包括:设备节点类型是mcu,能力集包括摄像头输入、显示输出、lidar输入、radar输入、线控模块、定位模块、图像处理。
60.设备3report的信息包括:设备节点类型是dsp,能力集包括前后处理、数学计算、点云处理。
61.设备4report的信息包括:设备节点类型是npu,能力集包括目标检测(包括图像目标检测和点云目标检测)、图像分类、语义分割(包括图像语义分割和点云语义分割)、矩阵计算,算力8t int8。
62.设备5report的信息包括:设备节点类型是bpu,能力集包括摄像头输入、图像处理、前后处理、目标检测(包括图像目标检测和点云目标检测)、语义分割(包括图像语义分割和点云语义分割)、融合计算(包括图像和点云融合计算),算力5t int8。
63.表1设备能力列表
[0064][0065]
表2备选设备查找表
[0066][0067]
作为具体的实施方式,所述将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与所述总线相连的设备节点包括以下步骤:针对任一子任务,在所述处理能力与设备节点的对应关系中寻找具备完成该子任务的处理能力,并将该子任务分配至与具备完成该子任务的处理能力相对应的设备节点;遍历所述目标任务的所有子任务,将所述多个子任务分配至与所述总线相连的设备节点。
[0068]
在上述示例1和示例2的基础上,如图6所示,给出将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点的示例3:1个摄像头输入子任务、1个lidar点云数据输入子任务及1个线控子任务分配给mcu;1个图像目标检测和1个图像语义分割子任务分配给npu;1个点云目标检测和1个点云语义分割子任务分配给bpu;1个数据前后处理子任务分配给dsp;主控制器host默认是启动总线程的cpu,负责设备树管理、线程调度、数据流串联等工作,同时负责图像和点云融合感知计算任务。
[0069]
需要说明的是,当目标任务发生变化时,步骤s103子任务的分配结果也有可能发生变化。主控制器host根据adas目标任务分解多个子任务为:3个摄像头输入子任务、1个lidar点云数据输入子任务、3个图像目标检测子任务、3个图像语义分割子任务、1个点云目标检测子任务、1个点云语义分割子任务、1个图像和点云融合计算子任务、1个数据前后处理子任务、1个线控子任务。
[0070]
如图7所示,按照表1对该目标任务进行分配,得到如下分配结果:3个摄像头输入子任务、3个lidar输入子任务以及线控子任务分配给mcu;2个图像目标检测子任务(即图像目标检测子任务1和图像目标检测子任务2)和2个图像语义分割子任务(即图像语义分割子任务1和图像语义分割子任务2)分配给npu;1个图像目标检测子任务(即图像目标检测子任务3)、1个图像语义分割子任务(即图像语音分割子任务3)、1个点云目标检测子任务和1个点云语义分割子任务分配给bpu;1个数据前后处理子任务分配给dsp;主控制器host默认是
启动总线线程的cpu,负责设备树管理,线程调度,数据流串联等工作,同时负责对图像和点云数据的融合处理。
[0071]
本发明实施例1提供的负载均衡控制方法,通过获取目标任务,对目标任务进行分解得到多个子任务,进一步可以将多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点,也就是说,可以利用处理能力与设备节点的对应关系将目标任务分配至与总线相连的多个设备节点,其不依赖于平台自身操作系统的调度策略,解决了目前负载分配策略强依赖于平台自身操作系统的调度策略,既不方便调整策略,也不方便泛化平移到其他平台的问题。
[0072]
作为进一步的实施方式,负载均衡控制方法还包括:获取所有活动设备节点的负载统计信息,其中所述活动设备节点为处于活动状态的设备节点;根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点;当存在需要进行负载迁移的活动设备节点时,确定待迁移设备节点;根据所述待迁移设备节点正在处理的子任务得到待迁移子任务;按照所述处理能力与设备节点的对应关系查找能够处理所述待迁移子任务的备选设备集合,其中所述处理能力与设备节点的对应关系根据所述处理能力与设备节点的对应关系得到;在所述备选设备集合中选取出目标设备节点;将所述待迁移子任务迁移至所述目标设备节点。
[0073]
具体的,所述根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点可以采用如下技术方案:分别根据每个活动设备节点的负载统计信息确定所述每个活动设备节点的负载等级;当所述所有活动设备节点的负载等级中存在大于等于预设的第一阈值的负载等级时,判定所述所有活动设备节点中存在需要进行负载迁移的活动设备节点。需要说明的是,此处的第一阈值可以为二级。
[0074]
更加具体的,分别根据每个活动设备节点的负载统计信息确定所述每个活动设备节点的负载等级可以采用如下方案:针对任一活动设备节点,根据该活动设备节点的负载统计信息确定该活动设备节点运行过程中是否存在不稳定因素;当该活动设备节点任务执行结果完全符合预期且不存在不稳定因素时,判定所述活动设备节点的负载等级为一级;当该活动设备节点任务执行结果完全符合预期但存在不稳定因素时,判定所述活动设备节点的负载等级为二级;当该活动设备节点任务执行结果不完全符合预期且存在不稳定因素时,判定所述活动设备节点的负载等级为三级;当所述活动设备节点的不能执行任务时,判定所述活动设备节点的负载等级为四级。
[0075]
示例的,所述每个活动设备节点的负载统计信息包括以下中的一项或多项:当前负载值、历史负载最高值、历史负载平均值。其中,当前负载值属于当前周期的负载统计信息;历史负载最高值和历史负载平均值属于从开机到上一周期的负载统计信息。当当前负载值和历史负载最高值/历史负载平均值中均小于预设的第二阈值(例如80%)时,判定活动设备节点运行过程中不存在不稳定因素。
[0076]
也就是说,负载健康状态情况包括idle、healthy(相当于负载等级为一级)、warn(相当于负载等级为二级)、error(相当于负载等级为三级)、fatal(相当于负载等级为四级),且idle《healty《warn《error《fatal五个级别。
[0077]
idle是暂时没有分配任务的空闲状态,即空闲设备节点。
[0078]
healthy状态是设备节点已经运行任务,且历史负载最高值与当前负载值都低于
80%,这种情况表明负载分配合理,任务执行平稳有序。
[0079]
warn状态是设备节点运行任务,且负载的历史值或者当前值有大于80%阈值的情况(即历史负载最高值和所述当前负载值中存在大于等于所述第二阈值的情况),在这种状态下,设备上面的任务仍正常输出预定的结果,但是执行任务过程存在不稳定因素,有一定的风险,可以适当调整负载分配情况,前提是不会影响其他设备节点的负载超标。
[0080]
error状态表示系统经常有负载占有率大于80%的情况(即历史负载平均值和所述当前负载值中存在大于等于所述第二阈值的情况),在这种状态下任务执行结果不是完全符合预期,此时如果有合适的备选设备且状态健康,则可以将负载迁移到低负载的设备上面执行,如果没有备选设备节点只能保持当前负载分配情况继续执行。
[0081]
fatal状态这是设备的系统发生错误,完全不能执行任务,此时必须将fatal设备的任务移到其他设备,如果当前无备份负载,设备必须向用户报错预警,让用户介入处理。
[0082]
更加具体的,所述当存在需要进行负载迁移的活动设备节点时,确定当前需要迁移的待迁移设备节点可以采用如下技术方案:将所述需要进行负载迁移的活动设备节点按照健康状态由差到好的顺序进行排列,得到排序表,将所述排序表中健康状态最差的活动设备节点作为当前需要迁移的待迁移设备节点。也就是说,将健康状态最差的活动设备节点作为当前(即第一个)需要进行迁移的活动设备节点。进一步的,如果需要进行负载迁移的活动设备节点为多个,在当前需要迁移的活动设备节点中的待迁移子任务迁移结束后,将所述排序表中下一个待迁移设备节点作为当前需要迁移的待迁移设备节点。
[0083]
需要说明的,活动设备节点的健康状态可由负载等级来体现,负载等级越高,健康状态越差;另外,可以根据当前负载值、历史负载最高值和历史负载平均值等来比较属于同一负载等级的各个活动设备节点的健康状态。
[0084]
具体的,根据所述当前需要迁移的待迁移设备节点正在处理的子任务得到待迁移子任务可以采用如下技术方案:将所述待迁移设备节点正在处理的子任务进行分解,得到任务处理单元;将若干个任务处理单元作为所述待迁移子任务。由此可以对当前需要迁移的待迁移设备节点中的部分任务进行迁移。
[0085]
具体的,所述在所述备选设备集合中选取出备选设备节点可以采用如下方案:获取所述备选设备集合中每个备选设备节点的负载等级,得到第二负载等级集合;其中所述第二负载等级集合包括所述每个备选设备节点的负载等级;在所述第二负载等级中筛选出小于所述待迁移设备节点负载等级的负载等级;将与筛选出的负载等级相对应的备选设备节点作为所述目标设备节点。
[0086]
作为进一步的实施方式,在将所述待迁移子任务迁移至所述目标设备节点之前,还包括:根据所述待迁移设备节点的负载等级确定所述待迁移设备节点进行负载迁移时的负载迁移策略。
[0087]
具体的,所述根据所述待迁移设备节点的负载等级确定所述待迁移设备节点进行负载迁移时的迁移策略可以采用如下技术方案:当所述待迁移设备节点的负载等级为二级或三级时,所述负载迁移策略为:在不造成所述目标设备节点负载超标的情况下进行负载迁移;当所述待迁移设备节点的负载等级为四级时,所述负载迁移策略为:不考虑所述目标设备节点负载是否超标,直接将所述待迁移子任务迁移至所述目标设备节点。此处的负载迁移可以理解为是一个预迁移,即试着迁移,如果迁移失败后,就退回。
[0088]
进一步的,负载均衡控制方法还包括:当所述待迁移设备节点的负载等级为四级且未能在所述备选设备集合中选取出目标设备节点且时,进行报警;当所述待迁移设备节点的负载等级为二级或三级且未能在所述备选设备集合中选取出目标设备节点且时,保持所述待迁移设备节点中的任务继续执行。
[0089]
进一步的,当需要进行负载迁移的活动设备节点为多个时,在将所述待迁移子任务迁移至所述目标设备节点之后,还包括:在所述当前需要迁移的活动设备节点中的待迁移子任务迁移结束后,将所述排序表中下一个待迁移设备节点作为当前需要迁移的待迁移设备节点。也就是说,将排序表中比当前需要迁移的待迁移设备节点的健康状态好一点的活动设备节点作为下一个待迁移设备节点。
[0090]
另外,需要说明的是,可以设定10个tick周期为1个锁定周期。如果tick=2s,那么锁定周期就是20s,当发生一次负载迁移时,一个锁定周期内不再进行新的负载迁移。
[0091]
如图8所示,为了更加详细的说明本发明实施例1进一步的实施方式(即运行时负载均衡控制),给出示例4:
[0092]
第一步:主控制器开启一个心跳监控程序。
[0093]
第二步:设备节点以间隔周期tick=2秒,向监控程序发送心跳包。心跳包的内容包含当前设备节点的唯一编号、设备能力集、负载当前健康状态、设备中执行的任务列表、负载统计信息。
[0094]
负载统计信息包括两个主体,即设备总的负载和各任务的负载。时间段包括从开机到现在的时间和最近一个tick周期的时间。负载数据包括每个时间段内的负载最高值、最低值、平均值。
[0095]
第三步:如果因为自身任务调度或者用户设置的原因,导致某个设备节点(如图中的npu对应节点node_4)的状态是error状态,表明当前设备节点的负载过重,则效率会降低,或者输出错误(如图中的npu的帧率可能达不到预期,摄像头1、2的目标检测和语义分割任务可能执行不及时)。此时通过附表2的备选设备列表,找到合适的备选设备执行error设备的任务(找到可以执行目标检测和图像分割的设备有nodd_1的cpu、node_4的npu和node_5的bpu,又已知node_5的健康状态healthy,且算力5t有较多剩余,则可以决定将一个目标检测和语义分割的任务交给node_5执行。)。
[0096]
第四步:如果设备节点是warn,处理方法同error状态,但是优先级低于error状态的执行。即如果先保证error状态的负载转移,之后没有error后,再将warn设备节点的任务转移到合适的备选设备节点执行。node_1的cpu负载出现warn状态,找到cpu任务点云处理的备选节点有node_1和node_3,且此时node_3的dsp负载较低,则将node_1的点云处理转移到node_3的dsp执行。
[0097]
第五步:如果有fatal设备节点,处理方法同error状态,级别最高。区别之处是,如果没有备选设备,负载控制失败,将会发出警告信息,需要人为介入处理。
[0098]
经过上述负载均衡控制步骤后,各个设备节点的健康状态都达到healthy及一下级别。表示负载均衡控制方法有效。
[0099]
上述控制过程,如果是error或者warn状态,经负载均衡控制之后仍然存在error或者warn,系统按照error最少的方式继续执行。
[0100]
由此可见,本发明实施例1提供的负载均衡方法具备如下优点:
[0101]
一、基本的负载分配和控制能力
[0102]
(1)根据用户选择的场景不同,或者设备数量不同,异构计算各个处理器负载分配不同。
[0103]
(2)初始化时各个处理器封装成设备节点上报自己的能力集,总线收集后串联成设备树,会初步分配想要的任务到各个处理器执行。其中具有相同能力的处理器就会成为备选方案(冗余设计),成为负载均衡的关键因素。
[0104]
二、运行时负载均衡控制
[0105]
(1)创建一个实时监控程序,实时监视各个处理的运行状态,当某个处理器的负载达到预警(超总负载80%),动态切换各个处理器的任务,将高负载处理器的某个任务切换到低负载处理器上执行。直到各个处理器的负载状态都是健康状态。
[0106]
(2)任务切换的依据是初始化时各设备上报的能力集,例如cpu1,cpu2都有ai推理能力,当cpu1过载,cpu2低负载时,监控程序就可能将ai推理的任务从cpu1移到cpu2,且全程无感。
[0107]
实施例2
[0108]
与本发明实施例1相对应,本发明实施例2提供了一种负载均衡控制装置,图9为本发明实施例2中负载均衡控制装置的结构示意图,如图9所示,本发明实施例2的负载均衡控制装置包括第一获取模块20、分解模块21和分配模块22。
[0109]
具体的,第一获取模块20,用于获取目标任务;
[0110]
分解模块21,用于对所述目标任务进行分解得到多个子任务;
[0111]
分配模块22,用于将所述多个子任务根据预设的处理能力与设备节点的对应关系分配至与总线相连的设备节点;
[0112]
其中,所述处理能力与设备节点的对应关系中包括与所述总线连接的每个设备节点的标识信息及所述每个设备节点具有的处理能力。
[0113]
进一步的,负载均衡控制装置还包括第二处理模块23和均衡模块24。
[0114]
具体的,第二获取模块23,用于获取所有活动设备节点的负载统计信息,其中所述活动设备节点为处于活动状态的设备节点;
[0115]
均衡模块24,用于根据所述所有活动设备节点的负载统计信息确定是否存在需要进行负载迁移的活动设备节点;当存在需要进行负载迁移的活动设备节点时,确定待迁移设备节点;根据所述待迁移设备节点正在处理的子任务得到待迁移子任务;按照预设的处理能力与设备节点的对应关系查找能够处理所述待迁移子任务的备选设备集合,其中所述处理能力与设备节点的对应关系根据所述处理能力与设备节点的对应关系得到;在所述备选设备集合中选取出目标设备节点;将所述待迁移子任务迁移至所述目标设备节点。
[0116]
上述负载均衡控制装置具体细节可以对应参阅图1至图8所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0117]
实施例3
[0118]
本发明实施例还提供了一种电子设备,该电子设备可以包括处理器和存储器,其中处理器和存储器可以通过总线或者其他方式连接。
[0119]
处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路
(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0120]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的负载均衡控制方法对应的程序指令/模块(例如,图9所示的第一获取模块20、分解模块21、分配模块22、第二处理模块23和均衡模块24)。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的负载均衡控制方法。
[0121]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0122]
所述一个或者多个模块存储在所述存储器中,当被所述处理器执行时,执行如图1至图8所示实施例中的负载均衡控制方法。
[0123]
上述电子设备具体细节可以对应参阅图1至图9所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0124]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0125]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
转载请注明原文地址: https://www.8miu.com/read-151.html

最新回复(0)