CN111309393A - 一种云边端协同应用卸载算法 - Google Patents
一种云边端协同应用卸载算法 Download PDFInfo
- Publication number
- CN111309393A CN111309393A CN202010073451.3A CN202010073451A CN111309393A CN 111309393 A CN111309393 A CN 111309393A CN 202010073451 A CN202010073451 A CN 202010073451A CN 111309393 A CN111309393 A CN 111309393A
- Authority
- CN
- China
- Prior art keywords
- cloud
- terminal
- application program
- edge
- components
- 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.)
- Withdrawn
Links
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种云边端协同应用卸载算法,包括以下步骤:步骤a、终端收集云端和边缘网关的计算资源;步骤b、终端构造出整个应用程序中所有可卸载方法组件间的依赖关系图;步骤c、终端根据获得的计算资源信息构建组件费用模型;步骤d、终端拓扑排序无相互依赖关系的应用程序方法组件;步骤e、终端根据贪婪算法确定应用程序方法组件的调用顺序。本发明提供的一种云边端协同应用卸载算法,利用多目的地并行执行应用程序组件原理,充分分析组件间相互依赖关系,对应用程序组件进行周期性拓扑排序,并结合贪婪算法确定组件卸载位置,能够充分考虑多节点并行的优势和最大化应用程序完成时间收益,缩短应用程序完成时间。
Description
技术领域
本发明涉及一种云边端协同应用卸载算法,属于边缘计算、云计算和物联网技术领域。
背景技术
随着物联网技术、人工智能、大数据的快速发展,云计算与边缘计算的弊端也逐渐显露出来。云端作为云计算中心,有着极强的计算能力,但是云端提供的服务不适用于传输数据大、时延要求高的应用;边缘侧有着独特的地理位置优势,可以不用考虑终端数据传输问题,但是其缺点在于作为终端接入层,其计算能力一般来说较低。云边端协同计算体系的提出为结合云计算、边缘计算的优势,弥补它们的不足提供了一种新的设计思路。
自从云计算提出以来,就有不断的学者为提高终端应用程序完成时间或缩短应用程序能耗,提出了一系列任务卸载算法,这些算法大部分都是针对单一卸载目的地的静态分区卸载算法,还有少部分的多目的地分区卸载算法,这些多目的地分区卸载算法均是为分布式应用程序所设计的,没有充分考虑多节点并行的优势,且无法最大化应用程序完成时间收益。多目的地分区卸载算法主要利用空间换取时间的原理,将多任务分配到多节点并行执行处理以最大化时间收益,如何最优的解决这种任务分区卸载问题是多目的地分区卸载算法的核心问题。
发明内容
本发明要解决的技术问题是,克服现有技术中的缺陷,提供一种能够充分考虑多节点并行的优势和最大化应用程序完成时间收益,缩短应用程序完成时间的云边端协同应用卸载算法。
为解决上述技术问题,本发明采用的技术方案为:
一种云边端协同应用卸载算法,包括以下步骤:
步骤a、终端收集云端和边缘网关的计算资源;
步骤b、终端构造出整个应用程序中所有可卸载方法组件间的依赖关系图;
步骤c、终端根据获得的计算资源信息构建组件费用模型;
步骤d、终端拓扑排序无相互依赖关系的应用程序方法组件;
步骤e、终端根据贪婪算法确定应用程序方法组件的调用顺序。
步骤a具体包括以下步骤:
步骤a1、云端启动远程调用服务与自身资源信息服务监听;
步骤a2、边缘网关开启远程调用服务与自身资源信息服务监听,并额外开启终端接入服务监听;
步骤a3、终端接入到边缘网关中接入点网关后,向边缘网关发送资源请求报文以请求卸载资源;
步骤a4、接入点网关向其它网关广播资源请求报文,并额外发送一条资源请求报文到云端以请求云端资源信息;
步骤a5、接入点网关将边缘处与云端的资源信息回传到终端。
步骤c中,单个应用程序组件在各个节点的计算费用与数据传输费用如下:W(vi)=Ivwl(vi)+(1-Iv)(wrn(vi)+w(e(vi,l))) (1)
其中wl(vi)表示应用程序组件vi在本地l(local)执行的时间费用,r1,r2,…,rn分别表示其它边缘网关节点或云端,当组件在本地执行的时候Iv为1,否则为0;w(e(vi,l))表示组件vi在远程节点上调用时产生的数据传输费用。
w(e(vi,l))与网络的带宽和边缘节点之间传输数据量的大小有关,具体公式如下所示:
式中inil和outil分别代指组件i和终端之间传输的数据大小,其中in指代调用远程方法所需传递的参数数据大小,out表示返回计算结果的数据大小;Bup和Bdown代指远程节点与终端节点间的网络上行和下行速率:
步骤d具体为:不断将所有出度为0的组件放入一个集合ai中,然后删除组件依赖关系图中这些组件节点,一直循环,直到图中所有组件节点为0,即可获得多个集合,集合内的方法组件可在多个设备上并行执行。
步骤e具体为:将组件集合根据费用模型及贪婪算法计算出一个集合内所有组件总的最小完成时间,最后累加所有周期内的应用程序组件完成时间,即可得到总的应用程序执行费用,总费用公式如下:
其中Wall表示终端总的应用程序完成费用,Wmin(a)表示集合a中应用程序在多个节点并行处理的最小完成时间,C表示整个拓扑排序完成后应用程序组件集合。
本发明的有益效果:本发明公开的一种云边端协同应用卸载算法,该算法充分结合云计算中心的计算资源充足、终端到网络边缘低时延等特性,利用多目的地并行执行应用程序组件原理,充分分析组件间相互依赖关系,对应用程序组件进行周期性拓扑排序,并结合贪婪算法确定组件卸载位置,以缩短应用程序完成时间。此外,本算法能够较为简便的扩展到物联网场景中,无需增添硬件设施,具有较好的适用性。
附图说明
图1为本发明所提出的云边端协同计算架构图;
图2为本发明所提出的应用程序组件费用模型图;
图3为本发明所提出的应用程序组件拓扑排序算法流程图;
图4为本发明所提出的应用程序组件分区卸载位置算法流程图;
图5为本发明中终端收集云端和边缘网关的计算资源流程图。
具体实施方式
下面结合附图对本发明作进一步描述,以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明提供一种云边端协同应用卸载算法,该算法应用于云边端协同计算体系中,该体系的主要由终端、边缘网关与云端三部分组成:终端一般代指拥有操作系统的智能设备,这类设备带受限的计算、存储能力;边缘网关一般代指传统物联网中的网关,地理位置接近终端,并为终端提供网络接入功能,是终端最易获取计算等资源的节点;云端一般即指云计算中心,拥有强大的计算能力与存储资源,距离终端地理位置较远,端到端往返时延较大。该协同计算体系中,终端作为整个协同计算任务的发起点,通过卸载算法将方法级的应用程序组件分配到网络边缘侧的多个网关或者云计算中心,利用多节点并行处理机制最小化应用程序完成时间,而边缘网关与云端作为组件执行节点,负责完成卸载组件的计算任务。
为了充分缩短终端应用程序完成时间,需要使用方法级别的应用程序卸载粒度。终端使用云边端协同应用卸载算法来确定自身方法组件卸载卸载位置,卸载到云端的方法组件以传输时间为代价换取较高的计算收益,而卸载到边缘网关处的方法组件则能够收获较快的响应时间。
本发明提供的一种云边端协同应用卸载算法,该算法是一种方法级卸载粒度、动态分区以及多卸载目的地的应用卸载算法,它适用于云边端协同计算场景,结合云、边多节点不同的计算能力和网络带宽,周期性并行处理无相互依赖关系的应用程序组件以最小化程序完成时间,具体包括以下步骤:
步骤一、终端收集云端和边缘网关的计算资源,边缘网关与云端均作为终端可扩展的计算资源,帮助终端完成应用程序。终端获取云边资源信息以构建组件费用模型:组件费用模型作为云边端协同卸载算法的输入,为其精确的计算出分区卸载结果提供了保障。终端需要获取的云边资源信息如下:资源节点的IP和端口号、可用远程对象信息、CPU、内存、网络上下行带宽,获取到上述信息后,用于后续终端粗略估算出单个组件在各个节点的计算费用与数据传输费用,并通过组件间依赖关系构建费用模型图。
如图5所示,步骤一具体包括以下步骤:步骤a1、云端启动远程调用服务与自身资源信息服务监听,其中远程服务负责监听计算终端要卸载的组件请求,自身资源信息服务监听负责响应自身资源信息;步骤a2、边缘网关开启远程调用服务与自身资源信息服务监听,并额外开启终端接入服务监听;步骤a3、终端接入到边缘网关中接入点网关后,向边缘网关发送资源请求报文以请求卸载资源;步骤a4、接入点网关向其它网关广播资源请求报文,并额外发送一条资源请求报文到云端以请求云端资源信息;步骤a5、接入点网关将边缘处与云端的资源信息回传到终端。
终端作为计算任务的发起者,请求云端与边缘网关的计算资源,帮助完成自身应用程序,以缩短应用程序的完成时间。完成上述功能,需要终端收集边缘网关与云端处的计算、内存等资源信息,以及它们可用远端对象、网络带宽等信息,具体信息示例如下所示:
步骤二、终端构造出整个应用程序中所有可卸载方法组件间的依赖关系图。单个应用程序由多个方法组成(即“组件”),方法之间有许多相互依赖关系,如method1的输出为method2的输入,以此类推。如图3所示,通过图论中的有向无环图可以清晰的构造出应用程序中方法组件的相互依赖关系,有相互依赖关系的方法组件之间应用一个有线箭头连接,以此可以构造出整个应用程序中所有可卸载方法组件间的依赖关系图。
步骤三、方法级别的应用程序卸载粒度,终端需要自动识别自身应用程序中,哪些方法需要卸载,哪些方法无需卸载。因此,通过开发人员对方法进行注解,以确定可卸载方法组件。根据组件编译后代码指令数以及节点CPU频率粗略估算出组件的计算费用,并根据每个组件的输入输出估算出组件间的数据传输费用,终端根据获得的计算资源信息构建组件费用模型。单个应用程序组件在各个节点的计算费用与数据传输费用如下:
W(vi)=Ivwl(vi)+(1-Iv)(wrn(vi)+w(e(vi,l))) (1)
图2中,(wl(vi),wr1(vi),…,wrn(vi))分别表示每个应用程序组件在本地和其它节点执行的时间费用,其中wl(vi)表示应用程序组件vi在本地l(local)执行的时间费用,r1,r2,…,rn分别表示其它边缘网关节点或云端,当组件在本地执行的时候Iv为1,否则为0;w(e(vi,l))表示与组件vi在远程节点上调用时产生的数据传输费用。
w(e(vi,l))与网络的带宽和边缘节点之间传输数据量的大小有关,具体公式如下所示:
式中inil和outil分别代指组件i和终端之间传输的数据大小,其中in指代调用远程方法所需传递的参数数据大小,out表示返回计算结果的数据大小;Bup和Bdown代指远程节点与终端节点间的网络上行和下行速率:
步骤四、终端对无相互依赖关系的应用程序方法组件进行拓扑排序。为了充分利用多节点的并行优势,让计算需求较大、传输数据量小的组件能够在云端执行,计算需求相对较少、传输数据量较大的组件在边缘节点执行,需要将应用程序组件进行拓扑排序,将组件以周期进行划分。同一周期内的组件相互之间没有任何依赖关系,即可以放置在多个节点并行处理。应用程序组件的相互依赖关系可用图论的知识展现出来,一个方法调用另外一个方法可视为从一个节点出度到另外一个节点的入度,由此将整个应用程序的可卸载组件构造处组件调用有向无环图。在节点调用关系图中,每个阶段将所有出度为0的节点放置到一个数组中,并在图中删除该节点,以此得出多个数组。这些数组内节点之间相互没有任何依赖关系,可供多目的地并行处理,数组之间存在着相互依赖关系,须由前一数组执行完毕,后面的数组才能开始执行。如图3所示,具体步骤为不断将所有出度为0的组件放入一个集合ai中,然后删除组件依赖关系图中这些组件节点,一直循环,直到图中所有组件节点为0,即可获得多个集合,这些集合间的方法组件有着明确的先后调用顺序(即i的大小为调用顺序),而集合内的方法组件无相互依赖关系,可以在多个设备上并行执行。
步骤五、终端根据贪婪算法确定应用程序方法组件的调用顺序。利用贪婪算法确定应用程序组件的卸载位置,并粗略估算出总应用程序完成时间。拓扑排序应用程序组件生成多个组件调用顺序数组,数组内组件相互之间无任何依赖关系、数组间存在在明显的调用顺序,利用贪婪算法对每个数组的组件完成时间进行估计,每组数组的执行时间之和即为应用程序的总完成时间。如图4所示,在完成拓扑排序之后,由于已经将组件进行周期性的划分,将组件集合根据费用模型及贪婪算法计算出一个集合内所有组件总的最小完成时间,最后累加所有周期内的应用程序组件完成时间,即可得到总的应用程序执行费用,总费用公式如下:
其中Wall表示终端总的应用程序完成费用,Wmin(a)表示集合a中应用程序在多个节点并行处理的最小完成时间,C表示整个拓扑排序完成后应用程序组件集合。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种云边端协同应用卸载算法,其特征在于:包括以下步骤:
步骤a、终端收集云端和边缘网关的计算资源;
步骤b、终端构造出整个应用程序中所有可卸载方法组件间的依赖关系图;
步骤c、终端根据获得的计算资源信息构建组件费用模型;
步骤d、终端拓扑排序无相互依赖关系的应用程序方法组件;
步骤e、终端根据贪婪算法确定应用程序方法组件的调用顺序。
2.根据权利要求1所述的一种云边端协同应用卸载算法,其特征在于:步骤a具体包括以下步骤:
步骤a1、云端启动远程调用服务与自身资源信息服务监听;
步骤a2、边缘网关开启远程调用服务与自身资源信息服务监听,并额外开启终端接入服务监听;
步骤a3、终端接入到边缘网关中接入点网关后,向边缘网关发送资源请求报文以请求卸载资源;
步骤a4、接入点网关向其它网关广播资源请求报文,并额外发送一条资源请求报文到云端以请求云端资源信息;
步骤a5、接入点网关将边缘处与云端的资源信息回传到终端。
3.根据权利要求1所述的一种云边端协同应用卸载算法,其特征在于:步骤c中,单个应用程序方法组件在各个节点的计算费用与数据传输费用如下:W(vi)=Ivwl(vi)+(1-Iv)(wrn(vi)+w(e(vi,l))) (1)
其中wl(vi)表示应用程序组件vi在本地l执行的时间费用,r1,r2,…,rn分别表示其它边缘网关节点或云端,wrn(vi)代表应用程序方法组件在边缘侧节点或云端执行的计算时间费用;当组件在本地执行的时候Iv为1,否则为0;w(e(vi,l))表示组件vi在远程节点上调用时产生的数据传输费用。
5.根据权利要求4所述的一种云边端协同应用卸载算法,其特征在于:步骤d具体为:不断将所有出度为0的组件放入一个集合ai中,然后删除组件依赖关系图中这些组件节点,一直循环,直到图中所有组件节点为0,即可获得多个集合,每个集合内的方法组件在多个设备上并行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010073451.3A CN111309393A (zh) | 2020-01-22 | 2020-01-22 | 一种云边端协同应用卸载算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010073451.3A CN111309393A (zh) | 2020-01-22 | 2020-01-22 | 一种云边端协同应用卸载算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309393A true CN111309393A (zh) | 2020-06-19 |
Family
ID=71150838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010073451.3A Withdrawn CN111309393A (zh) | 2020-01-22 | 2020-01-22 | 一种云边端协同应用卸载算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309393A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134916A (zh) * | 2020-07-21 | 2020-12-25 | 南京邮电大学 | 一种基于深度强化学习的云边协同计算迁移方法 |
CN112130927A (zh) * | 2020-09-21 | 2020-12-25 | 安阳师范学院 | 一种可靠性增强的移动边缘计算任务卸载方法 |
CN113220311A (zh) * | 2021-04-15 | 2021-08-06 | 南京邮电大学 | 一种移动感知的云边端协同应用卸载方法、系统及其存储介质 |
CN114172810A (zh) * | 2021-12-14 | 2022-03-11 | 北京恒泰实达科技股份有限公司 | 一种基于物联网技术的可视化导播流程控制方法 |
CN114785782A (zh) * | 2022-03-29 | 2022-07-22 | 南京工业大学 | 面向异构云-边计算的通用的任务卸载方法 |
-
2020
- 2020-01-22 CN CN202010073451.3A patent/CN111309393A/zh not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112134916A (zh) * | 2020-07-21 | 2020-12-25 | 南京邮电大学 | 一种基于深度强化学习的云边协同计算迁移方法 |
CN112134916B (zh) * | 2020-07-21 | 2021-06-11 | 南京邮电大学 | 一种基于深度强化学习的云边协同计算迁移方法 |
CN112130927A (zh) * | 2020-09-21 | 2020-12-25 | 安阳师范学院 | 一种可靠性增强的移动边缘计算任务卸载方法 |
CN113220311A (zh) * | 2021-04-15 | 2021-08-06 | 南京邮电大学 | 一种移动感知的云边端协同应用卸载方法、系统及其存储介质 |
CN113220311B (zh) * | 2021-04-15 | 2022-09-16 | 南京邮电大学 | 一种移动感知的云边端协同应用卸载方法、系统及其存储介质 |
CN114172810A (zh) * | 2021-12-14 | 2022-03-11 | 北京恒泰实达科技股份有限公司 | 一种基于物联网技术的可视化导播流程控制方法 |
CN114172810B (zh) * | 2021-12-14 | 2023-09-22 | 北京恒泰实达科技股份有限公司 | 一种基于物联网技术的可视化导播流程控制方法 |
CN114785782A (zh) * | 2022-03-29 | 2022-07-22 | 南京工业大学 | 面向异构云-边计算的通用的任务卸载方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309393A (zh) | 一种云边端协同应用卸载算法 | |
CN111953759B (zh) | 基于强化学习的协同计算任务卸载和迁移的方法及装置 | |
Wu et al. | An efficient application partitioning algorithm in mobile environments | |
CN110764912B (zh) | 一种自适应任务调度器及方法 | |
CN112199150A (zh) | 一种基于微服务调用依赖感知的在线应用动态扩缩容方法 | |
CN111861793B (zh) | 基于云边协同计算架构的配用电业务分配方法及装置 | |
CN113342510B (zh) | 一种水电流域应急指挥云边计算资源协同处理方法 | |
CN110490316B (zh) | 基于神经网络模型训练系统的训练处理方法、训练系统 | |
US20220318065A1 (en) | Managing computer workloads across distributed computing clusters | |
Huang et al. | Toward decentralized and collaborative deep learning inference for intelligent IoT devices | |
CN114666335B (zh) | 一种基于数据分发服务dds的分布式系统负载均衡装置 | |
Chao et al. | R-MStorm: A resilient mobile stream processing system for dynamic edge networks | |
Ali et al. | Probabilistic normed load monitoring in large scale distributed systems using mobile agents | |
Tollefsen et al. | Distribution of updates to iot nodes in a resource-challenged environment | |
CN115664501A (zh) | 基于天基分布式卫星集群的自适应权重调度方法和系统 | |
CN115225496A (zh) | 一种基于边缘计算环境的移动感知服务卸载容错方法 | |
Abdullah et al. | Reliable and efficient hierarchical organization model for computational grid | |
Hirsch et al. | Practical criteria for scheduling CPU-bound jobs in mobile devices at the edge | |
Boutammine et al. | An adaptive scheduling method for grid computing | |
US20200195731A1 (en) | Lccs system and method for executing computation offloading | |
Samani et al. | Reliable resource allocation and fault tolerance in mobile cloud computing | |
CN113485718B (zh) | 面向边云协同系统中的上下文感知AIoT应用程序部署方法 | |
Hellemo | Non-Opportunistic Data Transfer for IoT and Cyber-Physical Systems with Mostly Sleeping Nodes | |
WO2024056042A1 (zh) | 一种负载均衡处理方法、装置、存储介质及电子装置 | |
CN109413623B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200619 |