CN111611080B - 边缘计算任务协同调度方法、系统、装置 - Google Patents
边缘计算任务协同调度方法、系统、装置 Download PDFInfo
- Publication number
- CN111611080B CN111611080B CN202010443683.3A CN202010443683A CN111611080B CN 111611080 B CN111611080 B CN 111611080B CN 202010443683 A CN202010443683 A CN 202010443683A CN 111611080 B CN111611080 B CN 111611080B
- Authority
- CN
- China
- Prior art keywords
- task
- ant
- virtual machine
- matrix
- completion time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 239000003016 pheromone Substances 0.000 claims abstract description 131
- 241000257303 Hymenoptera Species 0.000 claims abstract description 17
- 239000011159 matrix material Substances 0.000 claims description 106
- 238000004364 calculation method Methods 0.000 claims description 39
- 230000008859 change Effects 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 10
- 230000009191 jumping Effects 0.000 claims description 4
- 238000012804 iterative process Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 6
- 238000011160 research Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002028 premature Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009024 positive feedback mechanism Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于边缘计算技术领域,具体涉及了一种边缘计算任务协同调度方法、系统、装置,旨在解决蚁群算法容易出现局部最优而不能很好地解决边缘环境下的资源利用率不高、虚拟机计算资源负载不均衡的问题。本发明包括:获取边缘计算任务的调度队列,并初始化相关参数;从蚁群算法中第一只蚂蚁开始,获取当前蚂蚁的可行解;若为最优可行解,则更新最优解和最短的任务最大完成时间;进行局部信息素更新,直至所有蚂蚁完成寻解;进行全局信息素更新,并迭代进行局部寻优,直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间。本发明进一步避免了蚁群算法过早陷入局部最优,保证了负载的均衡、任务的合理调度和资源的高效利用。
Description
背景技术
边缘计算是在靠近数据源头的网络边缘侧,利用计算、网络、存储等资源组成统一的资源平台为用户提供服务的一种计算模式,与云计算共同成为解决物联网场景下应用需求的互补计算范式。目前边缘计算环境由多个边缘计算节点和边缘服务器组成,如何高效地利用这些节点的计算、存储和带宽等资源尤为重要。边缘计算下的任务调度策略是合理利用边缘环境下资源的一种有效方式,高效的任务调度策略对降低任务最大完成时间、提高边缘环境的资源利用率、确保边缘计算系统的服务质量等具有十分重要的意义。
边缘计算的任务调度主要研究如何将边缘节点提交的任务分配给边缘服务器并为其分配虚拟计算资源,达到目标优化的效果,即边缘环境资源的利用和目标的优化。目前的大多数研究中,对于边缘环境下资源的利用主要集中在边缘服务器的使用,而对于边缘节点资源的利用非常少,这在一定程度上浪费了边缘节点的资源,也即浪费了边缘环境下的资源。除此之外,当前研究大多集中在任务完成时间、系统总能耗等的优化上,为降低时延、减小能耗,大多数计算任务会被分配到计算能力强的虚拟机资源上,而计算能力相对弱的虚拟机呈空闲状态,这会导致边缘环境下资源利用率低,负载不均衡,故障发生率提高等问题。
由于蚁群算法具有并行分布性、易实现、鲁棒性强等特点,非常适用于边缘环境下的任务调度。但同时,蚁群算法信息素更新的正反馈机制导致其具有早熟收敛的固有缺陷,容易陷入局部最优,出现搜索停滞现象,因此当前大多数研究多针对该缺点对传统蚁群算法进行优化改进,但仍无法完全避免该现象的出现。
综上所述,当前研究中对于边缘环境下的资源利用率不高,目标优化的前提下虚拟机计算资源负载不均衡,但是采用传统蚁群算法进行边缘环境下的计算任务的协同调度容易出现早熟收敛问题。
发明内容
为了解决现有技术中的上述问题,即蚁群算法容易出现局部最优而不能很好地解决边缘环境下的资源利用率不高、虚拟机计算资源负载不均衡的问题,本发明提供了一种边缘计算任务协同调度方法,该方法包括:
步骤S10,获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
步骤S20,从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,并根据轮盘赌法为当前任务选择相应的虚拟机;
步骤S30,将选择的虚拟机加入当前蚂蚁的任务调度结果列表,更新任务预计完成时间矩阵和更新选择的虚拟机的CPU利用率,并迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
步骤S40,判断当前蚂蚁的可行解是否为最优解,若不是,则跳转步骤S50;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
步骤S50,基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
步骤S60,初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,重复步骤S20-步骤S50,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,并更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
步骤S70,以更新后的信息素浓度矩阵作为下一轮迭代的蚁群算法的信息素浓度矩阵,并重复执行步骤S10-步骤S60直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间。
在一些优选的实施例中,步骤S10中“边缘计算任务的预计完成时间矩阵”为CTm×(2p+q);m代表计算任务数量,p代表边缘服务器数量,q代表边缘节点数量;
所述预计完成时间矩阵的每一个元素为:
在一些优选的实施例中,步骤S10中“蚁群算法的信息素浓度矩阵”为phem×(2p+q);
所述信息素浓度矩阵的每一个元素为:
其中,τij(0)为虚拟机VMj对于任务Ti的初始信息素浓度,Mipsj为虚拟机VMj的计算能力,Ramj为虚拟机VMj的内存大小,BWj为虚拟机VMj的带宽大小,Storagej为虚拟机VMj的存储空间大小,A、B、C、D、E为预先设定的常数。
在一些优选的实施例中,步骤S20中“计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率”,其方法为:
其中,Pij(t)为计算任务Ti选择虚拟机VMj的概率,启发函数ηij(t)表示计算任务Ti对虚拟机VMj的倾向程度,τij(t)为t时刻虚拟机VMj对于任务Ti的信息素浓度,τis(t)为t时刻虚拟机VMs对于任务Ti的信息素浓度,ηis(t)为计算任务Ti对虚拟机VMs的倾向程度,α和β分别为表示信息素浓度与启发函数的相对影响程度的信息素因子和启发因子。
在一些优选的实施例中,“计算任务Ti对虚拟机VMj的倾向程度”的启发函数为:
其中,Uj(t)为t时刻虚拟机VMj的CPU利用率大小,F、G为预先设定的常数。
在一些优选的实施例中,步骤S30中“更新任务预计完成时间矩阵”,其方法为:
C(i+1)j'=C(i+1)j+Cij
其中,C(i+1)j'为当前计算任务Ti选中虚拟机VMj后,后续计算任务在选中虚拟机VMj上的任务预计完成时间,Cij为计算任务Ti在虚拟机VMj上的预计完成时间,C(i+1)j为计算任务Ti+1在虚拟机VMj上的执行时间。
在一些优选的实施例中,步骤S30中“更新选择的虚拟机的CPU利用率”,其方法为:
在一些优选的实施例中,步骤S50中“更新当前蚂蚁的信息素变化矩阵”,其方法为:
在一些优选的实施例中,步骤S50中“更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度”,其方法为:
在一些优选的实施例中,步骤S60中“更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度”,其方法为:
其中,τij(t)和τij(t+1)分别为t时刻和t+1时刻虚拟机VMj对于任务Ti的信息素浓度,表示当前蚂蚁Antx的虚拟机VMj对于任务Ti的信息素浓度变化,ρ为信息素浓度的挥发系数,k为蚁群算法中蚂蚁的数量。
本发明的另一方面,提出了一种边缘计算任务协同调度系统,基于上述的边缘计算任务协同调度方法,该系统包括信息获取及初始化模块、任务与虚拟机对应模块、第一循环模块、局部最优可行解判别模块、第一信息更新模块、第二循环模块、第二信息更新模块、第三循环模块以及输出模块;
所述信息获取及初始化模块,配置为获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
所述任务与虚拟机对应模块,配置为从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,根据轮盘赌法为当前任务选择相应的虚拟机,将选择的虚拟机加入当前蚂蚁的任务调度结列表,更新任务预计完成时间矩阵和选择的虚拟机的CPU利用率;
所述第一循环模块,配置为通过任务与虚拟机对应模块迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
所述局部最优可行解判别模块,配置为判断当前蚂蚁的可行解是否为最优解,若不是,则跳第一信息更新模块;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
所述第一信息更新模块,配置为基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
所述第二循环模块,配置为初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,迭代进行蚁群算法中每一只蚂蚁的各任务与虚拟机的对应,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵;
所述第二信息更新模块,配置为基于蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
所述第三循环模块,配置为以更新后的信息素浓度矩阵作为下一轮的蚁群算法的信息素浓度矩阵,迭代计算直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间;
所述输出模块,配置为输出获取的全局最优可行解及对应的最短的任务最大完成时间。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的边缘计算任务协同调度方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;所述处理器,适于执行各条程序;所述存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的边缘计算任务协同调度方法。
本发明的有益效果:
本发明边缘计算任务协同调度方法,降低了边缘侧计算任务的最大完成时间,并保证了负载的均衡性,同时协同边缘服务器与边缘节点,最大化地利用边缘侧的计算、存储和网络等资源,实现计算任务的合理调度、计算资源的高效利用。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明边缘计算任务协同调度方法的流程示意图;
图2是本发明边缘计算任务协同调度方法一种实施例的硬件组成框架示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的一种边缘计算任务协同调度方法,该方法包括:
步骤S10,获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
步骤S20,从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,并根据轮盘赌法为当前任务选择相应的虚拟机;
步骤S30,将选择的虚拟机加入当前蚂蚁的任务调度结果列表,更新任务预计完成时间矩阵和更新选择的虚拟机的CPU利用率,并迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
步骤S40,判断当前蚂蚁的可行解是否为最优解,若不是,则跳转步骤S50;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
步骤S50,基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
步骤S60,初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,重复步骤S20-步骤S50,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,并更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
步骤S70,以更新后的信息素浓度矩阵作为下一轮迭代的蚁群算法的信息素浓度矩阵,并重复执行步骤S10-步骤S60直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间。
为了更清晰地对本发明边缘计算任务协同调度方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。
本发明一种实施例的边缘计算任务协同调度方法,包括步骤S10-步骤S70,各步骤详细描述如下:
步骤S10,获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表。
边缘计算任务的调度队列为根据计算任务预计到达时间的先后顺序,将所有计算任务进行排序,形成的待处理的计算任务调度队列T={T1,T2,...,Tm},Ti,i∈[1,2,…,m]为队列中第i个任务。
任务Ti包括的数据信息如式(1)所示:
其中,为计算任务Ti所在的移动边缘节点的标志编号,为计算任务Ti的标志编号,为计算任务Ti的长度,为计算任务Ti的开始时间,为计算任务Ti的输入文件大小,为计算任务Ti的输出文件大小,为虚拟机VMi当前计算任务Ti所需的CPU利用率大小。
从而,计算任务Ti的预计到达时间如式(2)所示:
其中,BandWidth为当前网络环境可用带宽大小。
边缘计算任务所在的网络中包括2p个边缘服务器计算资源{VM1,VM2,...,VM2p}以及q个边缘节点计算资源{VM2p+1,VM2p+2,...,VM2p+q},即总共有2p+q个虚拟机VM={VM1,VM2,...,VM2p,...,VM2p+q},其中第j,j∈[1,2,…,2p,2p+1,…,2p+q]个虚拟机VMj可表示为VMj={VmIdj,Mipsj,Ramj,Bwj,Storagej,Uj},其中VmIdj为虚拟机VMj的标志编号,Mipsj为虚拟机VMj的计算能力,Ramj为虚拟机VMj的内存大小,BWj为虚拟机VMj的带宽大小,Storagej为虚拟机VMj的存储空间大小,Uj为虚拟机VMj当前的CPU利用率大小。
“边缘计算任务的预计完成时间矩阵”为CTm×(2p+q);m代表计算任务数量,p代表边缘服务器数量,q代表边缘节点数量;
预计完成时间矩阵的每一个元素的计算方法如式(3)所示:
“蚁群算法的信息素浓度矩阵”为phem×(2p+q);
信息素浓度矩阵的每一个元素的计算方法如式(4)所示:
其中,τij(0)为虚拟机VMj对于任务Ti的初始信息素浓度,Mipsj为虚拟机VMj的计算能力,Ramj为虚拟机VMj的内存大小,BWj为虚拟机VMj的带宽大小,Storagej为虚拟机VMj的存储空间大小,A、B、C、D、E为预先设定的常数,可通过优化效果进行调节。
蚁群算法中的蚁群为Ant={Ant1,Ant2,...,Antk},其中,Antx,x∈[1,2,…,k]代表蚁群算法中第x只蚂蚁,其初始化信息素变化矩阵为矩阵中任意元素表示虚拟机VMj对于任务Ti的信息素浓度变化。初始化任务调度结果列表列表中任意元素表示边缘计算任务的调度队列中Ty任务选中的虚拟机。
步骤S20,从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,并根据轮盘赌法为当前任务选择相应的虚拟机。
“计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率”,其方法如式(5)所示:
其中,Pij(t)为计算任务Ti选择虚拟机VMj的概率,启发函数ηij(t)表示计算任务Ti对虚拟机VMj的倾向程度,τij(t)为t时刻虚拟机VMj对于任务Ti的信息素浓度,τis(t)为t时刻虚拟机VMs对于任务Ti的信息素浓度,ηis(t)为计算任务Ti对虚拟机VMs的倾向程度,α和β分别为表示信息素浓度与启发函数的相对影响程度的信息素因子和启发因子。s代表边缘侧的任一虚拟机编号。
启发函数的计算方法如式(6)所示:
其中,Uj(t)为t时刻虚拟机VMj的CPU利用率大小,F、G为预先设定的常数。
步骤S30,将选择的虚拟机加入当前蚂蚁的任务调度结果列表,更新任务预计完成时间矩阵和更新选择的虚拟机的CPU利用率,并迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间。
“更新任务预计完成时间矩阵”,其方法如式(7)所示:
C(i+1)j'=C(i+1)j+Cij 式(7)
其中,C(i+1)j'为当前计算任务Ti选中虚拟机VMj后,后续计算任务在选中虚拟机VMj上的任务预计完成时间,Cij为计算任务Ti在虚拟机VMj上的预计完成时间,C(i+1)j为计算任务Ti+1在虚拟机VMj上的执行时间。
更新当前任务所选择的虚拟机的CPU利用率,如式(8)所示:
其中,Uj'为计算任务Ti选中虚拟机VMj后,虚拟机VMj当前的CPU利用率;Uj此次迭代过程中计算任务Ti未选中虚拟机VMj时,虚拟机VMj的CPU利用率大小;UTi为计算任务Ti所需CPU利用率大小。
步骤S40,判断当前蚂蚁的可行解是否为最优解,若不是,则跳转步骤S50;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间。
判断当前蚂蚁可行解是否最优,即比较当前可行解与最优解的任务最大完成时间,若可行解的任务最大完成时间更小,则当前蚂蚁的可行解作为最优可行解进行更新,同时弃掉更新前的最优解,更新后的最优解用于判断后续蚂蚁迭代获得的可行解是否最优。
最优解为当前所有获取到的可行解中任务最大完成时间最短的可行解,记为BestResult,其对应的任务最大完成时间为BestCTMax。
步骤S50,基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度。
“更新当前蚂蚁的信息素变化矩阵”,其方法如式(9)所示:
“更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度”,其方法如式(10)所示:
步骤S60,初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,重复步骤S20-步骤S50,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,并更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度。
因为蚂蚁未经过的路径信息素不挥发,因此,所有蚂蚁获得可行解后,仅需要根据所有蚂蚁的信息素变化矩阵,更新所有蚂蚁走过路径上的信息素浓度,如式(11)所示:
其中,τij(t)和τij(t+1)分别为t时刻和t+1时刻虚拟机VMj对于任务Ti的信息素浓度,表示当前蚂蚁Antx的虚拟机VMj对于任务Ti的信息素浓度变化,ρ为信息素浓度的挥发系数,k为蚁群算法中蚂蚁的数量。
步骤S70,以更新后的信息素浓度矩阵作为下一轮迭代的蚁群算法的信息素浓度矩阵,并重复执行步骤S10-步骤S60直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间。
通过局部迭代结合全局迭代,本发明能够更好地利用边缘侧的计算、存储和网络资源,保证了负载的均衡性,实现了计算任务的合理调度、计算资源的高效利用。
如图2所示,为本发明边缘计算任务协同调度方法一种实施例的硬件组成框架示意图,包括边缘服务器、边缘节点和边缘调度器;
边缘服务器:能够为边缘侧提供计算、存储、带宽等资源,用于为边缘计算任务提供计算服务。
边缘节点:能够为边缘侧提供可调度的计算任务,同时提供计算、存储、带宽等资源,可用于为边缘计算任务提供计算服务,但资源相较边缘服务器更少。
边缘调度器:能够根据所有边缘服务器及边缘节点的配置、状态等信息,通过上述的边缘计算任务协同调度方法为边缘计算任务提供调度服务,是实现边缘服务器与边缘节点协同调度的操控者。
本发明第二实施例的边缘计算任务协同调度系统,基于上述的边缘计算任务协同调度方法,该系统包括信息获取及初始化模块、任务与虚拟机对应模块、第一循环模块、局部最优可行解判别模块、第一信息更新模块、第二循环模块、第二信息更新模块、第三循环模块以及输出模块;
所述信息获取及初始化模块,配置为获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
所述任务与虚拟机对应模块,配置为从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,根据轮盘赌法为当前任务选择相应的虚拟机,将选择的虚拟机加入当前蚂蚁的任务调度结列表,更新任务预计完成时间矩阵和选择的虚拟机的CPU利用率;
所述第一循环模块,配置为通过任务与虚拟机对应模块迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
所述局部最优可行解判别模块,配置为判断当前蚂蚁的可行解是否为最优解,若不是,则跳第一信息更新模块;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
所述第一信息更新模块,配置为基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
所述第二循环模块,配置为初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,迭代进行蚁群算法中每一只蚂蚁的各任务与虚拟机的对应,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵;
所述第二信息更新模块,配置为基于蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
所述第三循环模块,配置为以更新后的信息素浓度矩阵作为下一轮的蚁群算法的信息素浓度矩阵,迭代计算直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间;
所述输出模块,配置为输出获取的全局最优可行解及对应的最短的任务最大完成时间。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的边缘计算任务协同调度系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适于由处理器加载并执行以实现上述的边缘计算任务协同调度方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的边缘计算任务协同调度方法。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (11)
1.一种边缘计算任务协同调度方法,其特征在于,该方法包括:
步骤S10,获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
步骤S20,从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,并根据轮盘赌法为当前任务选择相应的虚拟机;
步骤S30,将选择的虚拟机加入当前蚂蚁的任务调度结果列表,更新任务预计完成时间矩阵和更新选择的虚拟机的CPU利用率,并迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
步骤S40,判断当前蚂蚁的可行解是否为最优解,若不是,则跳转步骤S50;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
步骤S50,基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
步骤S60,初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,重复步骤S20-步骤S50,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,并更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
步骤S70,以更新后的信息素浓度矩阵作为下一轮迭代的蚁群算法的信息素浓度矩阵,并重复执行步骤S10-步骤S60直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间。
6.根据权利要求1所述的边缘计算任务协同调度方法,其特征在于,步骤S30中“更新任务预计完成时间矩阵”,其方法为:
C(i+1)j′=C(i+1)j+Cij
其中,C(i+1)j'为当前计算任务Ti选中虚拟机VMj后,后续计算任务在选中虚拟机VMj上的任务预计完成时间,Cij为计算任务Ti在虚拟机VMj上的预计完成时间,C(i+1)j为计算任务Ti+1在虚拟机VMj上的执行时间。
11.一种边缘计算任务协同调度系统,其特征在于,基于权利要求1-10任一项所述的边缘计算任务协同调度方法,该系统包括信息获取及初始化模块、任务与虚拟机对应模块、第一循环模块、局部最优可行解判别模块、第一信息更新模块、第二循环模块、第二信息更新模块、第三循环模块以及输出模块;
所述信息获取及初始化模块,配置为获取边缘计算任务的调度队列,并初始化所述边缘计算任务的预计完成时间矩阵、所有虚拟机的CPU利用率、蚁群算法的信息素浓度矩阵和每只蚂蚁的信息素变化矩阵、任务调度结果列表;
所述任务与虚拟机对应模块,配置为从所述蚁群算法中第一只蚂蚁开始,计算所述边缘计算任务的调度队列中当前任务分别选择各虚拟机的概率,根据轮盘赌法为当前任务选择相应的虚拟机,将选择的虚拟机加入当前蚂蚁的任务调度结列表,更新任务预计完成时间矩阵和选择的虚拟机的CPU利用率;
所述第一循环模块,配置为通过任务与虚拟机对应模块迭代进行下一个任务的计算直至所述边缘计算任务的调度队列中所有任务完成,获得当前蚂蚁的可行解以及可行解的任务最大完成时间;
所述局部最优可行解判别模块,配置为判断当前蚂蚁的可行解是否为最优解,若不是,则跳第一信息更新模块;否则,以当前蚂蚁的可行解作为最优可行解,其对应的任务最大完成时间为最短的任务最大完成时间;
所述第一信息更新模块,配置为基于当前蚂蚁的可行解以及可行解的任务最大完成时间,更新当前蚂蚁的信息素变化矩阵以及更新信息素浓度矩阵中当前蚂蚁经过路径上的信息素浓度;
所述第二循环模块,配置为初始化所述边缘计算任务的预计完成时间矩阵和所有虚拟机的CPU利用率,迭代进行蚁群算法中每一只蚂蚁的各任务与虚拟机的对应,获得蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵;
所述第二信息更新模块,配置为基于蚁群算法中各蚂蚁对应的可行解集合以及信息素变化矩阵,更新信息素浓度矩阵中所有蚂蚁走过路径上的信息素浓度;
所述第三循环模块,配置为以更新后的信息素浓度矩阵作为下一轮的蚁群算法的信息素浓度矩阵,迭代计算直至达到设定的迭代次数,获得全局最优可行解及对应的最短的任务最大完成时间;
所述输出模块,配置为输出获取的全局最优可行解及对应的最短的任务最大完成时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010443683.3A CN111611080B (zh) | 2020-05-22 | 2020-05-22 | 边缘计算任务协同调度方法、系统、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010443683.3A CN111611080B (zh) | 2020-05-22 | 2020-05-22 | 边缘计算任务协同调度方法、系统、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611080A CN111611080A (zh) | 2020-09-01 |
CN111611080B true CN111611080B (zh) | 2023-04-25 |
Family
ID=72200501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010443683.3A Active CN111611080B (zh) | 2020-05-22 | 2020-05-22 | 边缘计算任务协同调度方法、系统、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611080B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398917A (zh) * | 2020-10-29 | 2021-02-23 | 国网信息通信产业集团有限公司北京分公司 | 面向多站融合架构的实时任务调度方法和装置 |
CN112596910B (zh) * | 2020-12-28 | 2024-02-20 | 广东电网有限责任公司电力调度控制中心 | 一种多用户mec系统中的云计算资源调度方法 |
CN112506669B (zh) * | 2021-01-29 | 2021-06-18 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN115118728B (zh) * | 2022-06-21 | 2024-01-19 | 福州大学 | 基于蚁群算法的边缘负载均衡任务调度方法 |
CN114781950B (zh) * | 2022-06-22 | 2022-09-30 | 中国人民解放军32035部队 | 基于蚁群算法的雷达资源调度方法、装置以及电子设备 |
CN115242798B (zh) * | 2022-06-30 | 2023-09-26 | 阿里巴巴(中国)有限公司 | 一种基于边缘云的任务调度方法、电子设备及存储介质 |
CN115499376B (zh) * | 2022-07-29 | 2024-01-02 | 天翼云科技有限公司 | 一种负载均衡方法、系统、电子设备及存储介质 |
CN117785381B (zh) * | 2023-12-19 | 2024-09-27 | 江南大学 | 一种基于多种群蚁群算法的虚拟机部署规划方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106055395A (zh) * | 2016-05-18 | 2016-10-26 | 中南大学 | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 |
CN107133095A (zh) * | 2017-04-07 | 2017-09-05 | 北京科技大学 | 一种云环境下的任务调度方法 |
CN109542619A (zh) * | 2018-11-13 | 2019-03-29 | 河海大学常州校区 | 一种面向云计算中心的高效负载均衡优化调度方法 |
-
2020
- 2020-05-22 CN CN202010443683.3A patent/CN111611080B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106055395A (zh) * | 2016-05-18 | 2016-10-26 | 中南大学 | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 |
CN107133095A (zh) * | 2017-04-07 | 2017-09-05 | 北京科技大学 | 一种云环境下的任务调度方法 |
CN109542619A (zh) * | 2018-11-13 | 2019-03-29 | 河海大学常州校区 | 一种面向云计算中心的高效负载均衡优化调度方法 |
Non-Patent Citations (2)
Title |
---|
周浩 ; 万旺根 ; .边缘计算系统的任务调度策略.电子测量技术.2020,(第09期),全文. * |
花德培 ; 孙彦赞 ; 吴雅婷 ; 王涛 ; .基于蚁群优化算法的移动边缘协作计算.电子测量技术.2019,(第20期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111611080A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111611080B (zh) | 边缘计算任务协同调度方法、系统、装置 | |
Yao et al. | Endocrine-based coevolutionary multi-swarm for multi-objective workflow scheduling in a cloud system | |
Rahman et al. | A dynamic critical path algorithm for scheduling scientific workflow applications on global grids | |
Nayak et al. | Deadline sensitive lease scheduling in cloud computing environment using AHP | |
Tejedor et al. | ClusterSs: a task-based programming model for clusters | |
Pasdar et al. | Hybrid scheduling for scientific workflows on hybrid clouds | |
CN109710372B (zh) | 一种基于猫头鹰搜索算法的计算密集型云工作流调度方法 | |
Strumberger et al. | Dynamic tree growth algorithm for load scheduling in cloud environments | |
Ding et al. | User-oriented cloud resource scheduling with feedback integration | |
Pradhan et al. | Energy aware genetic algorithm for independent task scheduling in heterogeneous multi-cloud environment | |
Nalini et al. | Reinforced ant colony optimization for fault tolerant task allocation in cloud environments | |
Amoretti et al. | Efficient autonomic cloud computing using online discrete event simulation | |
CN117670005A (zh) | 基于蚁群算法的超算互联网多目标工作流优化方法及系统 | |
Patil et al. | Delay Tolerant and Energy Reduced Task Allocation in Internet of Things with Cloud Systems | |
Nazeri et al. | A predictive energy-aware scheduling strategy for scientific workflows in fog computing | |
Vinothina et al. | An approach for workflow scheduling in cloud using aco | |
Attiya et al. | D-choices scheduling: a randomized load balancing algorithm for scheduling in the cloud | |
Ragmani et al. | An intelligent scheduling algorithm for energy efficiency in cloud environment based on artificial bee colony | |
Diaz et al. | Scalable, low complexity, and fast greedy scheduling heuristics for highly heterogeneous distributed computing systems | |
Gondhi et al. | Local search based ant colony optimization for scheduling in cloud computing | |
Vinothina | Scheduling scientific workflow tasks in cloud using swarm intelligence | |
Fan et al. | Associated task scheduling based on dynamic finish time prediction for cloud computing | |
Jain et al. | On-demand, spot, or both: Dynamic resource allocation for executing batch jobs in the cloud | |
Jimenez et al. | Load information sharing policies in communication-intensive parallel applications | |
US7797692B1 (en) | Estimating a dominant resource used by a computer program |
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 |