CN110366210B - 一种针对有状态数据流应用的计算卸载方法 - Google Patents
一种针对有状态数据流应用的计算卸载方法 Download PDFInfo
- Publication number
- CN110366210B CN110366210B CN201910536020.3A CN201910536020A CN110366210B CN 110366210 B CN110366210 B CN 110366210B CN 201910536020 A CN201910536020 A CN 201910536020A CN 110366210 B CN110366210 B CN 110366210B
- Authority
- CN
- China
- Prior art keywords
- time
- execution
- module
- eta
- application program
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/12—Wireless traffic scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Genetics & Genomics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physiology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对有状态数据流应用的计算卸载方法,包括以下步骤:选择研究场景;获取研究对象;根据时间动态变化设置网络环境;制定优化目标,最小化总完成时间和减少状态量的传输;根据约束条件,构建有状态的数据流应用程序模型,所述约束条件为:模块间依赖关系约束、状态量迁移约束、网络带宽约束;通过有状态的数据流应用程序模型,对问题进行判断,如果是离线问题,则执行离线问题方法;如果是在线问题,则执行在线问题方法;对问题进行求解,实现对有状态数据流应用程序的计算卸载。
Description
技术领域
本发明涉及计算切分的研究领域,特别涉及一种针对有状态数据流应用的计算卸载方法。
背景技术
随着物联网、虚拟现实、增强现实等技术的发展与应用,未来将会出现数据大爆炸的状况。完全依赖云计算来进行数据传输和处理,将会造成巨大的网络延迟。而且从智能设备上产生的数据流(data stream)也在持续的增长,流式数据处理要求快速实时的特点,像Hadoop、Storm的流式处理框架可以很好的处理传统的流式应用。但是在边缘云环境下对诸如物体追踪(object tracking)的有状态的流式应用的计算切分问题的研究仍待有效解决。
计算切分是一项重要的技术,其通过将部分计算任务从移动设备卸载到边缘云服务器执行来提升应用程序的性能。在动态变化的网络环境中,移动设备到边缘云之间的网络带宽会频繁地发生变化,所以应用程序的计算切分决策也应该相应的更新。对于有状态的数据流应用程序来说,频繁的计算切分会带来移动设备和边缘云之间状态量的大量迁移,然而现有的工作并没有将状态量的迁移开销考虑进来,这也导致了严重的网络拥塞以及极大地增加了总的完成时间。
网络延迟对于终端用户的切身体验有着极大的影响,并且在商业上带来的影响更加能引起人们的关注。例如,对于电商巨头亚马逊,一旦网络有了100ms的延迟,就意味着他们会少卖掉1%的货物,而谷歌搜索页面0.5s的延迟,就可能导致网络流量20%的降幅,更有甚者,如果电子交易平台慢上5ms,那么一位证券经纪人可能每毫秒就少赚400万美元。无论多么小的网络延迟,对于海量用户和延迟敏感的业务的而言,都将带来极大的损失。由于边缘计算能够将传统的云计算技术从传统的互联网数据中心迁移到离终端用户更近的边缘,这样借助于边缘计算就可以实现低时延的接入和实时的数据处理。
然而当应用程序是有状态的数据流应用程序时,现有的工作在对其计算切分时并没有将状态量的迁移开销考虑在内,而在网络带宽动态变化的环境中,频繁的对有状态量的模块在移动设备和边缘之间迁移,会由于状态量的大量迁移造成网络拥塞,并进一步地增大总的完成时间(make-span)。而这对于延迟敏感的应用程序来说,将会极大地影响用户的切身体验。
在边缘云环境下的有状态的数据流应用程序的计算切分问题,考虑到边缘云具有的计算资源是有限的,而且用户和边缘云之间的网络带宽资源是有限且动态变化的,当数据流在应用程序中传输执行时需要满足以下三个约束条件,分别是:1)模块之间的执行约束条件,2)状态量迁移的约束条件,3)网络带宽的约束条件。由以上分析可知,如何得到一单元(one unit)数据在应用程序中执行的make-span,即总完成时间,是一个受到多个条件约束的问题。当网络环境发生变化之后,该优先调整哪些模块的执行位置来达到总完成时间的最小化,这也是一个本专利需要解决的关键问题。除此之外,因为在网络中迁移过多的状态量将会使得发生网络拥塞的可能性增大,并进一步地增大总的完成时间,所以在更新计算切分方案时如何减少状态量的传输也是需要解决的问题。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种针对有状态数据流应用的计算卸载方法,通过将一类有状态的数据流应用程序建立恰当的模型,并提出行之有效的离线和在线算法,可以达到最小化make-span的同时减少状态量的迁移。
本发明的目的通过以下的技术方案实现:
一种针对有状态数据流应用的计算卸载方法,包括以下步骤:
S1、选择研究场景,即对边缘计算环境下的数据流式任务的调度优化,在本地的移动设备和边缘服务器间协同优化,完成数据流任务计算;
S2、获取研究对象,即有状态量的DAG型数据流应用程序抽象为带权的有向无环图G=<V,E>,其中,V={i|1,2,...,n}为功能模块的集合,Vstate表示带状态量的模块集合,E={(i,j)|i,j∈V}表示模块之间数据流的集合;为了最小化总完成时间,该研究对象的各任务模块需要做出在移动端或在边缘云上执行的决策;
S3、根据时间动态变化设置网络环境,Nη表示时刻η时的网络信道数目,B表示每条网络信道的带宽;
其中δn+1为应用程序的结束模块即模块n+1的开始执行时间,δ0为应用程序的开始模块即模块0的开始执行时间,两者之差即为应用程序的总完成时间;为时刻η时各个模块(模块0到模块n+1)的执行位置(边缘服务器为1,移动端为0),即y(i,j)(t)为交叉边(i,j)(前驱模块i和后继模块j在不同的位置执行)在时刻t传输时分配的网络带宽;状态量fi在时刻t传输时分配的网络带宽。
S5、根据约束条件,构建有状态的数据流应用程序模型,所述约束条件为:模块间依赖关系约束、状态量迁移约束、网络带宽约束;
S6、通过有状态量的数据流应用程序模型,对优化目标判断问题类型,如果是离线问题,则执行离线问题方法;如果是在线问题,则执行在线问题方法;从而对问题进行求解,实现对有状态数据流应用程序的计算卸载。
进一步地,步骤S1中,所述研究场景包括移动设备,需要卸载执行的有状态量的DAG型数据流应用程序,无线接入点AP和边缘云;所述有状态量的DAG型数据流应用程序的开始模块和结束模块都在移动设备上执行,即有状态的DAG型数据流应用程序由移动设备发起,最后的计算结果返回到移动设备。
进一步地,步骤S3中,所述网络信道的带宽为2MBps;每个时刻的网络信道数目服从[1,5]均匀分布。
进一步地,步骤S5中,所述模块间依赖约束为模块的执行顺序约束,即只有前驱模块执行结束之后,后继模块才能开始执行;所述状态量迁移约束为状态量迁移时间与该模块的开始执行时间之间的约束,即该模块的开始执行时间必须迟于其状态量的迁移结束时间;所述网络带宽约束为在应用程序的执行过程中,分配给数据流传输的网络带宽资源约束,即在任意时间点,分配给数据流传输和状态量迁移的总带宽不能超过该时刻可用的总带宽资源。
进一步地,所述步骤S6具体为:通过有状态的数据流应用程序模型,对问题进行判断,如果是离线问题,则执行离线问题方法;如果是在线问题,则执行在线问题方法;即根据该应用程序的优化目标来判断需要解决的问题类型,如果是已知下一时刻的网络情况,且需要优化下一时刻的模块调度决策,则其为one-shot离线问题;如果是已知未来多个时刻的网络情况,且需要优化未来多个时刻的模块调度决策,则其为Δt-step look ahead多步优化的在线问题;对问题进行求解,实现对有状态数据流应用程序的计算卸载。
进一步地,所述执行离线问题方法,具体为:
在当前时刻η,网络带宽Nη发生变化,即应用程序在执行过程中需要在网络环境中传输交叉边的数据流,应用程序的性能对网络波动敏感;
根据约束条件,提出调度方法,所述调度方法包含序列式调整算法、SM-H调整算法、遗传算法和列调度方法;更新并作出时刻η的次优切分方案,即最小化时刻η的总完成时间和减少状态量迁移之间达到权衡;所述达到权衡,因为改变带状态量模块的执行位置会带来状态量的迁移开销,而最小化总完成时间需要减少状态量迁移的同时优化模块的执行位置,决策过程为权衡。
进一步地,所述调度方法为SM-H调整算法,具体如下:
SM-H调整算法时间复杂度为λ1×n2,其中n为模块总数,λ1为算法的迭代更新次数,其方法流程如下:
U2、将当前时刻η的网络带宽划分成Nη条带宽为B的网络信道;
U3、案子各模块的拓扑顺序依次计算模块的调整得分并得到得分矩阵,得分矩阵表示在保存其他模块的执行位置不变的情况下,记录每个模块的调整得分;
U4、调整最大正得分的模块执行位置,并更新执行表;
U5、重新计算各模块的调整得分,并更新得分矩阵;
U6、判断得分矩阵是否存在正得分模块,若存在正得分模块,则转到步骤U4,否则进入下一步;
U7、算法收敛,并得到最终模块位置的执行表;
U8、返回当前时刻的计算切分方案和执行表。
进一步地,所述执行在线问题方法为多步优化调度问题方法,具体流程如下:
W1、已知当前时刻η的计算切分方案;
W2、未来的网络状况发生变化并且已知未来Δt个时刻的网络带宽情况,由于应用程序在执行过程中对网络波动敏感,所以需要对未来Δt个时刻的计算切分方案都做出调度决策;
W3、根据时刻η的计算切分方案以及未来个时刻的网络带宽情况,做出为未来个时刻最优调度方案;
W4、最优调度方案目标:在最小化未来个时刻的平均总完成时间和减少状态量迁移之间达到权衡;
所述平均总完成时间为:
其中,为应用程序的结束模块n+1在时间区间(t,t+1)的开始执行时间,即应用程序在时间区间(t,t+1)时的执行结束时间,为应用程序的开始模块0在时间区间(t,t+1)的开始执行结束时间,两者之差即为该应用程序在时间区间(t,t+1)的完成时间;Δt表示本离线问题考虑的总时间区间的数目。
进一步地,为了解决在线调度优化问题,使用RSM-H算法,时间复杂度为λ2×(Δt×n×(λ1×n2)),其中λ2为RSM-H算法的迭代调整次数;RSM-H算法的方法流程如下:
X1、给定时刻η的计算切分方案,以及未来Δt个时刻的网络带宽情况;
X2、由SM-H算法依次计算出η+1时刻到η+Δt时刻的初始计算切分方案,初始化执行矩阵,该执行矩阵的维度为(n,Δt),记录了未来Δt个时刻的各模块执行位置;
X3、依次对η+1到η+Δt时刻的n个模块计算调整得分,并初始化得分矩阵,则在时刻t∈(η+1,η+Δt)的模块i的调整得分表示为调整该模块的执行位置并更新后续所有时刻的模块执行位置后,所带来的从η+1时刻到η+Δt时刻的总完成时间减少量,当调整模块i的执行位置之后,再由SM-H算法依次调整时刻i+1到时刻η+Δt的计算切分方案,并计算出此时的Δt个时刻的平均完成时间的减少量,作为t时刻时该模块的调整得分;
X4、调整得分最大模块的执行位置,并更新执行矩阵,将下一时刻到η+Δt时刻的计算切分方案用SM-H算法进行更新,得到更新后的执行矩阵;
X5、重新计算各模块的调整得分,并更新得分矩阵;
X6、判断得分矩阵中是否存在正得分,若存在正得分,则转到步骤X4,否则进入下一步;
X7、算法收敛,得到最终的模块执行位置的执行矩阵;
X8、返回当前时刻的计算切分方案和执行矩阵。
进一步地,所述算法收敛的条件为所有模块的调整得分均小于等于0,即不能通过调整某个模块的执行位置来使得总完成时间减少;所述最终的模块执行位置的执行矩阵为从η+1到η+Δt时刻所有模块的执行位置信息。
本发明与现有技术相比,具有如下优点和有益效果:
本发明对带状态量的数据流应用程序建立完备可扩展的模型,弥补了之前对于状态量方面考虑的缺失;此外本发明提出了基于得分矩阵的启发式方法(SM-H)和基于重复的得分矩阵的启发式方法(RSM-H),通过与传统的列调度(List scheduling),序列式调度(Sequential scheduling)和遗传算法(Genetic Algorithm)的优化效果做对比,证明了本发明提出的方法能得到更短的总完成时间,依此推及所有利用边缘云资源来优化调度的延迟敏感的带状态量的DAG型数据流应用程序,都可以使其得到更好的执行效果,为用户带来更流畅更好的使用体验。
附图说明
图1是本发明所述一种针对有状态数据流应用的计算卸载方法的方法流程图;
图2是本发明所述实施例中有状态数据流应用程序模型图;
图3是本发明所述实施例中系统模型图;
图4是本发明所述实施例中离线问题整体方法流程图;
图5是本发明所述实施例中序列式调整方法流程图;
图6是本发明所述实施例中SM-H方法流程图;
图7是本发明所述实施例中遗传算法的方法流程图;
图8是本发明所述实施例中在线问题整体方法流程图;
图9是本发明所述实施例中RSM-H算法的方法流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
一种针对有状态数据流应用的计算卸载方法,以实现在最小化应用程序的总完成时间与减少状态量之间达到一个权衡,如图1所示,包括以下步骤:
图1为本发明中优化的目标应用程序模型,即有状态的数据流应用程序模型,该模型在实际的应用中可见于光学流应用和物体追踪的应用中,例如物体追踪中的STC(Spatio-Temporal Context)算法和改进的STC算法。
在本发明中,考虑到模块之间的依赖关系,以及状态量对切分决策的影响,我们将该应用程序抽象为带权的有向无环图G=<V,E>(如图2所示)。其中V={i|1,2,...,n}为顶点集,即为功能模块的集合,如果模块i在时刻η时在移动设备上执行,则令若在边缘云上执行则令本发明规定模块i在移动设备和边缘云上处理一单元的数据(oneunit)的执行时间分别为mi和ci,且其开始和结束执行时间分别为δi和λi,模块i的结束执行时间λi可以表示为:
其中B表示每条网络信道的带宽。
其中D(i,j)表示为数据流(i,j)需要传输的数据量。
在数据流集合中,如果数据流(i,j)的相邻模块在不同的位置执行,那么在该数据流上会发生数据的传输,则称此数据流为交叉边(cross edge)。
图3为本发明中的系统模型,在移动设备上发起的有状态的应用程序,通过无线接入点或者基站将部分功能模块卸载到边缘云上执行,并将最后的执行结果返回到移动设备,其中在移动设备和边缘云端之间的网络带宽是动态变化的,而且边缘云端的计算能力是有限的(强于移动设备),假设模块在边缘云端的执行是不能抢占的,即必须在上一个模块执行结束,下一个模块才能开始执行。
假设只有一台移动设备,边缘端只有一台服务器。数据流的到达是连续到达的。移动设备和边缘云的处理能力是固定的(边缘云的处理能力强于移动设备)。各个时刻的网络带宽被分为若干条带宽相等的网络信道,且网络带宽都等于B。所以对于迁移状态量fi需要的网络带宽资源可以表示为如下的分段函数:
对于传输交叉边(i,j)所需要的网络带宽资源可以表示为如下分段函数:
结合图2和图3,本发明的优化目标为,在当前时刻的网络情况下,如何更新应用程序在上一时刻的计算切分方案,使得最小化总完成时间,并且保证尽可能少的迁移状态量。为了方便表述,我们引入进入模块0(entry module)和退出模块n+1(exit module),这两个引入的模块不需要消耗计算资源,且执行位置都是在移动设备,即以及此外,我们用集合Uη表示在当前时刻η时执行位置发生变化的模块组成的集合。所以,我们需要在当前时刻η做的决策分别为各个模块的新的执行位置为各条交叉边分配网络带宽资源的开始和结束时间y(i,j)(t),以及为状态量迁移的开始和结束时间且该应用程序的总完成时间表示为δn+1-δ0。因此本发明的目标函数可以表述为:
该问题需要考虑的约束条件分别为:模块之间依赖条件的约束,状态量迁移的约束,网络带宽的约束。这三种约束条件分别详述如下:
模块之间依赖条件的约束,要求数据流(i,j)的后继模块的开始执行时间必须迟于前趋模块的结束执行时间,进入模块的开始执行时间需要迟于当前时刻η,以及退出模块的开始执行时间需要早于下一时刻η+1,具体表述如下:
δ0≥η,
δn+1≤η+1.
状态量的迁移约束,要求对于有状态量的模块,如果其执行位置在当前时刻发生了变化,那么其状态量的开始迁移时间应该迟于当前时刻η,且其迁移过程应该在该模块的开始执行时间之前完成,具体表述如下:
网络带宽的约束,要求在任一时刻,交叉边所占用的网络带宽和状态量迁移所占用的网络带宽资源之和不应超过当前时刻总的网络带宽资源,具体表述如下:
本发明中包括模型建立的整体方法流程图如下图1所示,其主要的步骤包括:
步骤1:本发明中的研究场景为边缘计算环境下的数据流式任务的调度优化,在本地的移动设备和边缘服务器间协同优化完成数据流任务的计算。
步骤2:本发明中的研究对象为带状态量的DAG型数据流应用程序,抽象为带权的有向无环图G=<V,E>,其中V={i|1,2,...,n}为功能模块的集合,Vstate表示带状态量的模块集合,E={(i,j)|i,j∈V}表示模块之间数据流的集合。
步骤3:本发明中的网络环境是随时间动态变化的,Nη表示时刻η时的网络信道数目,B表示每条网络信道的带宽。
步骤5:本发明中的约束条件包括:模块之间依赖关系的约束,状态量的迁移约束,网络带宽的约束。
步骤5.1:模块之间依赖关系的约束,即要求数据流(i,j)的后继模块j的开始执行时间必须迟于前驱模块i的结束执行时间,且进入模块的开始执行时间需要迟于当前时刻η,以及退出模块的开始执行时间需要早于下一时刻的开始η+1。
步骤5.2:状态量的迁移约束,要求对于有状态量的模块,如果其执行位置在当前时刻发生了变化,那么其状态量的开始迁移时间应该迟于当前时刻η,且其迁移过程应该在该模块的开始执行时间之前完成,具体表述如下:
步骤5.3:网络带宽的约束:要求在任一时刻,交叉边所占用的网络带宽和状态量迁移所占用的网络带宽资源之和不应超过当前时刻总的网络带宽资源,具体表述如下:
步骤6-1:若该问题为one-shot问题(离线问题),则执行one-shot问题的方法流程图。
步骤6-2:若该问题为Δt-step look ahead的多步优化调度问题(在线问题),则执行Δt-step look ahead的整体方法流程图。
其中步骤1-步骤5为模型的建立流程,步骤6-1对应了图4中的one-shot问题的整体方法流程图,而步骤6-2则对应了图8中的Δt-step look ahead的整体方法流程图。该流程图整体即代表了本发明中的整体方法流程图。
对于one-shot-problem的问题求解,本发明提出了序列式调整算法,SM-H调整算法,遗传算法,以及作为参考方法的列调度方法(List Scheduling)。
图4为本发明中one-shot问题(离线问题)整体的方法流程图,如图所示,其主要的步骤包括:
步骤1:已知上一时刻η-1的计算切分方案以及各个模块的执行表(ExecutionList)执行表表示在时刻η-1时各个模块的执行位置,即形如(0,1,1,1,0,1,0,1,0)的列表,该列表记录了各个模块的拓扑顺序以及执行位置。
步骤2:在下一时刻即时刻η时刻网络带宽Nη发生了变化,由于应用在执行过程中需要在网络环境中传输交叉边的数据流,所以应用的性能对网络波动是敏感的。
步骤3:更新并作出η时刻的最优计算切分方案,由于在上文中提到的种种约束条件,所以寻找最优调度方案已被证明是NP难,本文会提出一系列次优的调度方案。
步骤4:本发明中所提出的方案的目标,即预期结果为,在最小化η时刻的总完成时间makespan和减少状态量迁移之间达到权衡。
图5为本发明实施例基于序列式调整(Sequential Adjustment)的方法流程图;如图5所示,所述方法包括:
步骤2:将当前时刻η的网络带宽划分成Nη条带宽为B的网络信道。
步骤3:按照各个模块的拓扑顺序依次计算模块的调整得分,调整得分表示当该模块的执行位置变化之后,总完成时间的减少量,即调整得分表示该模块执行位置的调整对总完成时间的影响程度。
步骤4:依次计算各个模块的调整得分是否为正得分,若为正则调整该模块的执行位置并更新执行表,否则保持该模块的执行位置不变。
步骤5:依次对每个模块进行一轮判断和调整,重复步骤4,直到所有模块被判断和调整一遍,并得到最终的执行表。
步骤6:返回当前时刻η的计算切分方案。
考虑到序列式调整的方法虽然复杂度低,但是没有将模块调整的优先顺序以及有效的退出条件考虑进来,所以本发明又在此基础上提出了基于得分矩阵的启发式算法(SM-H)。
图6为本发明实施例基于得分矩阵(SM-H)的方法流程图;如图6所示,所述方法包括:
步骤2:将当前时刻η的网络带宽划分成Nη条带宽为B的网络信道。
步骤3:按照各个模块的拓扑顺序依次计算模块的调整得分并得到得分矩阵(Score Matrix),得分矩阵表示在保持其他模块的执行位置不变的情况下,记录每个模块的调整得分。
步骤4:调整最大正得分的模块的执行位置,并更新执行表。
步骤5:重新计算各个模块的调整得分,并更新得分矩阵。
步骤6:判断得分矩阵是否存在正得分的模块,若存在,则转步骤4;否则转步骤7。
步骤7:算法收敛,并得到最终的模块位置的执行表。
步骤8:返回当前时刻的计算切分方案和执行表。
算法SM-H的时间复杂度为λ1×n2,其中n为模块总数,λ1为算法的迭代更新次数。
图7为本发明实施例基于遗传算法(Genetic Algorithm)的方法流程图;如图7所示,所述方法包括:
步骤1:基因编码,将个体的基因编码为各个模块执行位置的0-1执行表,也即一种时刻η时可能的模块执行表。
步骤2:初始化种群规模N以及指定最大遗传代数。
步骤3:计算所有个体的适应值,适应值表示为在时刻η的计算切分方案为该个体基因表示的执行表时,所计算出的总完成时间的导数。
步骤4:结合轮盘赌和锦标赛选择算法选择N个个体。
步骤5:对被选择的个体进行交叉、变异操作。
步骤6:判断遗传代数是否到达阈值,如达到阈值,则转步骤7,否则转步骤3。
步骤7:选择当前种群中适应值最大的个体基因作为最优解。
步骤8:返回当前时刻的计算切分方案。
遗传算法当进化代数和种群规模变大时,会生成很优的解决方案,但是时间复杂度会很高,通过调整遗传算法的参数值,使其得到较优的解决方案同时能保证复杂度较低。
对于Δt-step look ahead的多步优化调度问题的求解,本发明除了以上几种方法之外,又提出了RSM-H(Repeated Score Matrix based Heuristic)算法。此时的优化目标为最小化未来Δt个时刻的平均完成时间,需要依据未来Δt个时刻的网络带宽情况决策出每个时刻的计算切分方案,其可以表述如下:
图8为本发明中Δt-step look ahead的多步优化调度问题(在线问题)整体的方法流程图,如图8所示,其主要步骤包括:
步骤1:已知当前时刻η的计算切分方案。
步骤2:未来的网络状况发生变化并且已知未来Δt个时刻的网络带宽情况,由于该应用在执行过程中是对网络波动敏感的,所以需要对未来Δt个时刻的计算切分方案都做出调度决策。
步骤3:根据时刻η的计算切分方案以及未来Δt个时刻的网络带宽情况,做出对未来Δt个时刻而言的总体最优切分调度方案(NP难)。在下文会提出次优的切分调度方案。
其中,为应用程序的结束模块n+1在时间区间(t,t+1)的开始执行时间,即应用程序在时间区间(t,t+1)时的执行结束时间,为应用程序的开始模块0在时间区间(t,t+1)的开始执行结束时间,两者之差即为该应用程序在时间区间(t,t+1)的完成时间;Δt表示本离线问题考虑的总时间区间的数目。
图9为本发明实施例基于重复的基于得分矩阵的启发式算法RSM-H(RepeatedScore Matrix based Heuristic)的方法流程图;如图9所示,所述方法包括:
步骤1:给定η时刻的计算切分方案,以及未来Δt个时刻的网络带宽情况。
步骤2:由SM-H算法依次计算出η+1时刻到η+Δt时刻的初始计算切分方案,并初始化执行矩阵(Execution Matrix),该执行矩阵的维度为(n,Δt),其记录了未来Δt个时刻的各个模块的执行位置。
步骤3:依次对η+1到η+Δt时刻的n个模块计算调整得分,并初始化得分矩阵,在时刻t∈(η+1,η+Δt)的模块i的调整得分表示为,当调整模块i的执行位置之后,再由SM-H算法依次调整时刻i+1到时刻η+Δt的计算切分方案,并计算出此时的Δt个时刻的平均完成时间的减少量,以此作为t时刻时该模块的调整得分。再初始化得分矩阵(Score Matrix),该得分矩阵记录了每个模块的调整得分。
步骤4:调整得分最大的模块的执行位置,并更新执行矩阵。此时需要将从下一时刻到η+Δt时刻的计算切分方案用SM-H算法进行更新,并得到更新后的执行矩阵。
步骤5:重新计算各个模块的调整得分,并更新得分矩阵。
步骤6:判断得分矩阵中是否存在正得分,如果存在,则转到步骤4,否则转到步骤7。
步骤7:算法收敛,得到最终的模块执行位置的执行矩阵。
步骤8:返回当前时刻的计算切分方案和执行矩阵。
RSM-H算法相比于其他的算法总是能找到接近最优的解,但是时间复杂度较高,达到了λ2×(|Δt|×n×(λ1×n2)),其中λ2为RSM-H算法的迭代调整次数。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种针对有状态数据流应用的计算卸载方法,其特征在于,包括以下步骤:
S1、选择研究场景,即对边缘计算环境下的数据流式任务的调度优化,在本地的移动设备和边缘服务器间协同优化,完成数据流任务计算;
S2、获取研究对象,即有状态量的DAG型数据流应用程序抽象为带权的有向无环图G=<V,E>,其中,V={i|1,2,...,n}为功能模块的集合,Vstate表示带状态量的模块集合,E={(i,j)|i,j∈V}表示模块之间数据流的集合;为了最小化总完成时间,该研究对象的各任务模块需要做出在移动端或在边缘云上执行的决策;
S3、根据时间动态变化设置网络环境,Nη表示时刻η时的网络信道数目,B表示每条网络信道的带宽;
其中,δn+1为应用程序结束模块即模块n+1的开始执行时间,δ0为应用程序开始模块即模块0的开始执行时间,两者之差为应用程序的总完成时间;为时刻η各模块的执行位置,即y(i,j)(t)为交叉边(i,j)在时刻t传输时分配的网络带宽;为状态量fi在时刻t传输时分配的网络带宽;
S5、根据约束条件,构建有状态的数据流应用程序模型,所述约束条件为:模块间依赖关系约束、状态量迁移约束、网络带宽约束;
S6、通过有状态量的数据流应用程序模型,对优化目标判断问题类型,如果是离线问题,则执行离线问题方法;如果是在线问题,则执行在线问题方法;从而对问题进行求解,实现对有状态数据流应用程序的计算卸载。
2.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,步骤S1中,所述研究场景包括移动设备,需要卸载执行的有状态量的DAG型数据流应用程序,无线接入点AP和边缘云;所述有状态量的DAG型数据流应用程序的开始模块和结束模块都在移动设备上执行,即有状态的DAG型数据流应用程序由移动设备发起,最后的计算结果返回到移动设备。
3.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,步骤S3中,所述网络信道的带宽为2MBps;每个时刻的网络信道数目服从[1,5]均匀分布。
4.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,步骤S5中,所述模块间依赖约束为模块的执行顺序约束,即只有前驱模块执行结束之后,后继模块才能开始执行;所述状态量迁移约束为状态量迁移时间与该模块的开始执行时间之间的约束,即该模块的开始执行时间必须迟于其状态量的迁移结束时间;所述网络带宽约束为在应用程序的执行过程中,分配给数据流传输的网络带宽资源约束,即在任意时间点,分配给数据流传输和状态量迁移的总带宽不能超过该时刻可用的总带宽资源。
5.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,所述步骤S6具体为:通过有状态的数据流应用程序模型,对问题进行判断,如果是离线问题,则执行离线问题方法;如果是在线问题,则执行在线问题方法;即根据该应用程序的优化目标来判断需要解决的问题类型,如果是已知下一时刻的网络情况,且需要优化下一时刻的模块调度决策,则其为one-shot离线问题;如果是已知未来多个时刻的网络情况,且需要优化未来多个时刻的模块调度决策,则其为Δt-step look ahead多步优化的在线问题;对问题进行求解,实现对有状态数据流应用程序的计算卸载。
6.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,所述执行离线问题方法,具体为:
在当前时刻η,网络带宽Nη发生变化,即应用程序在执行过程中需要在网络环境中传输交叉边的数据流,应用程序的性能对网络波动敏感;
根据约束条件,提出调度方法,所述调度方法包含序列式调整算法、SM-H调整算法、遗传算法和列调度方法;更新并作出时刻η的次优切分方案,即最小化时刻η的总完成时间和减少状态量迁移之间达到权衡;所述达到权衡,因为改变带状态量模块的执行位置会带来状态量的迁移开销,而最小化总完成时间需要减少状态量迁移的同时优化模块的执行位置,决策过程为权衡。
7.根据权利要求6所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,所述调度方法为SM-H调整算法,具体如下:
SM-H调整算法时间复杂度为λ1×n2,其中n为模块总数,λ1为算法的迭代更新次数,其方法流程如下:
U2、将当前时刻η的网络带宽划分成Nη条带宽为B的网络信道;
U3、案子各模块的拓扑顺序依次计算模块的调整得分并得到得分矩阵,得分矩阵表示在保存其他模块的执行位置不变的情况下,记录每个模块的调整得分;
U4、调整最大正得分的模块执行位置,并更新执行表;
U5、重新计算各模块的调整得分,并更新得分矩阵;
U6、判断得分矩阵是否存在正得分模块,若存在正得分模块,则转到步骤U4,否则进入下一步;
U7、算法收敛,并得到最终模块位置的执行表;
U8、返回当前时刻的计算切分方案和执行表。
8.根据权利要求1所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,所述执行在线问题方法为多步优化调度问题方法,具体流程如下:
W1、已知当前时刻η的计算切分方案;
W2、未来的网络状况发生变化并且已知未来Δt个时刻的网络带宽情况,由于应用程序在执行过程中对网络波动敏感,所以需要对未来Δt个时刻的计算切分方案都做出调度决策;
W3、根据时刻η的计算切分方案以及未来个时刻的网络带宽情况,做出为未来个时刻最优调度方案;
W4、最优调度方案目标:在最小化未来个时刻的平均总完成时间和减少状态量迁移之间达到权衡;
所述平均总完成时间为:
9.根据权利要求8所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,为了解决在线调度优化问题,使用RSM-H算法,时间复杂度为λ2×(|Δt|×n×(λ1×n2)),其中λ2为RSM-H算法的迭代调整次数;RSM-H算法的方法流程如下:
X1、给定时刻η的计算切分方案,以及未来Δt个时刻的网络带宽情况;
X2、由SM-H算法依次计算出η+1时刻到η+Δt时刻的初始计算切分方案,初始化执行矩阵,该执行矩阵的维度为(n,Δt),记录了未来Δt个时刻的各模块执行位置;
X3、依次对η+1到η+Δt时刻的n个模块计算调整得分,并初始化得分矩阵,则在时刻t∈(η+1,η+Δt)的模块i的调整得分表示为调整该模块的执行位置并更新后续所有时刻的模块执行位置后,所带来的从η+1时刻到η+Δt时刻的总完成时间减少量,当调整模块i的执行位置之后,再由SM-H算法依次调整时刻i+1到时刻η+Δt的计算切分方案,并计算出此时的Δt个时刻的平均完成时间的减少量,作为t时刻时该模块的调整得分;
X4、调整得分最大模块的执行位置,并更新执行矩阵,将下一时刻到η+Δt时刻的计算切分方案用SM-H算法进行更新,得到更新后的执行矩阵;
X5、重新计算各模块的调整得分,并更新得分矩阵;
X6、判断得分矩阵中是否存在正得分,若存在正得分,则转到步骤X4,否则进入下一步;
X7、算法收敛,得到最终的模块执行位置的执行矩阵;
X8、返回当前时刻的计算切分方案和执行矩阵。
10.根据权利要求9所述的一种针对有状态数据流应用的计算卸载方法,其特征在于,所述算法收敛的条件为所有模块的调整得分均小于等于0,即不能通过调整某个模块的执行位置来使得总完成时间减少;所述最终的模块执行位置的执行矩阵为从η+1到η+Δt时刻所有模块的执行位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536020.3A CN110366210B (zh) | 2019-06-20 | 2019-06-20 | 一种针对有状态数据流应用的计算卸载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536020.3A CN110366210B (zh) | 2019-06-20 | 2019-06-20 | 一种针对有状态数据流应用的计算卸载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110366210A CN110366210A (zh) | 2019-10-22 |
CN110366210B true CN110366210B (zh) | 2023-01-06 |
Family
ID=68216683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910536020.3A Active CN110366210B (zh) | 2019-06-20 | 2019-06-20 | 一种针对有状态数据流应用的计算卸载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110366210B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061711B (zh) * | 2019-11-28 | 2023-09-01 | 同济大学 | 一种基于数据处理行为的大数据流卸载方法和装置 |
CN114721913B (zh) * | 2022-05-12 | 2022-08-23 | 华控清交信息科技(北京)有限公司 | 一种生成数据流图的方法、装置和用于生成数据流图的装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658604A (zh) * | 2016-12-14 | 2017-05-10 | 华南理工大学 | 一种基于车辆运动估计的异构车联网移动数据卸载方法 |
CN108540406A (zh) * | 2018-07-13 | 2018-09-14 | 大连理工大学 | 一种基于混合云计算的网络卸载方法 |
CN109257429A (zh) * | 2018-09-25 | 2019-01-22 | 南京大学 | 一种基于深度强化学习的计算卸载调度方法 |
CN109358953A (zh) * | 2018-09-20 | 2019-02-19 | 中南大学 | 一种微云中的多任务应用卸载方法 |
CN109690525A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 形状的流数据的自动分区 |
CN109840154A (zh) * | 2019-01-08 | 2019-06-04 | 南京邮电大学 | 一种移动云环境下基于任务依赖的计算迁移方法 |
EP3493058A1 (en) * | 2017-12-04 | 2019-06-05 | Thomson Licensing | Method and device for migrating a stateful function |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060614B2 (en) * | 2008-06-19 | 2011-11-15 | Microsoft Corporation | Streaming operator placement for distributed stream processing |
EP2823412A1 (en) * | 2012-03-08 | 2015-01-14 | Telefonaktiebolaget L M Ericsson (PUBL) | Data stream management systems |
WO2016081946A1 (en) * | 2014-11-21 | 2016-05-26 | The Regents Of The University Of California | Fast behavior and abnormality detection |
CN104836682B (zh) * | 2015-04-01 | 2018-06-26 | 华中科技大学 | 一种基于动态规划算法的网络数据传输能耗优化方法 |
US10567248B2 (en) * | 2016-11-29 | 2020-02-18 | Intel Corporation | Distributed assignment of video analytics tasks in cloud computing environments to reduce bandwidth utilization |
EP3467824B1 (en) * | 2017-10-03 | 2021-04-21 | Dolby Laboratories Licensing Corporation | Method and system for inter-channel coding |
CN107911478B (zh) * | 2017-12-06 | 2020-09-22 | 武汉理工大学 | 基于化学反应优化算法的多用户计算卸载方法及装置 |
-
2019
- 2019-06-20 CN CN201910536020.3A patent/CN110366210B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109690525A (zh) * | 2016-09-15 | 2019-04-26 | 甲骨文国际公司 | 形状的流数据的自动分区 |
CN106658604A (zh) * | 2016-12-14 | 2017-05-10 | 华南理工大学 | 一种基于车辆运动估计的异构车联网移动数据卸载方法 |
EP3493058A1 (en) * | 2017-12-04 | 2019-06-05 | Thomson Licensing | Method and device for migrating a stateful function |
CN108540406A (zh) * | 2018-07-13 | 2018-09-14 | 大连理工大学 | 一种基于混合云计算的网络卸载方法 |
CN109358953A (zh) * | 2018-09-20 | 2019-02-19 | 中南大学 | 一种微云中的多任务应用卸载方法 |
CN109257429A (zh) * | 2018-09-25 | 2019-01-22 | 南京大学 | 一种基于深度强化学习的计算卸载调度方法 |
CN109840154A (zh) * | 2019-01-08 | 2019-06-04 | 南京邮电大学 | 一种移动云环境下基于任务依赖的计算迁移方法 |
Non-Patent Citations (3)
Title |
---|
移动云计算环境下任务调度的多目标优化方法;胡海洋等;《计算机研究与发展》;20170915(第09期);全文 * |
约束驱动与松弛时间消除相结合的硬/软件划分算法;程国达等;《计算机研究与发展》;20030630(第06期);全文 * |
边缘计算中基于代价优化的任务分配与卸载;杜明哲;《信息科技》;20190601;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110366210A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561148A (zh) | 边缘计算网络中基于有向无环图的分布式任务调度方法 | |
CN104038392A (zh) | 一种云计算资源服务质量评估方法 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
CN110366210B (zh) | 一种针对有状态数据流应用的计算卸载方法 | |
WO2023124947A1 (zh) | 一种任务处理方法、装置及相关设备 | |
CN113472597B (zh) | 分布式卷积神经网络细粒度的参数传输调度方法及装置 | |
CN111813506A (zh) | 一种基于粒子群算法资源感知计算迁移方法、装置及介质 | |
EP4024212B1 (en) | Method for scheduling inference workloads on edge network resources | |
CN115665258B (zh) | 一种基于深度强化学习的多目标服务功能链的优先级感知部署方法 | |
CN113347267B (zh) | 一种移动边缘云计算网络中的mec服务器部署方法 | |
CN112214301B (zh) | 面向智慧城市基于用户偏好的动态计算迁移方法及装置 | |
Xue et al. | EdgeLD: Locally distributed deep learning inference on edge device clusters | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
Jian et al. | A high-efficiency learning model for virtual machine placement in mobile edge computing | |
CN113139639B (zh) | 一种基于mombi面向智慧城市应用多目标计算迁移方法和装置 | |
CN111199316A (zh) | 一种基于执行时间评估的云雾协同计算电网调度方法 | |
CN111629218A (zh) | 一种vanet中基于时变线性的加速强化学习边缘缓存方法 | |
CN113382066B (zh) | 基于联邦边缘平台的车辆用户选择方法及系统 | |
Jie et al. | A DQN-based approach for online service placement in mobile edge computing | |
CN114691372A (zh) | 一种多媒体端边云系统的群体智能控制方法 | |
Saravanan et al. | Improving map reduce task scheduling and micro-partitioning mechanism for mobile cloud multimedia services | |
CN117202264A (zh) | Mec环境中面向5g网络切片的计算卸载方法 | |
CN110971451B (zh) | Nfv资源分配方法 | |
CN112685162A (zh) | 边缘服务器异构计算资源的高效能调度方法、系统和介质 | |
CN116302578A (zh) | 一种QoS约束的流应用延迟确保方法及系统 |
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 |