一种面向边缘计算与协同的分布式通信调度方法

专利查询2023-10-16  119



1.本发明属于边缘计算系统中间件领域,涉及一种面向边缘计算与协同的分布式通信调度方法。


背景技术:

2.相比于云计算,边缘计算为应用减少了很大一部分时延,使实时的计算和协同变得可能,同时也提高了对用户的服务质量。在自动驾驶等工业领域,单计算节点(指单个机器上的一个应用,下同)上的多个任务间相互协作完成上层业务,如自动驾驶方向速度决策,彼此都有着严格的截至时间,毫秒的延迟也能带来很大的影响,实时性需要进一步提升。
3.而在多计算节点(指单个机器或多台机器中的多个应用,下同)场景中,分布式计算节点间也存在协同,如无线传感器网络中的多传感器数据融合,这样的异构环境使得协同具有不确定性,很容易造成多路数据到达不及时甚至缺失,从而得出不准确或者错误的结果。
4.目前广泛应用的中间件系统如ros1和2(robot operating system,以下统称ros),它们更多的是为各计算任务提供通信和复用功能模块的便利。在单节点上,它们不考虑上层业务逻辑,各计算任务的调度完全依靠底层的操作系统如linux;在多节点环境中,ros通过引入dds(distributed data service)在传输层提供了许多qos选项,如持久性、可靠性和尽最大努力交付等,这些需要用户在编写应用时设置,一旦设置整个应用的生命周期内无法变更,更加无法考虑到系统和网络的负载等动态因素。


技术实现要素:

5.本发明的目的在于,解决现存的边缘计算中间件系统,在单计算节点中,无法考虑到上层应用的业务逻辑,在多计算节点场景中,无法根据网络、系统负载动态地调整节点间的协同问题。
6.本发明的调度包括两个部分:针对单计算节点的基于业务逻辑的调度策略和针对多计算节点的基于qos反馈的调度策略,下面分开说明。
7.1.基于业务逻辑的调度策略:
8.其策略执行步骤如下:
9.步骤

.用户分模块(子任务)编写应用功能,并给出应用的说明文件,包括,各模块的权限、优先级等。
10.步骤

.在每个子任务中,用户调用系统提供的注册api表明该子任务的输入输出等信息。
11.步骤

.系统根据用户编写的说明文件和各子任务的注册api参数来构建各子任务的依赖关系,确定执行顺序。
12.步骤

.确定各子任务执行顺序之后,系统会把子任务分组,其数目同当前终端
cpu核数一致,每一组分配一个线程,同时尽可能的将具有依赖关系的子任务归为一组,且组内按顺序执行。各子任务在线程中的调度采用协程实现(有栈协程和无栈协程)。
13.2.基于qos反馈的调度策略:
14.其策略执行步骤如下:
15.步骤

.各计算节点按照上面步骤开始执行后,本发明中的系统将需要发出的数据加上时间戳和其他必要信息,按照优先级暂存在一个结构中,然后将数据分发出去。对于在同一个终端上的节点,采用共享内存方式,对于局域网内的其他终端节点,依据数据量采用tcp或者udp传输。
16.步骤

.其他节点收到数据后,首先计算通信时延,并执行异常检测算法。
17.步骤

.当某节点接收到来自其他节点反馈的异常报告后,提高报告中的具体数据类型的动态优先级,让后续来到的该类型数据能位于前列,更快地分发出去。
18.本发明的有益效果:本发明不会增加用户或开发者的负担,只需要他们在原有开发模式上增加一个说明文件,即可实现全部的调度策略。在时延异常敏感的领域中,如车载计算,基于业务逻辑的调度策略能够最小化计算任务的时延,减少因误时而产生的严重后果;在多计算节点场景中,如多数据融合,基于qos反馈的调度策略能够最大化的减少各节点的通信时延,提高整个的协作效率。
附图说明
19.图1是用户在编写应用的编程模型。
20.图2是用户应用分解分组核执行的流程示意图。
21.图3是子任务(协程)的切换方式示意图。
22.图4是箱线图的组成示意图。
具体实施方式
23.以下结合附图对本发明作进一步说明,具体实施步骤如下。
24.1.基于业务逻辑的调度策略:
25.步骤

,用户按照如图1所示结构完成应用(计算节点)的编程,并填写完整应用的说明文件,可以将应用的权限、各子任务的优先级、名字等信息填入,文件结构为json格式。
26.步骤

,在每个子任务中,用户首先要调用系统注册api,主要参数是该子任务的名字、输入、输出的数据类型,以及希望的数据队列大小等。
27.步骤

,系统启动时,首先会根据说明文件的个数判断应用的数目,为每个应用分配一个单独的进程,然后在每个应用中分解子任务,为每个子任务设置执行顺序(依据注册api提供的参数),建立起应用的业务逻辑,再然后将子任务分组(如果有必要的话)分配给不同的线程执行,每个线程再绑定到具体的cpu核上,最后执行。具体流程参阅图2。
28.步骤

,由于底层操作系统只能感知到进程和线程,无法感知到本发明拆分出来的子任务,所以子任务的切换需要本发明完成。子任务的存在形式为用户线程——协程,协程的切换同线程类似,只不过其上下文的切换由用户代码完成,不涉及操作系统的内核态,具体切换流程,参阅图3。
29.2.基于qos反馈的调度策略:
30.步骤

,各计算节点按照上面步骤开始执行后,本发明中的系统将需要发出的数据加上时间戳和其他必要信息,按照优先级暂存在一个结构中,然后将数据分发出去,对于在同一个终端上的节点,采用共享内存方式,对于局域网内的其他终端节点,依据数据量采用tcp或者udp传输。
31.步骤

,其他节点收到数据后,首先计算通信时延,并按照如下异常检测算法计算是否发生异常:
[0032][0033][0034]
箱线图box采用统计学方法,具体组成参阅图4,记录一段时间内的数据,然后确定该组数据的正常取值区间,记录的数据动态更新,正常取值区间也动态变化,因此,用它来进行异常检测,可以考虑到系统和网络的动态变化。
[0035]
步骤

,当某节点接收到来自其他节点反馈的异常报告后,提高报告中的具体数据类型的动态优先级,让后续来到的该类型数据能位于前列,更快地分发出去。
[0036]
以上是本发明的较佳实施过程,凡依本发明技术所做的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。


技术特征:
1.一种面向边缘计算与协同的分布式通信调度方法,其特征在于该方法包括针对单计算节点的基于业务逻辑的调度策略和针对多计算节点的基于qos反馈的调度策略:其中针对单计算节点的基于业务逻辑的调度策略具体是:步骤

.用户分模块编写应用功能,并给出应用的说明文件,包括各模块的权限和优先级;步骤

. 在每个子任务中,用户调用系统提供的注册api表明该子任务的输入和输出;步骤

.根据用户编写的说明文件和各子任务的注册api参数来构建各子任务的依赖关系,确定执行顺序;步骤

. 确定各子任务执行顺序之后,系统把子任务分组,其数目同当前终端cpu核数一致,每一组分配一个线程,同时尽可能的将具有依赖关系的子任务归为一组,且组内按顺序执行;针对多计算节点的基于qos反馈的调度策略,具体是:步骤

.各计算节点按照上面步骤开始执行后,系统将需要发出的数据加上时间戳和其他必要信息,按照优先级暂存在一个结构中,然后将数据分发出去;步骤

.其他节点收到数据后,计算通信时延,并执行异常检测算法;步骤

.当某节点接收到来自其他节点反馈的异常报告后,提高报告中的具体数据类型的动态优先级,让后续来到的该类型数据能位于前列,更快地分发出去。2.根据权利要求1所述的一种面向边缘计算与协同的分布式通信调度方法,其特征在于:所述的说明文件结构为json格式。3.根据权利要求1所述的一种面向边缘计算与协同的分布式通信调度方法,其特征在于:各子任务在线程中的调度采用协程实现。4.根据权利要求1所述的一种面向边缘计算与协同的分布式通信调度方法,其特征在于:数据分发的形式:对于在同一个终端上的节点,采用共享内存方式;对于局域网内的其他终端节点,依据数据量采用tcp或者udp传输。

技术总结
本发明公开了一种面向边缘计算与协同的分布式通信调度方法,包括基于业务的调度策略和基于QoS反馈的调度策略。在现存的同类型系统中,既没有考虑上层应用的业务逻辑,也没有考虑多计算节点环境下的动态QoS调整。本发明中的这两种调度策略相互补充,一种针对单计算节点,将上层的业务逻辑拆分,按照最适合的次序执行,能最小化整个应用的耗时;另外一种则针对多计算节点场景,充分考虑到当前时刻系统和网络的负载情况,检测异常的通信时延,再做出动态的调整,能够为多数据融合领域提供便利。利。利。


技术研发人员:殷昱煜 苟红深 李尤慧子 李玉 梁婷婷 李之磊 万健
受保护的技术使用者:杭州电子科技大学
技术研发日:2021.12.07
技术公布日:2022/3/8

最新回复(0)