CN111722925B - 用于动态边缘计算的协同调度方法、系统、装置 - Google Patents

用于动态边缘计算的协同调度方法、系统、装置 Download PDF

Info

Publication number
CN111722925B
CN111722925B CN202010506829.4A CN202010506829A CN111722925B CN 111722925 B CN111722925 B CN 111722925B CN 202010506829 A CN202010506829 A CN 202010506829A CN 111722925 B CN111722925 B CN 111722925B
Authority
CN
China
Prior art keywords
edge
edge node
node
task
nodes
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
Application number
CN202010506829.4A
Other languages
English (en)
Other versions
CN111722925A (zh
Inventor
熊刚
付海军
陈世超
朱凤华
谭思敏
李伟
奚帮文
王飞跃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Cloud Computing Industry Technology Innovation and Incubation Center of CAS
Original Assignee
Institute of Automation of Chinese Academy of Science
Cloud Computing Industry Technology Innovation and Incubation Center of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science, Cloud Computing Industry Technology Innovation and Incubation Center of CAS filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202010506829.4A priority Critical patent/CN111722925B/zh
Publication of CN111722925A publication Critical patent/CN111722925A/zh
Application granted granted Critical
Publication of CN111722925B publication Critical patent/CN111722925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属于边缘计算领域,具体涉及一种用于动态边缘计算的协同调度方法、系统、装置,旨在解决现有大规模动态边缘节点协同调度的问题。本系统方法包括:获取待分配的计算任务队列以及各边缘节点的配置信息,并初始化参数;随机将蚂蚁分布在各边缘节点上;获取当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;根据当前任务分配的节点修改禁忌表,并计算局部信息素浓度;判断当前选取的蚂蚁是否为所有任务分配一个边缘节点;判断所有蚂蚁是否均完成任务分配,并计算全局信息素浓度进行更新;判断当前轮迭代是否达到最大迭代次数,并获取最佳分配方案。本发明解决了大规模动态边缘节点协同调度的问题。

Description

用于动态边缘计算的协同调度方法、系统、装置
技术领域
本发明属于边缘计算领域,具体涉及一种用于动态边缘计算的协同调度方法、系统、装置。
背景技术
随着万物联网发展,云计算直接处理来自移动设备计算任务的模式下通信延时矛盾日渐突出,越来越难以满足高实时性需求,边缘计算应运而生。边缘计算在靠近数据的地方提供计算,这为低延时、隐私安全保护提供新的可能。
在边缘场景下,一方面,边缘节点、移动设备的动态变化给边缘计算的实施增加困难;另一方面,边缘节点计算力有限,仅靠单个边缘节点的服务能力十分有限,但规模数量庞大。因而面向边缘场景,多边缘节点计算协同是充分释放边缘计算力的有效策略,大大提高任务处理能力与服务体验。在边缘协同的研究中,协同调度是重要一环,也是当前研究热点。本发明提出一种用于动态边缘计算的协同调度方法,用以解决动态边缘计算协同调度的问题。
发明内容
为了解决现有技术中的上述问题,即为了解决大规模动态边缘节点协同调度的问题,本发明第一方面,提出了一种用于动态边缘计算的协同调度方法,该方法基于蚁群算法优化,包括:
步骤S100,获取待分配计算任务以及各边缘节点的配置信息;并基于所述配置信息,初始化参数;所述参数包括信息素浓度;
步骤S200,随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置;
步骤S300,计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
步骤S400,根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
步骤S500,判断当前选取的蚂蚁是否为所有任务分配了一个边缘节点,若是,则跳转步骤S600,否则跳转步骤S300;
步骤S600,判断所有蚂蚁是否完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转步骤S700,否则跳转步骤S300;
步骤S700,判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转步骤S200,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
在一些优选的实施方式中,所述配置信息包括各边缘节点的ID、内存大小、存储大小、带宽大小、CPU计算能力;所述边缘节点包括静态边缘节点、动态边缘节点。
在一些优选的实施方式中,所述信息素浓度初始化方法为:
e+f+g+h=1
其中,m、r、s、b表示预设的常数,e、f、g、h表示预设的常数权重因子,NodeMIPS表示边缘节点的CPU计算能力值,Ram表示边缘节点的内存大小、Storage表示边缘节点的存储大小,BW表示边缘节点的带宽值,τij(0)表示初始化时,边缘节点i与边缘节点j路径之间的信息素浓度。
在一些优选的实施方式中,步骤S300中“计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率”,其方法为;
其中,表示蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,τij(t)表示t时刻边缘节点i与边缘节点j路径之间的信息素浓度,α表示预设的信息素浓度因子,ηij(t)表示启发式函数,β表示预设的启发式因子,allowedk表示蚂蚁k允许访问的下一个节点的集合,i、j、k为自然数,表示下标,τik(t)、ηik(t)表示t时刻边缘节点i与allowedk中的边缘节点路径上的信息素浓度、启发时函数值,xij、yij、zij表示边缘节点i与边缘节点j的位置坐标差,vij表示边缘节点i与边缘节点j的移动速度差,n1、n2表示预设的常数。
在一些优选的实施方式中,步骤S400中“计算更新局部信息素浓度”,其方法为:
其中,Δμij(t)表示t时刻蚂蚁选择边缘节点i到边缘节点j路径<i,j>的局部信息素浓度,TaskLength表示分配至第j个边缘节点的任务的长度,NodeMIPSij表示第j个边缘节点的CPU计算能力,UsagePercentageij表示CPU使用率,BWusageij表示带宽使用率,RamUsageij表示内存使用率,u、b、r表示预设的常数。
在一些优选的实施方式中,步骤S600中“计算更新全局信息素浓度”,其方法为:
τij(now)=(1-ρ)τij(old)+Δτij(t)
其中,τij(now)、τij(old)分别更新后、更新前的全局信息素浓度,ρ∈[0,1)表示预设的信息素挥发系数,Δτij(t)表示一次迭代中最优解的蚂蚁的信息素浓度变化量。
在一些优选的实施方式中,步骤S600中“通过预设的目标函数选取最优分配方案”,其方法为:
Best=Min(fitness)
其中,Best表示选取的最优分配方案,TotalTaskLength表示边缘节点分配的任务总量。
本发明的第二方面,提出了一种用于动态边缘计算的协同调度系统,该系统包括初始化模块、随机分布模块、任务分配模块、局部信息素浓度模块、第一判断模块、第二判断模块、第三判断模块;
所述初始化模块,配置为获取待分配的计算任务队列以及各边缘节点的配置信息;并基于所述配置信息,初始化各边缘节点之间的信息素浓度;
所述随机分布模块,配置为随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置;
所述任务分配模块,配置为计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
所述局部信息素浓度模块,配置为根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
所述第一判断模块,配置为判断当前选取的蚂蚁是否为所有任务分配一个边缘节点,若是,则跳转第二判断模块,否则跳转任务分配模块;
所述第二判断模块,配置为判断所有蚂蚁是否均完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转第三判断模块,否则跳转任务分配模块;
所述第三判断模块,配置为判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转分布模块,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序应用由处理器加载并执行以实现上述的用于动态边缘计算的协同调度方法。
本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的用于动态边缘计算的协同调度方法。
本发明的有益效果:
本发明解决了大规模动态边缘节点协同调度的问题。本发明根据面向边缘计算的场景,综合考虑边缘环境特点,如任务大规模、持续性的特点,尤其是边缘节点、移动设备的动态性,根据其实时的位置及移动速度,进行任务的分配,以最小完成时间为优化目标,同时兼顾负载,解决动态性边缘协同调度的问题,满足实时性需求。
同时,通过触发搜索停滞保护机制的条件,即计算各信息素浓度值方差,若超过搜索停滞保护阈值,则可以采用随机策略在允许选择的边缘节点中选择下一个边缘节点,用于尽可能避免陷入局部最优,改善了标准蚁群算法容易陷入局部最优的问题。
附图说明
通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。
图1是本发明一种实施例的用于动态边缘计算的协同调度方法的流程示意图;
图2是本发明一种实施例的用于动态边缘计算的协同调度系统的框架示意图;
图3是本发明一种实施例的用于动态边缘计算的协同调度方法的硬件系统示意图;
图4是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的用于动态边缘计算的协同调度方法,如图1所示,包括以下步骤:
步骤S100,获取待分配计算任务以及各边缘节点的配置信息;并基于所述配置信息,初始化参数;所述参数包括信息素浓度;
步骤S200,随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置;
步骤S300,计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
步骤S400,根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
步骤S500,判断当前选取的蚂蚁是否为所有任务分配了一个边缘节点,若是,则跳转步骤S600,否则跳转步骤S300;
步骤S600,判断所有蚂蚁是否完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转步骤S700,否则跳转步骤S300;
步骤S700,判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转步骤S200,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
为了更清晰地对本发明用于动态边缘计算的协同调度方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。
步骤S100,获取待分配计算任务以及各边缘节点的配置信息;并基于所述配置信息,初始化参数;所述参数包括信息素浓度。
本发明中,用于动态边缘计算的协同调度方法,其原理是针对获取的任务,通过基于优化的蚁群算法协同调度系统获取最优分配处理方案,解决了蚁群算法容易陷入局部最优的问题。其中,本方法对应的硬件系统,如图3所示,包括静态边缘节点、动态边缘节点和边缘设备;
静态边缘节点:位置处于静态,通过网络允许动态边缘节点和边缘设备接入,用于在边缘侧提供计算任务协同调度、计算服务,将来自边缘设备的计算任务通过调度并分发至包括自身在内的边缘节点进行处理;
动态边缘节点:位置处于动态变化,通过网络与静态边缘节点相连接,用于在边缘侧接收静态边缘节点分发的计算任务,提供计算服务;
边缘设备:在边缘侧,通过网络与静态边缘节点相连接,源源不断地产生计算任务,通过调度中心进行任务调度分发,实现协同处理;
其中,动态边缘节点、边缘设备可以为同一设备,根据其当前状态是产生任务、还是处理任务进行区分。
在本实施例中,边缘设备计算任务产生,通过网络将计算任务队列传输至静态边缘节点调度器;调度中心读取传输进来的计算任务队列Task={T1,T2,T3,…,Tn},n为自然数,表示待处理(待分配)任务的数量,计算任务Tn属性包括任务产生的边缘设备唯一识别身份ID,任务长度TaskLength。获取计算任务队列后,静态边缘节点的调度中心,即调度器,获取各边缘节点(静态边缘节点、动态边缘节点)的计算性能配置信息,配置信心包括边缘节点唯一识别身份ID、CPU计算能力NodeMIPS、CPU使用率UsagePercentage,内存Ram、存储大小Storage,网络带宽BW。边缘节点集合表示为Node={Node1,Node2,Node3,…,Nodem},Node表示边缘节点,Node为正整数,表示边缘节点的数量。
由于本发明是基于蚁群算法,因此,基于获取各边缘节点的配置信息后,初始化各边缘节点之间的信息素浓度以及信息素浓度因子,启发式因子,蚂蚁数量,迭代次数,信息素挥发系数,搜索停滞保护阈值;
其中,信息素浓度的初始化的过程,如公式(1)(2)所示:
e+f+g+h=1 (2)
其中,m、r、s、b表示预设的常数,e、f、g、h表示预设的常数权重因子;NodeMIPS表示边缘节点的CPU计算能力;Ram表示边缘节点的内存、Storage表示边缘节点的存储大小,BW表示边缘节点的网络带宽;τij(0)表示初始化时,第i个边缘节点与第j个边缘节点之间的信息素浓度。另外,初始化信息素浓度因子,表示为α;启发式因子,表示为β;蚂蚁数量,表示为m;迭代次数,表示为Gen;信息素挥发系数,表示为ρ;搜索停滞保护阈值,表示为γ。
另外,在其他实施例中,可以通过其他参数对信息素浓度进行初始化,不影响本发明的保护范围。
步骤S200,随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置。
在本实施例中,采用随机方式,将蚂蚁随机分布在边缘节点上,并将将蚂蚁的初始位置所在的边缘节点作为任务队列中第一个任务分配的节点。
步骤S300,计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点。
在本实施例中,基于获取的待分配任务,进行任务分配。根据边缘节点的CPU计算力,带宽,存储,运行内存,动态性即位置、移动速度等参数,计算下一个边缘节点被蚂蚁选取的概率;
其中,动态边缘节点的位置以静态边缘节点为坐标原点建立坐标系(0,0,0),通过定位获取动态边缘节点的位置(xi,yi,zi);移动速度表示为vi
计算当前边缘节点被蚂蚁选取的概率,具体如公式(3)(4)(5)所示:
其中,表示蚂蚁选取各边缘节点的概率,τij(t)表示t时刻第i个边缘节点与第j个边缘节点之间的信息素浓度,α表示预设的信息素浓度因子,ηij(t)表示启发式函数值,β表示预设的启发式因子,allowedk表示蚂蚁k允许访问的下一个节点的集合(允许访问的下一个节点的集合可以根据实际需要进行设定),i、j、k为自然数,表示下标,τik(t)、ηij(t)表示t时刻第i个边缘节点与allowedk中的边缘节点间(即节点路径<i,k>)的信息素浓度、启发时函数值,n1、n2表示预设的常数,xij、yij、zij表示边缘节点i与边缘节点j的位置坐标差,vij表示边缘节点i与边缘节点j的移动速度差的移动速度,距离越远、速度越大,任务选择该节点的偏好减小。
为了避免蚁群算法局部最优的问题,本实施例中加入了搜索停滞保护,通过计算蚂蚁可选取的边缘节点与上一待分配任务分配节点之间的信息素浓度的离散程度对应的值(即离散程度值),即所有可选路径之间的离散那程度,本发明中优选采用方差计算来描述离散程度,在其他实施例中,可以根据实际情况进行选取。具体如下:
计算当前任务所有可选择边缘节点的信息素浓度方差,如式(6)所示:
其中,表示表示蚂蚁当前节点位置到其它所有可选节点路径上信息素浓度的平均值。
若计算的方差超过设定的搜索停滞保护阈值,则触发搜索停滞保护机制,本发明中优选的搜索停滞保护机制(策略):在可允许访问的下一个节点的集合中,即没有分配任务的边缘节点中随机选取一个作为当前任务的分配节点;若没有超过设定的搜索停滞保护阈值,则计算当前边缘节点到其它所有可选边缘节点的概率,通过轮盘赌方法选择一个边缘节点作为当前待分配任务选定的边缘节点。
步骤S400,根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度。
在本实施例中,禁忌表表示为tabuk,即蚂蚁k已经为任务分配过边缘节点的集合。任务分配一个边缘节点,随即更新路径上的局部信息素浓度,如公式(7)(8)所示:
其中,Δμij(t)表示t时刻第i个边缘节点与第j个边缘节点之间的局部信息素浓度,即t时刻蚂蚁选择路径<i,j>,在该路径上的信息素增量,u、b、r表示预设的常数,Loadij表示负载情况,BWusageij表示带宽使用率,RamUsageij内存使用率。
步骤S500,判断当前选取的蚂蚁是否为所有任务分配一个边缘节点,若是,则跳转步骤S600,否则跳转步骤S300。
在本实施例中,迭代执行步骤S300-步骤S500,当前选取的蚂蚁为所有待分配的计算任务分配一个边缘节点进行处理,否则跳转步骤S300,选取下一只蚂蚁进行任务的分配。
步骤S600,判断所有蚂蚁是否均完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转步骤S700,否则跳转步骤S300。
在本实施例中,迭代执行步骤S300-步骤S600,所有蚂蚁为待分配的任务分配边缘节点,根据所有蚂蚁的分配方案,获取最优的分配方案。本发明中,优选通过获取执行时间最短的执行方案,作为获取的最优解,即最优分配方案,如公式(9)(10)所示:
Best=Min(fitness) (10)
其中,TotalTaskLength为边缘节点已经分配的任务总长度,Best表示最短执行时间。
对执行时间最短的执行方案所选取的路径,即边缘节点之间的信息素浓度的进行更新,即全局信息素浓度的更新。其中,计算全局信息素浓度并进行更新的过程,如公式(11)(12)(13)(14)所示:
τij(now)=(1-ρ)τij(old)+Δτij(t) (11)
其中,τij(now)、τij(old)分别表示更新后、更新前的边缘节点i到边缘节点j路径的信息素浓度,即全局信息素浓度,ρ表示预设的信息素挥发系数,Δτij(t)表示一次迭代中最优解的蚂蚁的信息素浓度变化量,表示蚂蚁k在本次循环中选择了路径<i,j>,表示所有选择了路径<i,j>的m只蚂蚁信息素浓度变化量之和,TotalTaskLengthij表示边缘节点已经分配的任务总长度。
步骤S700,判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转步骤S200,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
在本实施例中,为了进一步确保调度效果,进行多轮迭代获取最佳分配方案。即重新进行蚂蚁的随机分布,并获取各蚂蚁对应的分配方案,分别获取的最短执行时间的分配方案,将所有获取方案中的执行时间最小者作为本方法选取出的最佳调度方案。
按照最佳调度方案,调度中心将计算任务分发对应的边缘节点计算处理;计算完成后,将结果返回至调度中心,调度中心再返回至任务产生设备。
本发明第二实施例的一种用于动态边缘计算的协同调度系统,如图2所示,包括:初始化模块100、随机分布模块200、任务分配模块300、局部信息素浓度模块400、第一判断模块500、第二判断模块600、第三判断模块700;
所述初始化模块100,配置为获取待分配的计算任务队列以及各边缘节点的配置信息;并基于所述配置信息,初始化各边缘节点之间的信息素浓度;
所述随机分布模块200,配置为随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置;
所述任务分配模块300,配置为计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
所述局部信息素浓度模块400,配置为根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
所述第一判断模块500,配置为判断当前选取的蚂蚁是否为所有任务分配一个边缘节点,若是,则跳转第二判断模块600,否则跳转任务分配模块300;
所述第二判断模块600,配置为判断所有蚂蚁是否均完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转第三判断模块700,否则跳转任务分配模块300;
所述第三判断模块700,配置为判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转分布模块200,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的用于动态边缘计算的协同调度系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的用于动态边缘计算的协同调度方法。
本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适于由处理器加载并执行以实现上述的用于动态边缘计算的协同调度方法。
所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实例中的对应过程,在此不再赘述。
下面参考图4,其示出了适于用来实现本申请方法、系统、装置实施例的服务器的计算机系统的结构示意图。图4示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统包括中央处理单元(CPU,Central Processing Unit)401,其可以根据存储在只读存储器(ROM,Read Only Memory)402中的程序或者从存储部分408加载到随机访问存储器(RAM,Random Access Memory)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O,Input/Output)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN(局域网,Local AreaNetwork)卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

Claims (10)

1.一种用于动态边缘计算的协同调度方法,其特征在于,该方法基于蚁群算法优化,包括以下步骤:
步骤S100,获取待分配计算任务以及各边缘节点的配置信息;并基于所述配置信息,初始化参数;所述参数包括信息素浓度;
步骤S200,将蚂蚁随机分布在各边缘节点上,作为蚂蚁初始位置;
步骤S300,计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
其中,所述离散程度值即所有可选路径之间的离散程度,通过方差计算,具体为:
其中,表示表示蚂蚁当前节点位置到其它所有可选节点路径上信息素浓度的平均值,τik(t)表示t时刻第i个边缘节点与allowedk中的边缘节点间的信息素浓度,allowedk表示蚂蚁k允许访问的下一个节点的集合,k为自然数;
所述预设的搜索停滞保护策略为:在可允许访问的下一个节点的集合中随机选取一个作为当前任务的分配节点;即当前待分配任务所分配的边缘节点;
步骤S400,根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
步骤S500,判断当前选取的蚂蚁是否为所有任务分配了一个边缘节点,若是,则跳转步骤S600,否则跳转步骤S300;
步骤S600,判断所有蚂蚁是否完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转步骤S700,否则跳转步骤S300;
步骤S700,判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转步骤S200,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
2.根据权利要求1所述的用于动态边缘计算的协同调度方法,其特征在于,所述配置信息包括各边缘节点的ID、内存大小、存储大小、带宽大小、CPU计算能力;所述边缘节点包括静态边缘节点、动态边缘节点。
3.根据权利要求2所述的用于动态边缘计算的协同调度方法,其特征在于,所述信息素浓度初始化方法为:
e+f+g+h=1
其中,m、r、s、b表示预设的常数,e、f、g、h表示预设的常数权重因子,NodeMIPS表示边缘节点的CPU计算能力值,Ram表示边缘节点的内存大小,Storage表示边缘节点的存储大小,BW表示边缘节点的带宽值,τij(0)表示初始化时,边缘节点i与边缘节点j路径之间的信息素浓度。
4.根据权利要求3所述的用于动态边缘计算的协同调度方法,其特征在于,步骤S300中“计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率”,其方法为:
其中,表示蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,τij(t)表示t时刻边缘节点i与边缘节点j路径之间的信息素浓度,α表示预设的信息素浓度因子,ηij(t)表示启发式函数,β表示预设的启发式因子,allowedk表示蚂蚁k允许访问的下一个节点的集合,i、j、k为自然数,表示下标,τik(t)、ηik(t)表示t时刻边缘节点i与allowedk中的边缘节点路径上的信息素浓度、启发时函数值,xij、yij、zij表示边缘节点i与边缘节点j的位置坐标差,vij表示边缘节点i与边缘节点j的移动速度差,n1、n2表示预设的常数。
5.根据权利要求4所述的用于动态边缘计算的协同调度方法,其特征在于,步骤S400中“计算更新局部信息素浓度”,其方法为:
其中,Δμij(t)表示t时刻蚂蚁选择边缘节点i到边缘节点j路径<i,j>的局部信息素浓度,TaskLength表示分配至第j个边缘节点的任务的长度,NodeMIPSij表示第j个边缘节点的CPU计算能力,UsagePercentageij表示CPU使用率,BWusageij表示带宽使用率,RamUsageij表示内存使用率,u、b、r表示预设的常数。
6.根据权利要求5所述的用于动态边缘计算的协同调度方法,其特征在于,步骤S600中“计算更新全局信息素浓度”,其方法为:
τij(now)=(1-ρ)τij(old)+Δτij(t)
其中,τij(now)、τij(old)分别更新后、更新前边缘节点i到边缘节点j路径的全局信息素浓度,ρ∈[0,1)表示预设的信息素挥发系数,Δτij(t)表示一次迭代中最优解的蚂蚁的信息素浓度变化量。
7.根据权利要求6所述的用于动态边缘计算的协同调度方法,其特征在于,步骤S600中“通过预设的目标函数选取最优分配方案”,其方法为:
Best=Min(fitness)
其中,Best表示选取的最优分配方案,TotalTaskLength表示边缘节点分配的任务总量。
8.一种用于动态边缘计算的协同调度系统,其特征在于,该系统包括:初始化模块、随机分布模块、任务分配模块、局部信息素浓度模块、第一判断模块、第二判断模块、第三判断模块;
所述初始化模块,配置为获取待分配的计算任务队列以及各边缘节点的配置信息;并基于所述配置信息,初始化各边缘节点之间的信息素浓度;
所述随机分布模块,配置为随机将蚂蚁分布在各边缘节点上,作为蚂蚁初始位置;
所述任务分配模块,配置为计算蚂蚁当前所在边缘节点到所有可选下一边缘节点路径上信息素浓度的离散程度值,若该值大于预设的搜索停滞保护阈值,则采用预设的搜索停滞保护策略为当前待分配任务分配下一边缘节点,并将蚂蚁移动至该节点,否则计算蚂蚁当前所在边缘节点到所有可选下一边缘节点的概率,并采用轮盘赌选择下一边缘节点作为当前待分配任务所分配的边缘节点,且将蚂蚁移动至该节点;
其中,所述离散程度值即所有可选路径之间的离散程度,通过方差计算,具体为:
其中,表示表示蚂蚁当前节点位置到其它所有可选节点路径上信息素浓度的平均值,τik(t)表示t时刻第i个边缘节点与allowedk中的边缘节点间的信息素浓度,allowedk表示蚂蚁k允许访问的下一个节点的集合,k为自然数;
所述预设的搜索停滞保护策略为:在可允许访问的下一个节点的集合中随机选取一个作为当前任务的分配节点;即当前待分配任务所分配的边缘节点;
所述局部信息素浓度模块,配置为根据当前待分配任务分配的边缘节点修改禁忌表,并计算更新局部信息素浓度;
所述第一判断模块,配置为判断当前选取的蚂蚁是否为所有任务分配一个边缘节点,若是,则跳转第二判断模块,否则跳转任务分配模块;
所述第二判断模块,配置为判断所有蚂蚁是否均完成任务分配,若是,则基于各蚂蚁对应的任务分配方案,通过预设的目标函数选取最优分配方案,并计算更新全局信息素浓度,更新后,跳转第三判断模块,否则跳转任务分配模块;
所述第三判断模块,配置为判断当前轮迭代是否达到预设的最大迭代次数,若否,则跳转分布模块,否则基于每一轮迭代中蚂蚁选取的最优分配方案,通过所述目标函数得到最佳分配方案,并基于该方案进行任务调度。
9.一种存储装置,其中存储有多条程序,其特征在于,所述程序应用由处理器加载并执行以实现权利要求1-7任一项所述的用于动态边缘计算的协同调度方法。
10.一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;其特征在于,所述程序适用于由处理器加载并执行以实现权利要求1-7任一项所述的用于动态边缘计算的协同调度方法。
CN202010506829.4A 2020-06-05 2020-06-05 用于动态边缘计算的协同调度方法、系统、装置 Active CN111722925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010506829.4A CN111722925B (zh) 2020-06-05 2020-06-05 用于动态边缘计算的协同调度方法、系统、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010506829.4A CN111722925B (zh) 2020-06-05 2020-06-05 用于动态边缘计算的协同调度方法、系统、装置

Publications (2)

Publication Number Publication Date
CN111722925A CN111722925A (zh) 2020-09-29
CN111722925B true CN111722925B (zh) 2024-03-15

Family

ID=72566071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010506829.4A Active CN111722925B (zh) 2020-06-05 2020-06-05 用于动态边缘计算的协同调度方法、系统、装置

Country Status (1)

Country Link
CN (1) CN111722925B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612854B (zh) * 2021-08-16 2023-07-25 中国联合网络通信集团有限公司 基于区块链的通信方法、服务器和终端

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104732091A (zh) * 2015-03-25 2015-06-24 武汉大学 基于自然选择蚁群算法的元胞自动机河床演变预测方法
KR20160104909A (ko) * 2015-02-27 2016-09-06 고려대학교 산학협력단 개미 알고리즘을 이용한 물류배송용 배차 스케줄링 방법 및 시스템
CN108460485A (zh) * 2018-03-05 2018-08-28 重庆邮电大学 一种基于改进蚁群算法的旅行商问题求解方法
CN108600103A (zh) * 2018-04-18 2018-09-28 江苏物联网研究发展中心 面向多层级网络的多QoS路由约束的蚁群算法
CN109214498A (zh) * 2018-07-10 2019-01-15 昆明理工大学 基于搜索集中度和动态信息素更新的蚁群算法优化方法
CN109282815A (zh) * 2018-09-13 2019-01-29 天津西青区瑞博生物科技有限公司 一种动态环境下基于蚁群算法的移动机器人路径规划方法
CN109345091A (zh) * 2018-09-17 2019-02-15 安吉汽车物流股份有限公司 基于蚁群算法的整车物流调度方法及装置、存储介质、终端
CN109542619A (zh) * 2018-11-13 2019-03-29 河海大学常州校区 一种面向云计算中心的高效负载均衡优化调度方法
CN110705742A (zh) * 2019-08-21 2020-01-17 浙江工业大学 一种基于改进蚁群算法的物流配送方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160104909A (ko) * 2015-02-27 2016-09-06 고려대학교 산학협력단 개미 알고리즘을 이용한 물류배송용 배차 스케줄링 방법 및 시스템
CN104732091A (zh) * 2015-03-25 2015-06-24 武汉大学 基于自然选择蚁群算法的元胞自动机河床演变预测方法
CN108460485A (zh) * 2018-03-05 2018-08-28 重庆邮电大学 一种基于改进蚁群算法的旅行商问题求解方法
CN108600103A (zh) * 2018-04-18 2018-09-28 江苏物联网研究发展中心 面向多层级网络的多QoS路由约束的蚁群算法
CN109214498A (zh) * 2018-07-10 2019-01-15 昆明理工大学 基于搜索集中度和动态信息素更新的蚁群算法优化方法
CN109282815A (zh) * 2018-09-13 2019-01-29 天津西青区瑞博生物科技有限公司 一种动态环境下基于蚁群算法的移动机器人路径规划方法
CN109345091A (zh) * 2018-09-17 2019-02-15 安吉汽车物流股份有限公司 基于蚁群算法的整车物流调度方法及装置、存储介质、终端
CN109542619A (zh) * 2018-11-13 2019-03-29 河海大学常州校区 一种面向云计算中心的高效负载均衡优化调度方法
CN110705742A (zh) * 2019-08-21 2020-01-17 浙江工业大学 一种基于改进蚁群算法的物流配送方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于初始信息素和二次挥发的改进蚁群算法;何亮亮;《西安工程大学学报》;全文 *
基于复杂环境非均匀建模的蚁群路径规划;卜新苹;《机器人》;全文 *
自适应蚁群算法的移动机器人路径规划;封声飞;《计算机工程与应用》;全文 *

Also Published As

Publication number Publication date
CN111722925A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
Chen et al. Efficient task scheduling for budget constrained parallel applications on heterogeneous cloud computing systems
Zuo et al. A multi-objective hybrid cloud resource scheduling method based on deadline and cost constraints
Mateos et al. An ACO-inspired algorithm for minimizing weighted flowtime in cloud-based parameter sweep experiments
Jayanetti et al. Deep reinforcement learning for energy and time optimized scheduling of precedence-constrained tasks in edge–cloud computing environments
Kaur et al. Deep‐Q learning‐based heterogeneous earliest finish time scheduling algorithm for scientific workflows in cloud
Mousavi et al. Dynamic resource allocation in cloud computing
Mechalikh et al. PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments
CN103631657A (zh) 一种基于MapReduce的任务调度算法
Pacini et al. Dynamic scheduling based on particle swarm optimization for cloud-based scientific experiments
CN113037877A (zh) 云边端架构下时空数据及资源调度的优化方法
Bousselmi et al. QoS-aware scheduling of workflows in cloud computing environments
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
Saha et al. A novel scheduling algorithm for cloud computing environment
CN115794341A (zh) 基于人工智能的任务调度方法、装置、设备及存储介质
Li et al. Improved swarm search algorithm for scheduling budget-constrained workflows in the cloud
CN111722925B (zh) 用于动态边缘计算的协同调度方法、系统、装置
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
Bilgaiyan et al. Study of task scheduling in cloud computing environment using soft computing algorithms
CN106802822A (zh) 一种基于飞蛾算法的云数据中心认知资源调度方法
Asghari et al. Bi-objective cloud resource management for dependent tasks using Q-learning and NSGA-3
Oliveira et al. Optimizing query prices for data-as-a-service
Zhao et al. SLA-aware and deadline constrained profit optimization for cloud resource management in big data analytics-as-a-service platforms
Ghebleh et al. A multi-criteria method for resource discovery in distributed systems using deductive fuzzy system
Sreenu et al. FGMTS: fractional grey wolf optimizer for multi-objective task scheduling strategy in cloud computing
Vondra et al. Maximizing utilization in private iaas clouds with heterogenous load through time series forecasting

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