CN114371925A - 一种保障边云负载比的边云协同多任务调度方法和系统 - Google Patents
一种保障边云负载比的边云协同多任务调度方法和系统 Download PDFInfo
- Publication number
- CN114371925A CN114371925A CN202210036283.XA CN202210036283A CN114371925A CN 114371925 A CN114371925 A CN 114371925A CN 202210036283 A CN202210036283 A CN 202210036283A CN 114371925 A CN114371925 A CN 114371925A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- node
- score
- ant
- 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.)
- Pending
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/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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- G06F9/505—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 considering the load
-
- 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]
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
本发明提供一种保障边云负载比的边云协同多任务调度方法和系统,所述方法的步骤包括:基于各节点的cpu资源剩余可用量和内存资源剩余可用量、各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵;初始化信息素矩阵;获取基于每个任务的所有元素值,计算每个任务的随机因子;建立调度策略分界线,使蚂蚁采用信息素浓度调度策略或随机调度策略;获取每个蚂蚁的调度策略,获取每个蚂蚁的调度方案;计算边云负载比,计算调度方案的目标得分;获取每个任务的随机因子的大小,若均大于预设的第一阈值,则将目标得分最大的蚂蚁的调度方案作为最优策略;若存在小于等于预设的第一阈值,更新所述信息素矩阵。
Description
技术领域
本发明涉及边缘计算技术领域,尤其涉及一种保障边云负载比的边云协同多任务调度方法和系统。
背景技术
在面对海量用户设备的连接、爆炸式增长的数据流量及用户对服务质量越来越高的需求情况下,越来越多的企业开始关注边缘计算。边缘计算模型的兴起并不代表云计算模型的没落,两者并不是二选一的状态,边缘计算实际上可以看作是对集中式云计算的补充,为用户提供更好的服务质量。中心云对比边缘云能存储更多的数据,方便全局查询对比与分析。边缘计算能更好地实现实时数据的分析和智能化处理。两者各有优势,是相辅相成、相互结合的关系,二者的结合可以减少延迟、提高可扩展性、增加对信息的访问量。Kubernetes(常简称为k8s)是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。使用kubernetes管理边云协同集群中的各个节点,便于监视云端与边缘计算节点的实时状态,调度执行计算任务的pod到具体的云节点或边缘节点。Kubernetes的调度器是kubernetes众多组件的一部分,用于进行集群中的容器调度,调度器每次从所有待调度的容器中取出一个容器,依次执行调度算法中配置的过滤函数与打分函数,为可以调度的各个节点进行打分,把排名第一的节点作为容器的部署节点。
kubernetes内置调度策略的比较简单,每一次调度只从待调度的所有容器中选取一个容器进行调度,因此只是实现了对单一任务的调度,无法对多个任务的调度进行全局优化,调度结果的边云负载比不可控。目前主流的调度平台如SchedulerX与ElasticJob主要关注的是调度的实时性和可靠性,缺少对边云负载比的考虑。kubernetes中内置的调度策略所面向的调度对象是单一的任务,即使是一系列任务同时到来,也是逐个任务进行筛选、打分与调度,这样所能达到的是局部最优,从全局的角度来看效果并不理想,现有的各种调度策略中针对大量任务到来时进行全局优化的也比较少。
发明内容
鉴于此,本发明实施例提供了一种保障边云负载比的边云协同多任务调度方法,以消除或改善现有技术中存在的一个或更多个缺陷。
本发明的一个方面提供了一种保障边云负载比的边云协同多任务调度方法,所述方法的步骤包括:
基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵;
根据所述得分矩阵初始化信息素矩阵;
从所述信息素矩阵中获取基于每个任务的所有元素值,基于所述元素值计算每个任务的随机因子;
基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略;
获取每个蚂蚁对于每个任务的调度策略,根据每个蚂蚁对于每个任务的调度策略获取每个蚂蚁对于所有任务的调度方案;
基于所述调度方案计算边云负载比,基于所述边云负载比计算所述调度方案的目标得分;
获取当前所有每个任务的随机因子的大小,若每个任务的随机因子的大小均大于预设的第一阈值,则对比每个蚂蚁的目标得分,将目标得分最大的蚂蚁的调度方案作为最优策略;
获取当前所有每个任务的随机因子的大小,若存在任一任务的随机因子的大小小于等于预设的第一阈值,则根据各节点的cpu资源剩余可用量和内存资源剩余可用量计算信息素浓度增加比例,基于信息素浓度增加比例更新所述信息素矩阵。
本发明的保障边云负载比的边云协同多任务调度方法,首先本申请的方案能够同时完成多任务同时调度,进一步地,边云协同任务调度中,如果边缘与云端的任务负载均衡度较差,可能导致边缘或云端负载压力较大,影响集群中任务程序运行的性能,增加各个节点之间的通信延迟,集群整体的容灾性也会由于任务的聚集而受到影响。目前主流的调度平台主要关注的是调度的实时性和可靠性,缺少对边云负载比的考虑。本发明专利中将边云负载比作为参数加入到目标函数中,直接影响调度结果优劣的评判,可以保障调度结果的边云负载比。
在本发明的一些实施方式中,基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵,根据如下公式:
LScore[j]=cpuScore[j]+memScore[j];
Bscore[j]=10-|cpuScore[j]–memScore[j]|;
CPUUsable[j]表示节点j的cpu资源剩余可用量、e表示1-n个节点中的任一个、CPUUsable[e]表示节点e的cpu资源剩余可用量、cpuScore[j]表示节点j的cpu评分、memScore[j]表示节点j的内存评分、MEMUsable[j]表示节点j的内存资源剩余可用量、MEMUsable[e]表示节点e的内存资源剩余可用量、Bscore[j]表示节点j的内存均衡评分、LScore[j]表示节点j的综合资源评分、score[i][j]表示将任务i调度到节点j的评分、CPUNeed[i]为任务i的cpu资源请求量、MEMNeed[i]为任务i的内存资源请求量。
在本发明的一些实施方式中,根据所述得分矩阵初始化信息素矩阵的步骤为:将得分矩阵所述得分矩阵中各任务调度到各节点的评分等效于信息素矩阵中的元素,将得分矩阵中的评分参数作为信息素矩阵中的元素值。
在本发明的一些实施方式中,根据如下公式基于所述元素值计算每个任务的随机因子:
randomFactor[i]表示任务i的随机因子、maxPheromone[i]表示信息素矩阵中任务i对应的行的最大元素值对应的下标,若在任务i对应的行pheromoneMatrix[i][1],pheromoneMatrix[i][2],…,pheromoneMatrix[i][n]中最大的元素值为pheromoneMatrix[i][j],则maxPheromone[i]=j;pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值、pheromoneMatrix[i][e]表示任务i和节点e在对应的信息素矩阵中对应的元素值、e表示1-n个节点中的任一个。
在本发明的一些实施方式中,基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略的步骤包括:
将所有蚂蚁顺序进行编号,基于随机因子计算分界线蚂蚁编号,以分界线蚂蚁编号作为调度策略分界线;
使所有蚂蚁中小于等于分界线蚂蚁编号的蚂蚁采用信息素浓度调度策略,大于分界线蚂蚁编号的蚂蚁采用随机调度策略。
在本发明的一些实施方式中,将所有蚂蚁顺序进行编号的步骤包括:
根据如下公式基于节点总数和任务总数计算蚂蚁总数:
antNum表示蚂蚁总数、n表示节点总数、m表示任务总数、[]表示取整。
在本发明的一些实施方式中,基于随机因子计算分界线蚂蚁编号,根据如下公式:
antp[i]=randomFactor[i]*antNum+1;
antp[i]表示任务i的分界线蚂蚁编号、antNum表示蚂蚁总数、randomFactor[i]表示任务i的随机因子。
在本发明的一些实施方式中,根据如下公式基于所述边云负载比计算所述调度方案的目标得分:
goal[k]表示蚂蚁k的调度方案的目标得分、m表示任务总数、任务i为m个任务中的任一个,intermediate[k][i]表示蚂蚁k将任务i调度到的节点,若[intermediate[k][i]=j,则score[i][intermediate[k][i]]=score[i][j]、score[i][j]表示将任务i调度到节点j的评分、f(loadRatio)表示边云负载比的函数、loadRatio表示边云负载比。
在本发明的一些实施方式中,边云负载比的函数根据如下公式中的任一个计算:
[lr1,lr2]表示控制区间、lr1表示控制区间的下限值、lr2表示控制区间的上限值、loadRatio表示边云负载比。
在本发明的一些实施方式中,基于信息素浓度增加比例更新所述信息素矩阵的步骤为:
将pheromoneMatrix[i][intermediate[antMax][i]]的值乘以信息素浓度增加比例,完成对i任务的信息素更新,antMax为调度方案的目标得分最高的蚂蚁的编号、intermediate[antMax][i]表示蚂蚁antMax为任务i分配的节点、若intermediate[antMax][i]为j,则pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值;
对所有任务进行信息素更新,完成更新所述信息素矩阵。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1为本发明保障边云负载比的边云协同多任务调度方法一种实施方式的示意图;
图2为调度架构示意图;
图3为任务调度模块的示意图;
图4为本发明保障边云负载比的边云协同多任务调度方法另一种实施方式的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
容器化:容器化是指将软件代码和所需的所有组件(例如库、框架和其他依赖项)打包在一起,让它们隔离在自己的“容器”中。
集群:集群是一组用于运行容器化应用的计算机节点。
容器调度:通过一定的算法,使容器化的程序在集群中合适的节点上启动起来。
所提出保障边云负载比的边云协同多任务调度方法主要思路介绍如下。首先从所有移动设备、所有容器资源中获取到需要调度的任务的基本信息与用于调度的集群中各边云计算节点的基本信息,计算需要参与调度的蚁群中蚂蚁的数量,根据任务请求资源与节点剩余资源情况进行信息素的初始化,由信息素聚集情况计算出初始随机因子,后续每轮迭代中随机因子会随着信息素浓度更新而变化。每次迭代中每只蚂蚁都单独给出自己的调度方案,一轮迭代完成后,计算该轮迭代中各个蚂蚁给出调度结果的边云负载比,由边云负载比计算各个蚂蚁调度结果的目标函数值,边云负载比越理想,则目标函数值越大,调度效果越好,根据目标函数值评选出给出了最佳调度结果的蚂蚁,根据其调度结果进行信息素与随机因子的更新,随机因子会随着信息素浓度的聚集变化,信息素越聚集,调度的随机性越低。迭代结束后输出最后一轮迭代中最佳的调度结果,作为整个算法最终的调度结果,按照最终结果将各个任务部署到对应边或云节点。
如图1、4所示,本发明的一个方面提供了一种保障边云负载比的边云协同多任务调度方法,所述方法的步骤包括:
步骤S100、基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵;
步骤S200、根据所述得分矩阵初始化信息素矩阵;
在本发明的一些实施方式中,将得分矩阵作为初始化的信息素矩阵,得分矩阵中的得分作为信息素矩阵中的各个元素值,所述信息素矩阵中的每一行为某个任务对应各个节点的元素值。
步骤S300、从所述信息素矩阵中获取基于每个任务的所有元素值,基于所述元素值计算每个任务的随机因子;
在本发明的一些实施方式中,所述随机因子的大小基于所述元素值计算,在本方案的迭代过程中,各个元素值都可能会变化,相比于传统的蚁群算法固定的随机因子,更具有灵活性。
步骤S400、基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略;
在本发明的一些实施方式中,若采用信息素浓度调度策略,则将任务i调度到对应i的行中最大的元素值对应的节点;若采用随机调度策略,则将任务i调度到对应i的行中任一个不为0的元素值对应的节点。
信息素浓度调度采用的调度策略是将编号为i的任务调度到最大的元素值的节点,即将每个任务调度到其对应行信息素浓度最大的节点;随机调度采用的调度策略是为编号为i的任务等概率地选取信息素矩阵中不为0的元素值,假定选取的元素值为矩阵中坐标为(i,j)的元素,则将任务i调度到节点j上。
步骤S500、获取每个蚂蚁对于每个任务的调度策略,根据每个蚂蚁对于每个任务的调度策略获取每个蚂蚁对于所有任务的调度方案;
在本发明的一些实施方式中,同一蚂蚁对于不同任务可能采取不同的调度策略,不同蚂蚁对于同一任务可能采用相同的调度策略。
步骤S600、基于所述调度方案计算边云负载比,基于所述边云负载比计算所述调度方案的目标得分;
在本发明的一些实施方式中,所述节点包括边缘节点和云节点,所述调度方案为某一蚂蚁在本轮迭代的调度方案,包括该蚂蚁对全部任务的调度结果,如将i任务调度到j节点,所述边云负载比为调度到边缘节点的任务数与调度到云节点的任务数的比值。
步骤S710、获取当前所有每个任务的随机因子的大小,若每个任务的随机因子的大小均大于预设的第一阈值,则对比每个蚂蚁的目标得分,将目标得分最大的蚂蚁的调度方案作为最优策略;
步骤S720、获取当前所有每个任务的随机因子的大小,若存在任一任务的随机因子的大小小于等于预设的第一阈值,则根据各节点的cpu资源剩余可用量和内存资源剩余可用量计算信息素浓度增加比例,基于信息素浓度增加比例更新所述信息素矩阵。
在本发明的一些实施方式中,获取当前本次迭代所有每个任务的随机因子的大小,若均大于预设的第一阈值,则跳出迭代,若存在任一任务的随机因子的大小小于等于预设的第一阈值,则继续迭代,更新所述信息素矩阵。
所述第一阈值可以为0.85、0.9或0.95等,优选为0.9;
图4中迭代收敛值即为所述第一阈值。
本发明的保障边云负载比的边云协同多任务调度方法,首先本申请的方案能够同时完成多任务同时调度,进一步地,边云协同任务调度中,如果边缘与云端的任务负载均衡度较差,可能导致边缘或云端负载压力较大,影响集群中任务程序运行的性能,增加各个节点之间的通信延迟,集群整体的容灾性也会由于任务的聚集而受到影响。目前主流的调度平台主要关注的是调度的实时性和可靠性,缺少对边云负载比的考虑。本发明专利中将边云负载比作为参数加入到目标函数中,直接影响调度结果优劣的评判,可以保障调度结果的边云负载比。
在本发明的一些实施方式中,基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵,根据如下公式:
LScore[j]=cpuScore[j]+memScore[j];
Bscore[j]=10-|cpuScore[j]–memScore[j]|;
CPUUsable[j]表示节点j的cpu资源剩余可用量、e表示1-n个节点中的任一个、CPUUsable[e]表示节点e的cpu资源剩余可用量、cpuScore[j]表示节点j的cpu评分、memScore[j]表示节点j的内存评分、MEMUsable[j]表示节点j的内存资源剩余可用量、MEMUsable[e]表示节点e的内存资源剩余可用量、Bscore[j]表示节点j的内存均衡评分、LScore[j]表示节点j的综合资源评分、score[i][j]表示将任务i调度到节点j的评分、CPUNeed[i]为任务i的cpu资源请求量、MEMNeed[i]为任务i的内存资源请求量。
采用上述方案,传统蚁群算法进行信息素矩阵初始化时,由于蚁群对环境情况是完全未知的,所以一般将矩阵中的元素全部初始化为1。在本专利讨论的多任务调度中,各节点的资源情况和各个任务需求的资源量都已知,因此在初始化信息素矩阵时,根据节点与任务的具体情况对矩阵中各个元素单独赋值,一方面能够使调度结果更合理,另一方面可以加快迭代的收敛速度。
根据边缘云容器资源信息以及任务需求信息,构建符合边云资源协同需求的信息素矩阵模型。传统的蚁群算法中,初始条件下对环境情况无法感知,因此将环境中的各个点的信息素初始为同一值,在迭代的过程中通过对环境的感知来同步更新信息素浓度。本发明专利中将集群资源与任务情况作为算法输入,利用集群可用资源情况与任务请求的资源情况进行蚁群算法中初始信息素浓度的计算,以此来优化蚁群算法的执行过程,加快算法迭代的收敛速度。
另外本申请的Bscore[j]考虑了节点j剩余的CPU与内存资源均衡情况,防止CPU与内存某一方的过载影响另一方。
在本发明的一些实施方式中,根据所述得分矩阵初始化信息素矩阵的步骤为:将得分矩阵所述得分矩阵中各任务调度到各节点的评分等效于信息素矩阵中的元素,将得分矩阵中的评分参数作为信息素矩阵中的元素值。
在本发明的一些实施方式中,根据如下公式基于所述元素值计算每个任务的随机因子:
randomFactor[i]表示任务i的随机因子、[maxPheromone[i]表示信息素矩阵中任务i对应的行的最大元素值对应的下标,若在任务i对应的行pheromoneMatrix[i][1],pheromoneMatrix[i][2],…,pheromoneMatrix[i][n]中最大的元素值为pheromoneMatrix[i][j],则maxPheromone[i]=j;pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值、pheromoneMatrix[i][e]表示任务i和节点e在对应的信息素矩阵中对应的元素值、e表示1-n个节点中的任一个。
采用上述方案,randomFactor[i]信息素矩阵中第i行的最大元素值与该行所有元素值之和的比值;
蚁群算法的执行过程中,为了防止调度的结果收敛于局部最优解,需要在调度的过程中引入随机因子,让调度的过程产生随机性,普通的蚁群算法中,通常将随机因子预设为一个固定的值。在本专利解决的问题中,将随机因子设定为固定的值并不合适:一方面,调度的前期需要较大的随机性,以此在所有的可能解中找到接近最优解的调度;另一方面,调度的后期需要较小的随机性,防止结果收敛较长,导致调度时效性底下。因此在本发明专利中,通过迭代中每一轮的信息素情况来动态确定随机因子,以此达到调度前期随机性强,调度后期随机性弱的特点。
本方案提出动态随机因子,改进蚁群算法。传统蚁群算法为了防止执行结果收敛于局部最优解,会引入随机因子来增强算法执行中间结果的随机性,从而避免陷入局部最优解。然而传统蚁群算法一般会将随机因子设定为一个固定的经验值,这样的随机因子确定方法如果应用到本发明专利所解决问题中,会导致两个问题:一是算法执行初期随机性不足,无法广泛触达解空间的各个区域,算法执行后期;二是算法执行后期随机性过大,使得调度的结果收敛过慢。
在本发明的一些实施方式中,基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略的步骤包括:
将所有蚂蚁顺序进行编号,基于随机因子计算分界线蚂蚁编号,以分界线蚂蚁编号作为调度策略分界线;
在本发明的一些实施方式中,若共有z只蚂蚁,则可以编号为1、2、...、z。
使所有蚂蚁中小于等于分界线蚂蚁编号的蚂蚁采用信息素浓度调度策略,大于分界线蚂蚁编号的蚂蚁采用随机调度策略。
若对于任务i的分界线蚂蚁编号为δ,则编号为1,2,…,δ的蚂蚁对任务i采用信息素浓度调度策略,而编号为δ+1,…,z的蚂蚁对任务i采用随机调度策略。
调度前期,信息素矩阵中每一行最大元素值与本行所有元素值之和的比值较小,所以调度的随机性较小,进行到调度后期,每一行最大的元素通过迭代过程中的放大,与该行其他元素的差值逐渐增加,该比值也逐渐增大,因此调度的随机性逐渐降低。
在本发明的一些实施方式中,将所有蚂蚁顺序进行编号的步骤包括:
根据如下公式基于节点总数和任务总数计算蚂蚁总数:
antNum表示蚂蚁总数、n表示节点总数、m表示任务总数、[]表示取整。
采用上述方案,根据节点总数和任务总数计算蚂蚁总数,避免蚂蚁过多或过少,提高资源利用率。
在本发明的一些实施方式中,基于随机因子计算分界线蚂蚁编号,根据如下公式:
antp[i]=randomFactor[i]*antNum+1;
antp[i]表示任务i的分界线蚂蚁编号、antNum表示蚂蚁总数、randomFactor[i]表示任务i的随机因子。
采用上述方案,随着迭代次数的增加randomFactor[i]的值变大,antp[i]变大,则采用随机调度策略的蚂蚁逐渐减少,便于找到最优解;
从随机因子的计算公式可以看出,随机因子的取值在(0,1)的区间中,随机因子越小,调度的随机性越高,randomFactor[i]的实际意义为对任务i进行调度的过程中采用信息素浓度策略调度,而不采用随机策略调度的蚂蚁所占的比例,精确地说,在对任务i进行调度的过程中,编号为1,2,…,randomFactor[i]*antNum+1的蚂蚁对任务i进行信息素浓度调度,而编号为randomFactor[i]*antNum+1,…,antNum的蚂蚁对任务i进行随机调度。
在本发明的一些实施方式中,根据如下公式基于所述边云负载比计算所述调度方案的目标得分:
goal[k]表示蚂蚁k的调度方案的目标得分、m表示任务总数、任务i为m个任务中的任一个,intermediate[k][i]表示蚂蚁k将任务i调度到的节点,若[intermediate[k][i]=j,则score[i][intermediate[k][i]]=score[i][j]、score[i][j]表示将任务i调度到节点j的评分、f(loadRatio)表示边云负载比的函数、loadRatio表示边云负载比。
goal[k]为目标函数。
采用上述方案,计算蚂蚁k对每个任务分配的评分,并计算和,得到蚂蚁k在本次迭代的调度方案的目标得分。
在本发明的一些实施方式中,边云负载比的函数根据如下公式中的任一个计算:
采用上述方案,边云协同任务调度中,如果边缘与云端的任务负载均衡度较差,可能导致边缘或云端负载压力较大,影响集群中任务程序运行的性能,增加各个节点之间的通信延迟,集群整体的容灾性也会由于任务的聚集而受到影响。目前主流的调度平台主要关注的是调度的实时性和可靠性,缺少对边云负载比的考虑。本发明专利中将边云负载比作为参数加入到目标函数中,直接影响调度结果优劣的评判,可以保障调度结果的边云负载比。
将边云负载比作为调度目标,满足任务调度需求。目前已有的边云协同调度方案中,更多地关注各调度机器单独的负载情况以及调度的实时性与可靠性,缺乏对边云负载比的考虑。本专利将边云负载比作为参数加入到目标函数的计算中,从而保障调度结果的边云负载比在理想的范围内。
如果我们在实际生产应用中需要将调度的边云负载比控制在区间[lr1,lr2]之间,如果实际中只需要要将边云负载比控制在区间[lr1,lr2]之间,而具体边云负载比在该区间的取值并不影响调度结果的优劣,那么可以将f(loadRatio)设置为一个取值为0或1的分段函数,该函数如下:
但是更多的实际情况下,不但需要边云负载比控制在区间[lr1,lr2]之间,而且越接近两边界值的几何平均值越好,且对于大于的边云负载比x和小于的边云负载比y,如果x*y=lr1*lr2,则认为边云负载比x与y优劣相当,基于这样的考虑,将f(loadRatio)设置为一个有关的分段函数,该函数如下:
[lr1,lr2]表示控制区间、lr1表示控制区间的下限值、lr2表示控制区间的上限值、loadRatio表示边云负载比。
在进行边云协同任务调度时,我们希望边缘服务器与云端服务器的负载尽可能均衡,如果边缘与云端的任务负载均衡度较差,可能导致边缘或云端负载压力较大,影响程序运行的性能,增加通信延迟,容灾性也会受到影响。
边云资源协同的多任务调度能够有效利用边缘云、中心云的计算资源。针对边云协同的多任务调度,提出了一个全局的任务调度模块和一种保障边云负载比的边云协同多任务调度算法。
采用上述方案,利用节点数确定信息素浓度增加比例。
在本发明的一些实施方式中,基于信息素浓度增加比例更新所述信息素矩阵的步骤为:
将pheromoneMatrix[i][intermediate[antMax][i]]的值乘以信息素浓度增加比例,完成对i任务的信息素更新,antMax为调度方案的目标得分最高的蚂蚁的编号、intermediate[antMax][i]表示蚂蚁antMax为任务i分配的节点、若intermediate[antMax][i]为j,则pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值;
对所有任务进行信息素更新,完成更新所述信息素矩阵。
本发明实施例还提供一种保障边云负载比的边云协同多任务调度系统,该系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如前所述方法的步骤。
所提出的全局任务调度模块部署在云节点中,接收任务调度请求,使用任务调度算法将任务分配至不同容器中进行执行,系统架构如图2所示。云节点、边节点以及所有移动设备之间通过网络相互连接。移动设备可以将自身的任务卸载至边节点或云节点中执行,以降低运行时延和任务执行能耗。
整个任务调度流程包括三个阶段:调度请求上报、资源感知、任务调度。在调度请求上报阶段,各移动设备将自身的任务调度请求上报至所在边缘计算网络的边节点中,然后各边节点将收到的请求上报至云节点中的任务调度模块。在资源感知阶段,任务调度模块收集相关联的边、云中各容器的资源状态。在任务调度节点,任务调度模块使用所提出的边云协同的多任务调度算法获得调度结果,然后根据调度结果将移动设备的任务卸载至相应的容器中执行。所提出的任务调度模块包括任务获取、资源感知、任务调度等三个子模块,如图3所示。三个子模块的功能与任务调度流程的三个阶段相对应。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述保障边云负载比的边云协同多任务调度方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种保障边云负载比的边云协同多任务调度方法,其特征在于,所述方法的步骤包括:
基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵;
根据所述得分矩阵初始化信息素矩阵;
从所述信息素矩阵中获取基于每个任务的所有元素值,基于所述元素值计算每个任务的随机因子;
基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略;
获取每个蚂蚁对于每个任务的调度策略,根据每个蚂蚁对于每个任务的调度策略获取每个蚂蚁对于所有任务的调度方案;
基于所述调度方案计算边云负载比,基于所述边云负载比计算所述调度方案的目标得分;
获取当前所有每个任务的随机因子的大小,若每个任务的随机因子的大小均大于预设的第一阈值,则对比每个蚂蚁的目标得分,将目标得分最大的蚂蚁的调度方案作为最优策略;
获取当前所有每个任务的随机因子的大小,若存在任一任务的随机因子的大小小于等于预设的第一阈值,则根据各节点的cpu资源剩余可用量和内存资源剩余可用量计算信息素浓度增加比例,基于信息素浓度增加比例更新所述信息素矩阵。
2.根据权利要求1所述的方法,其特征在于,基于各节点的cpu资源剩余可用量和内存资源剩余可用量、以及各个任务cpu资源请求量和内存资源请求量,计算每个任务调度到任一节点的得分,建立得分矩阵,根据如下公式:
LScore[j]=cpuScore[j]+memScore[j];
Bscore[j]=10-|cpuScore[j]–memScore[j]|;
CPUUsable[j]表示节点j的cpu资源剩余可用量、e表示1-n个节点中的任一个、CPUUsable[e]表示节点e的cpu资源剩余可用量、cpuScore[j]表示节点j的cpu评分、memScore[j]表示节点j的内存评分、MEMUsable[j]表示节点j的内存资源剩余可用量、MEMUsable[e]表示节点e的内存资源剩余可用量、Bscore[j]表示节点j的内存均衡评分、LScore[j]表示节点j的综合资源评分、score[i][j]表示将任务i调度到节点j的评分、CPUNeed[i]为任务i的cpu资源请求量、MEMNeed[i]为任务i的内存资源请求量。
3.根据权利要求1所述的方法,其特征在于,根据如下公式基于所述元素值计算每个任务的随机因子:
randomFactor[i]表示任务i的随机因子、maxPheromone[i]表示信息素矩阵中任务i对应的行的最大元素值对应的下标,若在任务i对应的行pheromoneMatrix[i][1],pheromoneMatrix[i][2],…,pheromoneMatrix[i][n]中最大的元素值为pheromoneMatrix[i][j],则maxPheromone[i]=j;pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值、pheromoneMatrix[i][e]表示任务i和节点e在对应的信息素矩阵中对应的元素值、e表示1-n个节点中的任一个。
4.根据权利要求1所述的方法,其特征在于,基于所述随机因子建立调度策略分界线,使得蚁群中的部分蚂蚁采用信息素浓度调度策略,另一部分蚂蚁采用随机调度策略的步骤包括:
将所有蚂蚁顺序进行编号,基于随机因子计算分界线蚂蚁编号,以分界线蚂蚁编号作为调度策略分界线;
使所有蚂蚁中小于等于分界线蚂蚁编号的蚂蚁采用信息素浓度调度策略,大于分界线蚂蚁编号的蚂蚁采用随机调度策略。
6.根据权利要求4所述的方法,其特征在于,基于随机因子计算分界线蚂蚁编号,根据如下公式:
antp[i]=randomFactor[i]*antNum+1;
antp[i]表示任务i的分界线蚂蚁编号、antNum表示蚂蚁总数、randomFactor[i]表示任务i的随机因子。
9.根据权利要求3所述的方法,其特征在于,基于信息素浓度增加比例更新所述信息素矩阵的步骤为:
将pheromoneMatrix[i][intermediate[antMax][i]]的值乘以信息素浓度增加比例,完成对i任务的信息素更新,antMax为调度方案的目标得分最高的蚂蚁的编号、intermediate[antMax][i]表示蚂蚁antMax为任务i分配的节点、若intermediate[antMax][i]为j,则pheromoneMatrix[i][j]表示任务i和节点j在对应的信息素矩阵中对应的元素值;
对所有任务进行信息素更新,完成更新所述信息素矩阵。
10.一种保障边云负载比的边云协同多任务调度系统,其特征在于,该系统包括计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如权利要求1-9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210036283.XA CN114371925A (zh) | 2022-01-13 | 2022-01-13 | 一种保障边云负载比的边云协同多任务调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210036283.XA CN114371925A (zh) | 2022-01-13 | 2022-01-13 | 一种保障边云负载比的边云协同多任务调度方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114371925A true CN114371925A (zh) | 2022-04-19 |
Family
ID=81144898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210036283.XA Pending CN114371925A (zh) | 2022-01-13 | 2022-01-13 | 一种保障边云负载比的边云协同多任务调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114371925A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936808A (zh) * | 2022-07-21 | 2022-08-23 | 之江实验室 | 一种面向变电站故障检测的云边协同任务管理系统及方法 |
CN115048564A (zh) * | 2022-08-15 | 2022-09-13 | 中国人民解放军国防科技大学 | 分布式爬虫任务调度方法、系统和设备 |
-
2022
- 2022-01-13 CN CN202210036283.XA patent/CN114371925A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114936808A (zh) * | 2022-07-21 | 2022-08-23 | 之江实验室 | 一种面向变电站故障检测的云边协同任务管理系统及方法 |
CN115048564A (zh) * | 2022-08-15 | 2022-09-13 | 中国人民解放军国防科技大学 | 分布式爬虫任务调度方法、系统和设备 |
CN115048564B (zh) * | 2022-08-15 | 2022-11-04 | 中国人民解放军国防科技大学 | 分布式爬虫任务调度方法、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039965B (zh) | 一种时间敏感网络中的多任务卸载方法及系统 | |
CN114371925A (zh) | 一种保障边云负载比的边云协同多任务调度方法和系统 | |
CN109561148A (zh) | 边缘计算网络中基于有向无环图的分布式任务调度方法 | |
CN111611062B (zh) | 云边协同分层计算方法及云边协同分层计算系统 | |
CN108334986B (zh) | 一种基于可塑性机制的重调度方法的多智能体多目标优化方法 | |
CN114281104B (zh) | 一种基于改进蚁群算法的多无人机协同调控方法 | |
CN105591875B (zh) | 一种面向多任务的自组网动态匹配选择方法 | |
CN113918240A (zh) | 任务卸载方法及装置 | |
CN114172558A (zh) | 一种车辆网络中基于边缘计算和无人机集群协同的任务卸载方法 | |
CN115202402A (zh) | 一种无人机集群多任务动态分配方法 | |
CN112463386A (zh) | 用于异构云环境下在线游戏应用的虚拟机管理方法及系统 | |
CN113766037B (zh) | 面向大规模边缘计算系统的任务卸载控制方法及系统 | |
CN114691372A (zh) | 一种多媒体端边云系统的群体智能控制方法 | |
CN118210609A (zh) | 一种基于dqn模型的云计算调度方法及系统 | |
CN117539612A (zh) | 基于混沌麻雀算法的ai训推平台任务调度方法和系统 | |
CN114978913B (zh) | 一种基于切链的服务功能链跨域部署方法及系统 | |
CN110224861A (zh) | 基于学习的自适应动态异构网络选择策略的实现方法 | |
CN115904708A (zh) | 一种ai平台动态加权调度方法、装置及存储介质 | |
CN106210120B (zh) | 一种服务器的推荐方法及其装置 | |
CN115022893A (zh) | 多任务边缘计算系统中最小化总计算时间的资源分配方法 | |
Gao et al. | Deep reinforcement learning based rendering service placement for cloud gaming in mobile edge computing systems | |
CN110162400B (zh) | 复杂网络环境下实现mas系统中智能体合作的方法和系统 | |
CN116909717B (zh) | 一种任务调度方法 | |
CN117971505B (zh) | 部署容器应用的方法及装置 | |
CN115190135B (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 |