CN117453391A - 基于rnn和粒子群的端边云异构资源调度方法及装置 - Google Patents
基于rnn和粒子群的端边云异构资源调度方法及装置 Download PDFInfo
- Publication number
- CN117453391A CN117453391A CN202311209509.2A CN202311209509A CN117453391A CN 117453391 A CN117453391 A CN 117453391A CN 202311209509 A CN202311209509 A CN 202311209509A CN 117453391 A CN117453391 A CN 117453391A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- time
- tasks
- particle swarm
- 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
- 239000002245 particle Substances 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000012549 training Methods 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 17
- 239000013598 vector Substances 0.000 claims description 12
- 238000013439 planning Methods 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 11
- 230000002441 reversible effect Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 7
- 238000004378 air conditioning Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000001105 regulatory effect Effects 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 2
- 238000010276 construction Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 6
- 230000002787 reinforcement Effects 0.000 abstract description 3
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer 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
- 240000007651 Rubus glaucus Species 0.000 description 1
- 235000011034 Rubus glaucus Nutrition 0.000 description 1
- 235000009122 Rubus idaeus Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于RNN和粒子群的端边云异构资源调度方法及装置,方法包括:根据历史记录预先处理任务,形成在客户端中运行的资源需求表并获取客户端各个节点信息表;搭建RNN模型,通过一个利用动态规划生成的数据集训练而来的、能够识别任务序列的RNN模型,对用户在线发布的任务进行缓存,从而将在线任务调度问题转化为离线调度问题,并使用了利用康托展开进行编码优化的粒子群算法完成离线调度,对在线发布的任务得到综合耗时短、负载均衡的调度策略。相较于基于强化学习等主流调度算法,本发明无需大量训练数据和算力即可完成高效的调度。
Description
技术领域
本发明属于云计算资源调度的技术领域,具体涉及一种基于RNN和粒子群的端边云异构资源调度方法及装置。
背景技术
云计算作为当今信息技术领域的前沿技术,在各个行业中都得到广泛应用。通过云计算所提供的计算资源和服务,用户无需拥有自己的物理服务器或基础设施就能够实现对存储和算力上的各种需求。此外,在云计算环境下,用户和任务的执行过程解耦,用户不需要关心任务以何种方式执行才有更高的效率,极大地减少了用户的负担,用户只需要为计算服务付费即可。
近年来随着物联网的不断发展,终端设备爆发式增长,网络服务需求量剧增,新兴的行业如无人驾驶、智能家居等也无不对计算服务有着越来越高的需求,传统的云计算框架已然无法提供相应的高效计算服务。由此出现了许多新的云计算技术,如边缘计算将计算和存储资源推向了网络边缘,拉近与用户的距离进行数据处理分析,从而提供更低延迟的计算服务;再如端边云协同计算架构,将云服务器和边缘服务器以及终端设备协同起来,充分利用硬件的算力,通过云端的管理、调度、协同,在提高降低网络带宽压力的同时,也极大提升了服务质量。
正是在这种端边云计算架构的背景下,处于同一框架的端边云设备呈现出性能上的多样性,计算资源逐渐异构化,导致了系统资源利用率下降、难以协同异构资源等现象。为此近些年来出现了许多和机器学习相关的技术研究,针对异构资源协同、任务调度等问题,着力于优化任务平均耗时、服务器负载均衡,以完善端边云计算架构。如:天翼云科技有限公司提出的基于蚁群优化算法的异构任务调度方法,面向耗时优化,为一批用户的独立请求计算最佳的调度策略;南昌大学提出的基于CloudSim的改进粒子群调度算法,通过平均适应度的概念优化搜索过程,提升调度策略的优越性;国防科技大学提出的一种基于强化学习的深度学习任务调度方法,能够根据在线反馈自适应学习并更新调度决策,最大化任务执行效率和集群资源利用率;南京邮电大学提出的基于振荡式惯性权重的离散粒子群调度算法,通过振荡变化的惯性权重,在搜索过程中调整全局搜索能力和局部搜索能力以得到全局的最优解。
然而,目前的研究工作仍存在一些不足的地方:一是许多应用于调度的主流算法如蚁群算法、粒子群算法大多面向离线的任务调度,而在实际的工程项目中任务往往是在线发布的,因而对于在线的调度平台大多离线算法缺少有效的整合方法,而面向在线调度的算法如强化学习,其往往对设备的算力、数据的收集、模型的训练有着较高的要求;二是即使是应用于离线调度的粒子群算法,许多研究中在编码时都没有考虑到任务调度次序对调度策略带来的影响,所得到的调度策略尚存在可优化的空间。
发明内容
本发明针对端边云场景下异构集群由于节点性能不同、资源异构导致的资源分配不均衡、资源利用率低、任务响应慢等问题,提供一种基于RNN和粒子群的端边云异构资源调度方法及装置,以获得能够应用于端边云异构资源场景的调度策略。
为了达到上述目的,本发明采用以下技术方案:
第一方面,本发明提供了一种基于RNN和粒子群的端边云异构资源调度方法,包括下述步骤:
根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。
作为优选的技术方案,所述数据集通过下述方式获取:
对采集到的任务序列,按照到达的时间戳顺序排序,先随机确定α,计算每个任务的最佳调度时间点,再进行动态规划计算出每个任务全局的最佳调度时间作为最终的标签;
所述态规划的描述如下:
将单个任务的最佳调度时间点Scheduling_time组成一组调度时间序列,然后根据总的序列长度和期望单次调度任务数量,将调度时间序列划分成指定的段数m,使得所有的段的方差之和最小,即:
定义对序列的前i个任务划分成j个段的方差之和最小值dpi,j,如下式:
其中INF表示正无穷大,表示序列从第k+1个任务到第i个任务的方差,k是用于遍历的整数变量,0≤i≤n,0≤j≤m,n表示集群的总节点数;
定义序列前缀和函数f表达式为:
其中Scheduling_timei表示第i个任务的Scheduling_time值;
定义序列前缀平方和函数.g表达式为:
利用方差公式,得到的计算公式为:
调节等待系数α,当计算方差的值最小时,确定序列的最终分段方式;
计算每个调度时间序列分段的均值,获得全局的最佳调度时间Scheduling_time_best。
作为优选的技术方案,所述调度时机触发具体为:
计算调度队列中所有的任务经过模型计算后得到的调度时间戳的均值,当该值大于当前时间时,就触发调度,同时不断监视是否有新的任务。
作为优选的技术方案,所述根据任务的数量对粒子群的位置向量进行编码,具体为:
令当前调度任务t个,并将t任务调度到n个节点上,则定义位置编码格式为:
X=(x1,x2,......,xt,a1,a2,......,ap)
其中,前t个维度表示节点编码,后p个维度是顺序编码,ai表示第i种任务,i∈[1,p]∩N+;
然后,对顺序编码进行处理,具体为:
定义进制数为c、排列序数为order;
结合位置编码前t个维度的最大取值确定定义进制数c;
根据状态的总个数约束满足t!≤cp,得到p的计算公式:
p=「logc(t!)]
随后,设定排列序数的计算公式,如下式:
其中,ai表示第i种任务,当order≥t!,则order=t!-1;
根据逆康托展开通过order计算出任务排列的具体步骤如下:
(1)初始化空列表pList,初始化顺序排列列表data,满足datai=i,两个列表下标均从1开始;
(2)遍历变量i从1至t,将data中下标为的项追加到pList中,并在data中将该项删除,将order更新为order%(t-i)!;
(3)得到的pList为一个全排列,将原来的任务按照此排列进行排序。
作为优选的技术方案,所述粒子群的惯性权重为非线性下降的logistic变换,具体为:
设粒子群训练的总轮数为epoch_hum,当前训练到第epoch轮,利用非线性下降的logistic变换优化粒子群的惯性权重,如下式:
其中λ为下降系数,且λ>0,所述下降系数越小则越鼓励粒子群的前期全局搜索能力。
作为优选的技术方案,所述设置粒子群的适应度函数,具体为:
首先,计算等待时间,为每个节点都维护一个优先队列,该优先队列维护所有正在或者等待在节点运行的任务包括任务的运行结束时间戳和任务的需求资源,其中运行结束时间按升序作为优先队列的优先级;在资源需求表Request_table中查询任务在指定的节点和运行方式下运行的需求资源,然后在资源需求表Resources_table中查询节点当前的资源信息,判断节点的资源是否能够满足任务运行需求;
然后,当任务无法在该节点上运行时,顺序释放队首的资源直到找到第一个使任务能够在节点上运行的时间点,计算该时间点和当前时间点的差值,得到单次调度的所有任务等待时间;再加上任务在该节点上运行的时间,从资源需求表Request_table中查询任务的运行时间,再加上等待时间,获得单次调度的所有任务等待与运行时间之和;
所述最大的完成时间戳即为单次调度的所有任务完成时间最晚的时间戳;
假设节点具有r种资源,第i种资源的使用量为vi,节点空载时的总量为v_emptyi,则定义集群负载因子l,如下式:
统计所有集群的负载因子之和,获得集群总负载因子和。
作为优选的技术方案,所述资源需求表包括每个任务在所有运行方式和各个节点的运行资源消耗参数;所述所有运行方式和各个节点的运行资源消耗参数包括CPU、GPU和NPU芯片的占用率以及各芯片的物理内存占用量、磁盘需求量与预测运行时间;所述各个节点运行方式的使用率包括各个节点的CPU、GPU、NPU使用率以及各芯片的物理内存剩余量和磁盘剩余容量。
作为优选的技术方案,所述RNN模型包括三个隐藏层、一个RNNCell和一个线性整流单元ReLU,其中输入通过一层隐藏层进入RNNCell,而RNNCell的输出后引出自反馈,与输入加权求和后归一化完成迭代,然后进过两层隐藏层和线性整流单元ReLU,输出预测结果。
第二方面,本发明提供了一种基于RNN和粒子群的端边云异构资源调度系统,应用于所述的基于RNN和粒子群的端边云异构资源调度方法,包括任务处理模块、模型构建模块、任务调度模块、位置编码模块和调度结果输出模块;
所述任务处理模块,用于根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
所述模型构建模块,用于搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
所述任务调度模块,用于在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
所述位置编码模块,用于根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
所述调度结果输出模块,用于设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。
第三方面,本发明提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的基于RNN和粒子群的端边云异构资源调度方法。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明通过一个利用动态规划生成数据集训练而来的RNN模型对在线任务进行适时缓存,将原本的在线调度转化为离线调度,并提出以最小化方差总和生成数据集,提供一种新的调度算法,提高了在线的调度平台对离线算法的整合能力。
(2)本发明根据任务数量对粒子群的位置向量进行编码并处理顺序编码,提出了一种基于康托展开的粒子群编码方法,同时提出了n进制优化编码的方法,通过扩大维度来缩小维度值域和提高搜索性能,最终能够以较小的编码扩展综合任务分配节点和调度次序进行搜索,以追求更优的调度策略。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于RNN和粒子群的端边云异构资源调度方法的流程图;
图2为本发明实施例粒子群算法流程图;
图3为本发明实施例RNN模型结构示意图;
图4为本发明实施例惯性权重的变化实例图;
图5为本发明实施例K8s框架下基于RNN和粒子群的端边云异构资源调度方法的流程图;
图6为本发明实施例基于RNN和粒子群的端边云异构资源调度系统的结构示意图;
图7为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其他实施例相结合。
请参阅图1,本实施例提出的一种基于RNN和粒子群的端边云异构资源调度方法,包括下述步骤:
S1、根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;具体如下:
所述资源需求表Request_table包括每个任务在所有运行方式和各个节点的运行资源消耗参数;所述客户端各个节点信息表Resources_table包括各个节点运行方式的使用率、物理内存剩余量和磁盘剩余量;所述所有运行方式和各个节点的运行资源消耗参数包括CPU、GPU和NPU芯片的占用率以及各芯片的物理内存占用量、磁盘需求量与预测运行时间;所述各个节点运行方式的使用率包括各个节点的CPU、GPU、NPU使用率以及各芯片的物理内存剩余量和磁盘剩余容量。
S2、搭建RNN模型,确定模型的各个隐层和激活函数,利用资源需求表Request_table和客户端各个节点信息表Resources_table构建基于动态规划的数据集;在在线任务缓存器中进行实时调度任务,并利用任务和数据集训练RNN模型。
进一步的,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签。
进一步的,如图2所示,本实施例的RNN模型设计了三个隐藏层、一个RNNCell和一个线性整流单元ReLU,其中输入通过一层隐藏层进入RNNCell,而RNNCell的输出后引出自反馈,与输入加权求和后归一化完成迭代,然后进过两层隐藏层和线性整流单元ReLU,输出预测结果。
可以理解的是,上述RNN模型是实现本发明的其中一种实现方式,其他能够实现本发明的RNN模型同样适用于本发明的技术方案。
更进一步的,获取训练所需要的数据集的方法如下:
通过客户端的历史记录或者用随机生成的方式得到任务序列,任务序列包括任务的类型和到达时间戳;
每个任务在不同设备上以不同方式运行具有不同的运行时间,假设某种任务具有d种情形,对应d种在不同设备上以不同运行方式的运行时间,定义该任务以第i种情形执行,在设备空载下最多能够同时执行ai个该任务,那么定义该任务以第i种情形执行的承载因子μi,计算公式为:
其中d表示一种任务执行情形数量,ai表示该任务在第i种情形下最多能够被同时执行的数量;
根据任务的类型,在资源需求表Request_table中获取到任务在所有情形下运行的时间,并通过加权每个任务的平均预期运行时间Average_runtime的计算公式为:
其中ti表示任务在第i种情形的运行时间。
每个任务的最佳调度时间点Scheduling_time为:
其中,α为等待系数。
实际上,在步骤S2中,定义等待系数α,计算单个任务的最佳调度时间点Scheduling_time即到达时间加上等待运行时间的α倍。
另外,由于每个任务的最佳调度时间点仅对于任务本身最佳,而不是对于整个任务序列最佳,不适合作为最终的标签,因此本实施例对数据集的获取方法,还有以下步骤:
对采集到的任务序列,按照到达的时间戳顺序排序,先随机确定α,计算每个任务的最佳调度时间点,再进行动态规划计算出每个任务全局的最佳调度时间作为最终的标签。
还有的是,本实施例中还包括动态规划的方法,在这里,动态规划以序列分段并最小化方差总和作为目标,具体为:
每个任务的Scheduling_time组成一组序列,目标是将这个序列划分成指定的段数m,使得所有的段的方差之和最小。定义dpi,j表示对序列的前i个任务划分成j个段的方差之和最小值,有如下转移式:
上式中INF为正无穷大,表示序列从第k+1个任务到第i个任务的方差,k是用于遍历的整数变量,0≤i≤n,0≤j≤m,n表示集群的总节点数。转移过程可进行优化,定义序列前缀和函数f表达式为:
其中Scheduling_timei表示第i个任务的Scheduling_time值。
定义序列前缀平方和函数g表达式为:
由方差公式:
Var[X]=E(X2)-E2(X) (7)
可得到的计算公式为:
调节等待系数α,当计算方差的值最小时,确定序列的最终分段方式;
计算每个调度时间序列分段的均值,获得全局的最佳调度时间Scheduling_time_best。
更进一步的,动态规划的同时需要记录下分段的决策,计算每个段的均值,最终每个任务的全局最佳调度时间就是其所在段的均值;分段数m要根据总的序列长度和期望单次调度任务数量确定。
S3、在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列。
进一步的,调度时机触发具体为:
计算调度队列中所有的任务经过模型计算后得到的调度时间戳的均值,当该值大于当前时间时,就触发调度,同时不断监视是否有新的任务。
参阅图3,步骤S3中包括以下粒子群算法:
S31、获得调度队列中的所有任务;
S32、确定本次调度要优化的目标;
S33、根据任务数量和节点数量进行编码;
S34、设置粒子群算法参数,包括粒子数、轮数、加速常数,以及初始化位置和速度;
S35、计算所有粒子的适应度,并更新个体最优位置和全局最优位置;
S36、判断是否达到迭代次数,如否,则返回步骤S35;如是,则执行步骤S37;
S37、则对全局最优位置进行解码,得到调度结果。
S4、根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化。
进一步的,步骤S4中所述根据任务数量对粒子群的位置向量进行编码并处理顺序编码,具体为:
S41、令当前调度任务t个,并将t任务调度到n个节点上,则定义位置编码格式为:
X=(x1,x2,......,xt,a1,a2,......,ap) (9)
其中,前t个维度表示节点编码,后p个维度是顺序编码;
S42、假设一共三种运行方式,CPU、GPU、NPU分别为第1、2、3种运行方式,那么第i个任务运行的节点编号为运行方式是第(xi%3+1)种,满足0≤xi<3n。
S43、对顺序编码进行处理,具体为:
S431、定义进制数为c、排列序数为order;
S432、结合位置编码前t个维度的最大取值确定定义进制数c;
S433、根据状态的总个数约束满足t!≤cp,得到p的计算公式:
p=「logv(t!)] (10)
S44、设定排列序数的计算公式,如下式:
其中,ai表示第i种任务,当order≥t!,则order=t!-1;
S45、根据逆康托展开通过order计算出任务排列的具体步骤如下:
S451、初始化空列表pList,初始化顺序排列列表data,满足datai=i,两个列表下标均从1开始;
S452、遍历变量i从1至t,将data中下标为的项追加到pList中,并在data中将该项删除,将order更新为order%(t-i)!;
S453、得到的pList为一个全排列,将原来的任务按照此排列进行排序。
另外,还需要说明的是,所述调度时机的触发,即为:计算调度队列中所有的任务经过模型计算后得到的调度时间戳的均值,当调度时间戳的均值大于当前时间时,触发任务的调度,同时不断监视是否有新的任务。
S5、设置粒子群的适应度函数,统计单次调度的所有任务等待与运行时间之和、最大的完成时间戳与集群总负载因子和,通过综合评估的方式得到评分并在搜索过程中优化评分,获取最终的调度结果。
所述粒子群的惯性权重为非线性下降的logistic变换,具体为:
设粒子群训练的总轮数为epoch_num,当前训练到第epoch轮,利用非线性下降的logistic变换优化粒子群的惯性权重,如下式:
其中λ为下降系数,且λ>0,如图4所示,在相同的粒子群训练的总轮数的情况下,下降系数小的,其权重随着训练轮次的增加,其减小的趋势比较缓。这表明当下降系数越小,则越鼓励粒子群的前期全局搜索能力。
可以理解的是,适应度函数每次都会计算本次调度的所有任务总的等待与运行时间之和,最大的完成时间戳和所有集群的负载因子之和三个指标。
计算任务的等待与运行时间的方法是:
首先,计算等待时间,为每个节点都维护一个优先队列,该优先队列维护所有正在或者等待在节点运行的任务包括任务的运行结束时间戳和任务的需求资源,其中运行结束时间按升序作为优先队列的优先级;在资源需求表Request_table中查询任务在指定的节点和运行方式下运行的需求资源,然后在资源需求表Resources_table中查询节点当前的资源信息,判断节点的资源是否能够满足任务运行需求;
然后,当任务无法在该节点上运行时,顺序释放队首的资源直到找到第一个让任务能够在节点上运行的时间点,计算该时间点和当前时间点的差值,得到单次调度的所有任务等待时间;再加上任务在该节点上运行的时间,从资源需求表Request_table中查询任务的运行时间,再加上等待时间,获得单次调度的所有任务等待与运行时间之和;
所述最大的完成时间戳即为单次调度的所有任务完成时间最晚的时间戳;
假设节点具有r种资源,第i种资源的使用量为vi,节点空载时的总量为v_emptyi,则定义集群负载因子l,如下式:
统计所有集群的负载因子之和,获得集群总负载因子和。
还有的是,综合评估的方式根据对调度结果的偏好进行选择,可以通过指标映射再加权的方式,也可以基于优先级优化指标。
请参阅图5,为了更加直观地说明,本发明给出又一个更具体的实施例,具体步骤如下:
S1、硬件上使用1台带有2块T4-Tesla GPU计算芯片的x86服务器作为云服务器,3台Atlas 200DK作为边缘服务器,4台树莓派作为终端设备;使用Kubernetes作为集群搭建框架,并编写一个与用户交互的前端程序;
S2、设计不同类型的任务,包括AI密集型、内存密集型和磁盘密集型,并为这些任务根据不同的运行方式和不同运行平台准备镜像。提前获取到各个任务以不同的运行方式在不同设备上运行的信息,写入资源需求表Request_table中;同时需要在各个设备上运行获取设备信息的脚本,并在前端程序中编写能够获取这些信息的接口,这些信息组织成为节点信息表Resources_table;
S3、搭建RNN模型,其模型结构使用图1的示例。准备数据集,生成1000个随机类型的任务,且在1000s内随机到达。根据节点的空载信息结合公式(1)为每个任务计算所有的承载因子,根据公式(2)计算出平均预期运行时间Average_runtime;指定划分段数为100,初始化等待系数α为5%,根据公式(3)-(8)通过动态规划计算出最小的方差和、划分方案和每个任务的全局最佳调度时间点Scheduling_time_best,再根据方差值调节α直到方差值最小;
S4、训练RNN模型,为了加快训练速度,对数据进行预处理,将各维度值压缩到[-2,2],使用MSE作为损失函数,学习率设置为0.02,训练轮数为1000轮;
S5、将训练完成的模型放入到调度程序中,对于每次的任务发布,都进行相同的数据预处理再输进模型;同时将任务放入到队列中,并计算队列所有任务的平均最佳调度时间点,当当前时间大于该值时,将所有任务输入粒子群算法中,并清空队列,此外当队列任务数量为10时也执行同样操作;
S6、粒子群的编码中,确定进制数c为256,根据每次的任务数量结合公式(10)确定出顺序编码长度,下降系数λ为0.2;此外,确定每次更新位置和速度的方式是采用四舍五入的方式,以保证位置和速度都处于离散状态;进行初始化时根据不同维度的最大取值进行随机初始化;
S7、每个位置编码输进适应度函数时,首先对顺序编码进行解码,利用公式(11)计算出排序序数order,再按照步骤计算出对应的全排列,将任务顺序按照此排列重新排序;
S8、适应度函数中,按照顺序对任务进行处理,若节点能够支持指定的运行方式,再询问资源是否足够运行,若足够则累计运行时间,否则在优先队列中查询等待时间,再累计总耗时,若不支持该种运行方式或者任务无此运行方式,则返回无穷大表示此位置向量不在可行解内;计算过程中同时统计本次调度所有任务执行完成的最晚时间戳,所有任务处理完毕后统计所有节点的负载因子之和;对最优解的更新准则是按照上述三个指标的优先级,即在满足任务平均耗时最短的情况下,满足最晚时间戳最小,再满足负载因子之和最小;
S9、将调度结果和任务顺序一并返回,并通过Kubernetes按照结果将任务调度到节点上;通过脚本在100s内随机生成100个任务,统计最终完成时间;在同框架中部署了其他主流调度算法,对于相同的任务序列最终本发明的总耗时下降了5%-25%。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
基于与上述实施例中的基于RNN和粒子群的端边云异构资源调度方法相同的思想,本发明还提供了基于RNN和粒子群的端边云异构资源调度系统,该系统可用于执行上述基于RNN和粒子群的端边云异构资源调度方法。为了便于说明,基于RNN和粒子群的端边云异构资源调度系统实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
请参阅图6,在本申请的另一个实施例中,提供了一种基于RNN和粒子群的端边云异构资源调度系统100,该系统包括任务处理模块101、模型构建模块102、任务调度模块103、位置编码模块104和调度结果输出模块105;
所述任务处理模块101,用于根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
所述模型构建模块102,用于搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
所述任务调度模块103,用于在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
所述位置编码模块104,用于根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
所述调度结果输出模块105,用于设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。需要说明的是,本发明的基于RNN和粒子群的端边云异构资源调度系统与本发明的基于RNN和粒子群的端边云异构资源调度方法一一对应,在上述基于RNN和粒子群的端边云异构资源调度方法的实施例阐述的技术特征及其有益效果均适用于基于RNN和粒子群的端边云异构资源调度方法的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述实施例的基于RNN和粒子群的端边云异构资源调度系统的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述基于RNN和粒子群的端边云异构资源调度系统的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
请参阅图7,在一个实施例中,提供了一种实现基于RNN和粒子群的端边云异构资源调度方法的电子设备,所述电子设备20可以包括第一处理器21、第一存储器22和总线,还可以包括存储在所述第一存储器22中并可在所述第一处理器21上运行的计算机程序,如基于RNN和粒子群的端边云异构资源调度程序23。
其中,所述第一存储器22至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述第一存储器22在一些实施例中可以是电子设备20的内部存储单元,例如该电子设备20的移动硬盘。所述第一存储器22在另一些实施例中也可以是电子设备20的外部存储设备,例如电子设备20上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述第一存储器22还可以既包括电子设备20的内部存储单元也包括外部存储设备。所述第一存储器22不仅可以用于存储安装于电子设备20的应用软件及各类数据,例如基于RNN和粒子群的端边云异构资源调度程序23的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述第一处理器21在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述第一处理器21是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述第一存储器22内的程序或者模块,以及调用存储在所述第一存储器22内的数据,以执行电子设备20的各种功能和处理数据。
图7仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对所述电子设备20的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
所述电子设备20中的所述第一存储器22存储的基于RNN和粒子群的端边云异构资源调度程序23是多个指令的组合,在所述第一处理器21中运行时,可以实现:
根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。
进一步地,所述电子设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其他介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.基于RNN和粒子群的端边云异构资源调度方法,其特征在于,包括下述步骤:
根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。
2.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述数据集通过下述方式获取:
对采集到的任务序列,按照到达的时间戳顺序排序,先随机确定α,计算每个任务的最佳调度时间点,再进行动态规划计算出每个任务全局的最佳调度时间作为最终的标签;
所述态规划的描述如下:
将单个任务的最佳调度时间点Scheduling_time组成一组调度时间序列,然后根据总的序列长度和期望单次调度任务数量,将调度时间序列划分成指定的段数m,使得所有的段的方差之和最小,即:
定义对序列的前i个任务划分成j个段的方差之和最小值dpi,j,如下式:
其中INF表示正无穷大,表示序列从第k+1个任务到第i个任务的方差,k是用于遍历的整数变量,0≤i≤n,0≤j≤m,n表示集群的总节点数;
定义序列前缀和函数f表达式为:
其中Scheduling_timei表示第i个任务的Scheduling_time值;
定义序列前缀平方和函数g表达式为:
利用方差公式,得到的计算公式为:
调节等待系数α,当计算方差的值最小时,确定序列的最终分段方式;
计算每个调度时间序列分段的均值,获得全局的最佳调度时间Scheduling_time_best。
3.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述调度时机触发具体为:
计算调度队列中所有的任务经过模型计算后得到的调度时间戳的均值,当该值大于当前时间时,就触发调度,同时不断监视是否有新的任务。
4.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述根据任务的数量对粒子群的位置向量进行编码,具体为:
令当前调度任务t个,并将t任务调度到n个节点上,则定义位置编码格式为:
X=(x1,x2,……,xt,a1,a2,……,ap)
其中,前t个维度表示节点编码,后p个维度是顺序编码,ai表示第i种任务,i∈[1,p]∩N+;
然后,对顺序编码进行处理,具体为:
定义进制数为c、排列序数为order;
结合位置编码前t个维度的最大取值确定定义进制数c;
根据状态的总个数约束满足t!≤cp,得到p的计算公式:
随后,设定排列序数的计算公式,如下式:
其中,ai表示第i种任务,当order≥t!,则order=t!-1;
根据逆康托展开通过order计算出任务排列的具体步骤如下:
(1)初始化空列表pList,初始化顺序排列列表data,满足datai=i,两个列表下标均从1开始;
(2)遍历变量i从1至t,将data中下标为的项追加到pList中,并在data中将该项删除,将order更新为order%(t-i)!;
(3)得到的pList为一个全排列,将原来的任务按照此排列进行排序。
5.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述粒子群的惯性权重为非线性下降的logistic变换,具体为:
设粒子群训练的总轮数为epoch_num,当前训练到第epoch轮,利用非线性下降的logistic变换优化粒子群的惯性权重,如下式:
其中λ为下降系数,且λ>0,所述下降系数越小则越鼓励粒子群的前期全局搜索能力。
6.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述设置粒子群的适应度函数,具体为:
首先,计算等待时间,为每个节点都维护一个优先队列,该优先队列维护所有正在或者等待在节点运行的任务包括任务的运行结束时间戳和任务的需求资源,其中运行结束时间按升序作为优先队列的优先级;在资源需求表Request_table中查询任务在指定的节点和运行方式下运行的需求资源,然后在资源需求表Resources_table中查询节点当前的资源信息,判断节点的资源是否能够满足任务运行需求;
然后,当任务无法在该节点上运行时,顺序释放队首的资源直到找到第一个使任务能够在节点上运行的时间点,计算该时间点和当前时间点的差值,得到单次调度的所有任务等待时间;再加上任务在该节点上运行的时间,从资源需求表Request_table中查询任务的运行时间,再加上等待时间,获得单次调度的所有任务等待与运行时间之和;
所述最大的完成时间戳即为单次调度的所有任务完成时间最晚的时间戳;
假设节点具有r种资源,第i种资源的使用量为vi,节点空载时的总量为v_emptyi,则定义集群负载因子l,如下式:
统计所有集群的负载因子之和,获得集群总负载因子和。
7.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述资源需求表包括每个任务在所有运行方式和各个节点的运行资源消耗参数;所述所有运行方式和各个节点的运行资源消耗参数包括CPU、GPU和NPU芯片的占用率以及各芯片的物理内存占用量、磁盘需求量与预测运行时间;所述各个节点运行方式的使用率包括各个节点的CPU、GPU、NPU使用率以及各芯片的物理内存剩余量和磁盘剩余容量。
8.根据权利要求1所述基于RNN和粒子群的端边云异构资源调度方法,其特征在于,所述RNN模型包括三个隐藏层、一个RNNCell和一个线性整流单元ReLU,其中输入通过一层隐藏层进入RNNCell,而RNNCell的输出后引出自反馈,与输入加权求和后归一化完成迭代,然后进过两层隐藏层和线性整流单元ReLU,输出预测结果。
9.基于RNN和粒子群的端边云异构资源调度系统,其特征在于,应用于权利要求1-8中任一项所述的基于RNN和粒子群的端边云异构资源调度方法,包括任务处理模块、模型构建模块、任务调度模块、位置编码模块和调度结果输出模块;
所述任务处理模块,用于根据历史记录预先处理好任务在各种运行方式下以及在各个服务器集群上运行的资源需求表,然后获取服务器集群的各个节点信息表;
所述模型构建模块,用于搭建RNN模型,确定模型的各个隐层和激活函数,利用动态规划生成的数据集训练所述RNN模型能够识别任务序列,所述获取数据集的方法具体为:获取任务序列,所述任务序列包括任务的类型和到达时间戳,根据任务的类型,在资源需求表中获取到任务在所有情形下运行的时间,并通过加权得到任务的平均预期运行时间;每个作为输入的任务包含两个维度,分别是平均预期运行时间和其到达的时间戳;定义等待系数α,计算单个任务的最佳调度时间点即到达时间加上等待运行时间的α倍,然后先随机确定α,以序列分段并最小化方差总和作为目标进行动态规划,再根据最终的结果调节α直到得到最小的方差总和;处于同一段的任务计算均值就是全局的最佳调度时间,并作为数据集的标签;
所述任务调度模块,用于在调度器中维护一个任务调度队列,每接收到一个新任务就放入训练好的RNN模型得到时间间隔,在调度时机触发之后将所有已缓存的任务发配到粒子群算法中进行计算,并清空调度队列;
所述位置编码模块,用于根据任务的数量对粒子群的位置向量进行编码,所述编码包含两部分,一部分是表示任务的节点以及运行方式的节点编码,另一部分是表示任务运行顺序的顺序编码,使用逆康托展开处理顺序编码,并进行搜索空间的优化;
所述调度结果输出模块,用于设置粒子群的惯性权重和适应度函数,统计本次调度的所有任务等待与运行时间之和,最大的完成时间戳和集群总负载因子和,通过综合评估的方式得到最终评分并在搜索过程中优化评分,输出最终的调度结果。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-8中任意一项所述的基于RNN和粒子群的端边云异构资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311209509.2A CN117453391A (zh) | 2023-09-19 | 2023-09-19 | 基于rnn和粒子群的端边云异构资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311209509.2A CN117453391A (zh) | 2023-09-19 | 2023-09-19 | 基于rnn和粒子群的端边云异构资源调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453391A true CN117453391A (zh) | 2024-01-26 |
Family
ID=89582495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311209509.2A Pending CN117453391A (zh) | 2023-09-19 | 2023-09-19 | 基于rnn和粒子群的端边云异构资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453391A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117880857A (zh) * | 2024-03-11 | 2024-04-12 | 北京蓝耘科技股份有限公司 | 基于移动网络资源管理的云计算方法、系统及存储介质 |
-
2023
- 2023-09-19 CN CN202311209509.2A patent/CN117453391A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117880857A (zh) * | 2024-03-11 | 2024-04-12 | 北京蓝耘科技股份有限公司 | 基于移动网络资源管理的云计算方法、系统及存储介质 |
CN117880857B (zh) * | 2024-03-11 | 2024-05-14 | 北京蓝耘科技股份有限公司 | 基于移动网络资源管理的云计算方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109818786B (zh) | 一种云数据中心应用可感知的分布式多资源组合路径最优选取方法 | |
CN111124689B (zh) | 一种集群中容器资源动态分配方法 | |
CN107404523A (zh) | 云平台自适应资源调度系统和方法 | |
CN105744006A (zh) | 一种面向多类型服务的粒子群优化用户请求调度方法 | |
CN104283946A (zh) | 一种单物理机下多虚拟机的资源自适应调整系统及方法 | |
CN113938488A (zh) | 一种基于动静态加权轮询的负载均衡方法 | |
CN117453391A (zh) | 基于rnn和粒子群的端边云异构资源调度方法及装置 | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN110928651B (zh) | 一种移动边缘环境下的服务工作流容错调度方法 | |
CN113822456A (zh) | 一种云雾混构环境下基于深度强化学习的服务组合优化部署方法 | |
CN112231091A (zh) | 一种基于强化学习策略的并行云工作流调度方法 | |
CN109960573A (zh) | 一种基于智能感知的跨域计算任务调度方法及系统 | |
CN108717552A (zh) | 基于新标签发现和标签增量学习的动态多标签分类方法 | |
CN112632615B (zh) | 基于混合云环境的科学工作流数据布局方法 | |
CN116112563A (zh) | 一种基于流行度预测的双策略自适应缓存替换方法 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
CN117707795B (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
CN114745392A (zh) | 流量调度方法 | |
CN117349026B (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN113014649B (zh) | 一种基于深度学习的云物联负载均衡方法、装置及设备 | |
Zhou et al. | Content placement with unknown popularity in fog radio access networks | |
CN117354330A (zh) | 一种改进的边缘计算IoT大数据分析架构 | |
CN110633784B (zh) | 一种多规则人工蜂群改进算法 | |
CN111338757A (zh) | 能量优化的虚拟机部署方法及系统 | |
CN116405498A (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 |