CN112272227A - 一种基于计算图的边缘计算任务调度方法 - Google Patents
一种基于计算图的边缘计算任务调度方法 Download PDFInfo
- Publication number
- CN112272227A CN112272227A CN202011141855.8A CN202011141855A CN112272227A CN 112272227 A CN112272227 A CN 112272227A CN 202011141855 A CN202011141855 A CN 202011141855A CN 112272227 A CN112272227 A CN 112272227A
- Authority
- CN
- China
- Prior art keywords
- task
- edge
- tasks
- sequence
- subtask
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/10—Detection; Monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于计算图的边缘计算任务调度方法,包括:构建工业云边缘系统构架;每隔一定周期,汇总边缘服务器待处理的边缘计算任务,并进行批量处理。过程为:边缘服务器建立并实时更新本地存储的数据集合表;形成计算图;根据待处理的边缘计算任务的类型,启动对应的第一种任务实时调度模式或第二种任务自适应调度模式。优点为:第一种任务实时调度模式能够在有限计算资源的情况下,对边缘计算任务进行合理调度,最大程度提高实时性;第二种任务自适应调度模式,能够使所有任务请求的客户端总等待时间最短,从而提高用户的使用体验。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种基于计算图的边缘计算任务调度方法。
背景技术
目前,工业现场数据采集与分析系统,普遍采用集中式云计算架构,即:在云端布置远端数据中心,远端数据中心通过接入网关与监控范围内的各种智能终端通信连接,其中,智能终端包括固定智能终端和移动智能终端;因此,远端数据中心对监控范围内的各类智能终端进行数据采集,并分析处理,再将处理结果发送给客户端。
随着基层物联网数据的类型和数量越来越多,以上集中式云计算架构具有时延高的问题,已无法满足客户端对数据快速获取的需求。
为解决上述问题,现有技术出现边缘云技术,即在5G基站布置边缘服务器,在该边缘服务器部署多个边缘计算任务,从而实现数据就近处理,避免海量数据传输到远端云服务器。
由于边缘服务器的计算能力有限,而边缘计算任务具有较强的实时性。因此,如何在有限计算资源的情况下,对边缘计算任务进行合理调度,最大程度提高实时性,具有重要意义。
发明内容
针对现有技术存在的缺陷,本发明提供一种基于计算图的边缘计算任务调度方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种基于计算图的边缘计算任务调度方法,包括以下步骤:
步骤1,构建工业云边缘系统构架;所述工业云边缘系统构架包括:边缘计算任务管理器和边缘服务器;其中,在云端布置所述边缘计算任务管理器;在总监控区域内存在q个基站,在每个基站中布置一台所述边缘服务器,因此,共布置q台边缘服务器,分别为:边缘服务器BF1,边缘服务器BF2,...,边缘服务器BFq;每台所述边缘服务器的监控区域即为对应的所述基站的覆盖范围;
步骤2,对于任意的每台边缘服务器BFi,i=1,2,...,q,配置对应的任务调度器TDi,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,并进行批量处理,具体方法为:
步骤2.1,边缘服务器BFi建立并实时更新本地存储的数据集合表EDSi=(DSi1,DSi2,...,DSip);
其中,p代表边缘服务器BFi监控区域当前包含的智能终端的总数量,并且,随着监控的不断进行,当边缘服务器BFi监控到其监控区域加入新的智能终端时,则更新数据集合表EDSi,将新加入的智能终端的数据集合DS加入到数据集合表EDSi;
其中:DSi1,DSi2,...,DSip分别代表边缘服务器BFi包含的第1个智能终端Ii1的数据集合,第2个智能终端Ii2的数据集合,...,第p个智能终端Iip的数据集合;
对于边缘服务器BFi包含的任意的第j个智能终端Iij,其数据集合DSij描述方式为:{Key(BFi,IDij):{Lj=Lt1,Lt2,...,Ltx}},即:采用键值对的方式存储数据,其中,IDij代表边缘服务器BFi的监控区域包含的第j个智能终端Iij的智能终端ID;Lj=Lt1,Lt2,...,Ltx代表从监控开始后,第j个智能终端Iij采集到的工业现场数据序列,即:Lt1代表监控开始后,采集到的第1个工业现场数据,Lt2代表监控开始后,采集到的第2个工业现场数据,依此类推,Ltx代表监控开始后,采集到的第x个工业现场数据,并且,随着监控不断进行,第j个智能终端Iij采集到的最新的工业现场数据不断存入该数据集合DSij,实现对数据集合DSij的实时更新;
步骤2.2,任务调度器TDi汇总边缘服务器BFi上当前已部署的边缘计算任务,假设共有n个已部署的边缘计算任务,从而形成任务集合F=[F1,F2,...,Fn];其中,F1代表第1个边缘计算任务,F2代表第2个边缘计算任务,依此类推,Fn代表第n个边缘计算任务;
对于任意的边缘计算任务Fk,其中,k=1,2,...,n,具有以下属性:任务ID、输入数据集合描述DSk、输出数据集合描述DRk、计算代码包Uk以及任务固有运行时间tk;
步骤2.3,任务调度器TDi对各个边缘计算任务之间的数据传递关系进行关联分析,形成表征边缘计算任务级联依赖关系的计算图;其中,所述计算图包括两类节点:一类节点为边缘计算任务节点,另一类节点为数据集合节点;
假设计算图共有m层,则最底层,即第m层的各个节点均为数据集合节点,并且,该数据集合节点均为智能终端采集到的工业现场数据序列形成的数据集合,或为智能终端采集到的工业现场数据序列形成的数据集合的子集合;
计算图的第m-1层节点包括至少一个边缘计算任务节点,其对应的边缘计算任务表示为Fm-1,边缘计算任务Fm-1与第m层的至少一个数据集合节点采用向上箭头连接,代表第m层的对应数据集合节点所对应的数据集合输入到边缘计算任务Fm-1,边缘计算任务Fm-1对输入的数据集合进行计算处理后,得到输出数据集合DRm-1,将输出数据集合DRm-1作为数据集合节点,并表示在第m-2层的某个节点,再采用向上箭头,使边缘计算任务Fm-1连接到其输出的输出数据集合DRm-1;
边缘计算任务Fm-1输出的输出数据集合DRm-1,可作为另一个边缘计算任务的输入数据集合或输入数据集合的子集,由此采用自下向上方向,实现各个边缘计算任务之间的数据传递关系;
步骤2.4,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,假设当前计算周期,共汇总到y个待处理的边缘计算任务,形成待处理任务集合f=[f1,f2,...,fy];其中,f1代表第1个待处理的边缘计算任务,f2代表第2个待处理的边缘计算任务,依此类推,fy代表待处理的第y个边缘计算任务;
步骤2.5,任务调度器TDi根据待处理的边缘计算任务的类型,启动对应的第一种任务实时调度模式或第二种任务自适应调度模式;其中,第一种任务实时调度模式采用步骤2.6执行;第二种任务自适应调度模式采用步骤2.7执行;
步骤2.6,第一种实时任务调度模式:第一种任务实时调度模式是指各个待处理的边缘计算任务具有用户设定的允许的最长等待约束时间,具体实现步骤为:
步骤2.6.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID以及用户设定的允许的最长等待约束时间Exta;
步骤2.6.2,任务调度器TDi采用以下方式,对待处理的y个边缘计算任务进行排序,具体排序方法为:
步骤2.6.2.1,对于待处理任务f1,f2,...,fy,以最长等待约束时间从小到大的顺序,对各个待处理任务f1,f2,...,fy进行排序,从而得到待处理任务序列:f[1],f[2],...,f[y],其最长等待约束时间对应为:Ext[1],Ext[2],...,Ext[y];
步骤2.6.2.2,令h=1;
步骤2.6.2.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.6.2.4,查找步骤2.3得到的计算图,以任务f[h]为起点,按从上向下方向,查找到所有与任务f[h]具有从属关系的任务节点,假设共有c个,并对c个任务节点按以下规则排序:规则1,c个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序,从而得到任务f[h]的子任务序列为:f[h1],f[h2],...,f[hc];
步骤2.6.2.5,查找任务调度表,判断子任务序列f[h1],f[h2],...,f[hc]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式一计算时间t[h];如果有,则在子任务序列f[h1],f[h2],...,f[hc]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:f'[h1],f'[h2],...,f'[hd];其中,d为新的子任务序列中的任务数量,再采用公式二计算时间t[h]:
公式一:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+c个子任务f[h1],f[h2],...,f[hc]的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
公式二:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+新的子任务序列f'[h1],f'[h2],...,f'[hd]中各个子任务的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
步骤2.6.2.6,如果时间t[h]大于任务f[h]的最长等待约束时间Ext[h],则向请求任务f[h]的客户端返回无法满足本次服务的通知消息;如果时间t[h]小于等于任务f[h]的最长等待约束时间Ext[h],则执行步骤2.6.2.7;
步骤2.6.2.7,如果子任务序列f[h1],f[h2],...,f[hc]中不存在已存入到任务调度表中的任务,则将任务序列f[h1],f[h2],...,f[hc],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
如果子任务序列f[h1],f[h2],...,f[hc]中存在已存入到任务调度表中的任务,则将新的任务序列f'[h1],f'[h2],...,f'[hd],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.6.2.8,判断h是否等于y,如果等于,则执行步骤2.6.2.9;如果不等于,令h=h+1,返回步骤2.6.2.4;
步骤2.6.2.9,将任务调度表中的最后的任务序列作为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端;
步骤2.7,第二种任务自适应调度模式:第二种任务自适应调度模式是指各个待处理的边缘计算任务不具有用户设定的允许的最长等待约束时间,此时,以所有任务请求的客户端总等待时间最短为目标,对各个待处理的边缘计算任务进行排序;再根据排序结果进行任务调度。
优选的,步骤2.7具体实现步骤为:
步骤2.7.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID;
步骤2.7.2,对于待处理任务f1,f2,...,fy,根据步骤2.3得到的计算图,分析各个任务之间的从属关系,将具有从属关系的任务归到一个从属关系组,并且,属于同一个从属关系组中的各个任务保持与计算图中对应任务相同的级联关系,从而将y个待处理任务f1,f2,...,fy划分为w个从属关系组,分别为:Z1,Z2,...,Zw;其中,具有从属关系的任务是指:父节点A与其子节点A1、子节点A1与其下一级子节点A2,依此类推,形成的具有从属关系的任务;
步骤2.7.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.7.4,对于w个从属关系组Z1,Z2,...,Zw,从每个从属关系组中选择出组内最底层的任务,如果某个从属关系组为空,则不再进行选择,假设本次共选择出w0个任务,根据计算图,分别计算w0个任务中各个任务的总执行时间,选择w0个任务中总执行时间最小的任务,表示为任务f1";
查找步骤2.3得到的计算图,以任务f1"为起点,按从上向下方向,查找到所有与任务f1"具有从属关系的子任务节点,假设共有c1个,并对c1个子任务节点按以下规则排序:规则1,c1个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序;从而得到任务f1"的子任务序列为:f"[11],f"[12],...,f"[1c1];
查找步骤2.7.3预建立的任务调度表,判断子任务序列f"[11],f"[12],...,f"[1c1]中是否存在已存入到任务调度表中的任务,如果没有,则直接将任务序列f"[11],f"[12],...,f"[1c1],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;如果有,则在子任务序列f"[11],f"[12],...,f"[1c1]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为f'[11],f'[12],...,f'[1c2]:其中,c2为新的子任务序列中的任务数量,然后将任务序列f'[11],f'[12],...,f'[1c2],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.7.5,将本次处理的任务f1"从对应的从属关系组中删除,从而对w个从属关系组Z1,Z2,...,Zw进行更新,得到更新后的w个从属关系组Z1,Z2,...,Zw,然后返回步骤2.7.4;
如此不断循环,直到完成对y个处理任务f1,f2,...,fy的排序判断,任务调度表中最后形成的任务序列即为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端。
优选的,步骤2.7.4中,根据计算图,分别计算w0个任务中各个任务的总执行时间,具体方法为:
对于w0个任务中的任意任务F0,查找步骤2.3得到的计算图,以任务F0为起点,按从上向下方向,查找到所有与任务F0具有从属关系的子任务节点,假设共有c2个,从而得到任务F0的子任务序列为:F[1],F[2],...,F[c2];
查找任务调度表,判断子任务序列F[1],F[2],...,F[c2]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式三计算总执行时间t[F];如果有,则在子任务序列F[1],F[2],...,F[c2]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:F'[1],F'[2],...,F'[c3];其中,c3为新的子任务序列中的子任务数量,再采用公式四计算总执行时间t[F]:
公式三:t[F]=c2个子任务F[1],F[2],...,F[c2]的任务固有运行时间之和+任务F0的任务固有运行时间之和;
公式四:t[F]=c3个子任务F'[1],F'[2],...,F'[c3]的任务固有运行时间之和+任务F0的任务固有运行时间之和。
本发明提供的一种基于计算图的边缘计算任务调度方法具有以下优点:
(1)设置两种工作模式,分别为:第一种任务实时调度模式和第二种任务自适应调度模式,可根据用户的使用需求灵活选择,从而全方面满足用户的需求,提高用户的使用体验;
(2)第一种任务实时调度模式能够在有限计算资源的情况下,对边缘计算任务进行合理调度,最大程度提高实时性;第二种任务自适应调度模式,能够使所有任务请求的客户端总等待时间最短,从而提高用户的使用体验。
附图说明
图1为本发明提供的一种基于计算图的边缘计算任务调度方法的流程示意图;
图2为本发明提供的工业云边缘系统构架的示意图;
图3为本发明提供的一种具体的计算图的示意图;
图4为初始建立的从属关系组示意图;
图5为对图4进行更新后的从属关系组示意图;
图6为对图5进行更新后的从属关系组示意图;
图7为对图6进行更新后的从属关系组示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种基于计算图的边缘计算任务调度方法,参考图1,包括以下步骤:
步骤1,构建工业云边缘系统构架;参考图2,为工业云边缘系统构架的示意图,所述工业云边缘系统构架包括:边缘计算任务管理器和边缘服务器;其中,在云端布置所述边缘计算任务管理器;在总监控区域内存在q个基站,在每个基站中布置一台所述边缘服务器,因此,共布置q台边缘服务器,分别为:边缘服务器BF1,边缘服务器BF2,...,边缘服务器BFq;每台所述边缘服务器的监控区域即为对应的所述基站的覆盖范围;
步骤2,对于任意的每台边缘服务器BFi,i=1,2,...,q,配置对应的任务调度器TDi,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,并进行批量处理,具体方法为:
步骤2.1,边缘服务器BFi建立并实时更新本地存储的数据集合表EDSi=(DSi1,DSi2,...,DSip);
其中,p代表边缘服务器BFi监控区域当前包含的智能终端的总数量,本发明中,智能终端既可以为移动智能终端,也可以为固定智能终端,例如,智能终端可以为用于采集工业现场数据的各类传感器,本发明对此并不限制。并且,随着监控的不断进行,当边缘服务器BFi监控到其监控区域加入新的智能终端时,则更新数据集合表EDSi,将新加入的智能终端的数据集合DS加入到数据集合表EDSi;
其中:DSi1,DSi2,...,DSip分别代表边缘服务器BFi包含的第1个智能终端Ii1的数据集合,第2个智能终端Ii2的数据集合,...,第p个智能终端Iip的数据集合;
对于边缘服务器BFi包含的任意的第j个智能终端Iij,其数据集合DSij描述方式为:{Key(BFi,IDij):{Lj=Lt1,Lt2,...,Ltx}},即:采用键值对的方式存储数据,其中,IDij代表边缘服务器BFi的监控区域包含的第j个智能终端Iij的智能终端ID;Lj=Lt1,Lt2,...,Ltx代表从监控开始后,第j个智能终端Iij采集到的工业现场数据序列,即:Lt1代表监控开始后,采集到的第1个工业现场数据,Lt2代表监控开始后,采集到的第2个工业现场数据,依此类推,Ltx代表监控开始后,采集到的第x个工业现场数据,并且,随着监控不断进行,第j个智能终端Iij采集到的最新的工业现场数据不断存入该数据集合DSij,实现对数据集合DSij的实时更新;
步骤2.2,任务调度器TDi汇总边缘服务器BFi上当前已部署的边缘计算任务,假设共有n个已部署的边缘计算任务,从而形成任务集合F=[F1,F2,...,Fn];其中,F1代表第1个边缘计算任务,F2代表第2个边缘计算任务,依此类推,Fn代表第n个边缘计算任务;
对于任意的边缘计算任务Fk,其中,k=1,2,...,n,具有以下属性:任务ID、输入数据集合描述DSk、输出数据集合描述DRk、计算代码包Uk以及任务固有运行时间tk;
本发明中,边缘计算任务是指用于输入数据集合,并输出数据集合的数据处理软件,其中,根据实际应用,可以为各类数据处理软件,例如,对数据求最大值的数据处理软件、对数据求均值或最小值的数据处理软件等,当然,也可以为根据模型进行数据预测的软件等,本发明对边缘计算任务的具体类型并不限制。
步骤2.3,任务调度器TDi对各个边缘计算任务之间的数据传递关系进行关联分析,形成表征边缘计算任务级联依赖关系的计算图;其中,所述计算图包括两类节点:一类节点为边缘计算任务节点,另一类节点为数据集合节点;
假设计算图共有m层,则最底层,即第m层的各个节点均为数据集合节点,并且,该数据集合节点均为智能终端采集到的工业现场数据序列形成的数据集合,或为智能终端采集到的工业现场数据序列形成的数据集合的子集合;
计算图的第m-1层节点包括至少一个边缘计算任务节点,其对应的边缘计算任务表示为Fm-1,边缘计算任务Fm-1与第m层的至少一个数据集合节点采用向上箭头连接,代表第m层的对应数据集合节点所对应的数据集合输入到边缘计算任务Fm-1,边缘计算任务Fm-1对输入的数据集合进行计算处理后,得到输出数据集合DRm-1,将输出数据集合DRm-1作为数据集合节点,并表示在第m-2层的某个节点,再采用向上箭头,使边缘计算任务Fm-1连接到其输出的输出数据集合DRm-1;
边缘计算任务Fm-1输出的输出数据集合DRm-1,可作为另一个边缘计算任务的输入数据集合或输入数据集合的子集,由此采用自下向上方向,实现各个边缘计算任务之间的数据传递关系;
为方便理解,如图3所示,为一种具体的计算图的示例。在图3中,边缘计算任务节点用圆形形状节点表示,数据集合节点用矩形形状节点表示。在图3中,共有6层节点,第6层共有5个数据集合节点,分别为DS1、DS2、DS3、DS4和DS5,其中,DS1可代表第1个传感器直接采集到的工业现场数据序列形成的数据集合;DS2可代表第2个传感器直接采集到的工业现场数据序列形成的数据集合;依此类推,DS5可代表第5个传感器直接采集到的工业现场数据序列形成的数据集合;当然,实际应用中,各个数据集合节点可以相交,存在相同的数据序列。
第5层共有5个边缘计算任务节点,分别为F1、F2、F3、F4和F5。其中,数据集合DS1输入到边缘计算任务F1,经边缘计算任务F1进行数据处理后,输出数据集合DR1。数据集合DS2输入到边缘计算任务F2,经边缘计算任务F2进行数据处理后,输出数据集合DR2。依此类推,数据集合DS5输入到边缘计算任务F5,经边缘计算任务F5进行数据处理后,输出数据集合DR5。
数据集合DR1、DR2和DR3作为输入,输入到边缘计算任务F6,经边缘计算任务F6进行数据处理后,输出数据集合DR6。也就是,对于一个边缘计算任务,可以存在多个输入的数据集合。
因此,采用图3所示的计算图,实现了各个边缘计算任务之间的数据传递关系。
步骤2.4,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,假设当前计算周期,共汇总到y个待处理的边缘计算任务,形成待处理任务集合f=[f1,f2,...,fy];其中,f1代表第1个待处理的边缘计算任务,f2代表第2个待处理的边缘计算任务,依此类推,fy代表待处理的第y个边缘计算任务;
步骤2.5,任务调度器TDi根据待处理的边缘计算任务的类型,启动对应的第一种任务实时调度模式或第二种任务自适应调度模式;其中,第一种任务实时调度模式采用步骤2.6执行;第二种任务自适应调度模式采用步骤2.7执行;
步骤2.6,第一种实时任务调度模式:
第一种任务实时调度模式是指各个待处理的边缘计算任务具有用户设定的允许的最长等待约束时间,具体实现步骤为:
步骤2.6.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID以及用户设定的允许的最长等待约束时间Exta;
步骤2.6.2,任务调度器TDi采用以下方式,对待处理的y个边缘计算任务进行排序,具体排序方法为:
步骤2.6.2.1,对于待处理任务f1,f2,...,fy,以最长等待约束时间从小到大的顺序,对各个待处理任务f1,f2,...,fy进行排序,从而得到待处理任务序列:f[1],f[2],...,f[y],其最长等待约束时间对应为:Ext[1],Ext[2],...,Ext[y];
步骤2.6.2.2,令h=1;
步骤2.6.2.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.6.2.4,查找步骤2.3得到的计算图,以任务f[h]为起点,按从上向下方向,查找到所有与任务f[h]具有从属关系的任务节点,假设共有c个,并对c个任务节点按以下规则排序:规则1,c个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序,从而得到任务f[h]的子任务序列为:f[h1],f[h2],...,f[hc];
步骤2.6.2.5,查找任务调度表,判断子任务序列f[h1],f[h2],...,f[hc]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式一计算时间t[h];如果有,则在子任务序列f[h1],f[h2],...,f[hc]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:f'[h1],f'[h2],...,f'[hd];其中,d为新的子任务序列中的任务数量,再采用公式二计算时间t[h]:
公式一:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+c个子任务f[h1],f[h2],...,f[hc]的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
公式二:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+新的子任务序列f'[h1],f'[h2],...,f'[hd]中各个子任务的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
步骤2.6.2.6,如果时间t[h]大于任务f[h]的最长等待约束时间Ext[h],则向请求任务f[h]的客户端返回无法满足本次服务的通知消息;如果时间t[h]小于等于任务f[h]的最长等待约束时间Ext[h],则执行步骤2.6.2.7;
步骤2.6.2.7,如果子任务序列f[h1],f[h2],...,f[hc]中不存在已存入到任务调度表中的任务,则将任务序列f[h1],f[h2],...,f[hc],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
如果子任务序列f[h1],f[h2],...,f[hc]中存在已存入到任务调度表中的任务,则将新的任务序列f'[h1],f'[h2],...,f'[hd],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.6.2.8,判断h是否等于y,如果等于,则执行步骤2.6.2.9;如果不等于,令h=h+1,返回步骤2.6.2.4;
步骤2.6.2.9,将任务调度表中的最后的任务序列作为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端;
为方便对第一种实时任务调度模式进行理解,以图3所示计算图为例,下面列举实施例一和实施例二:
实施例一:
假设当前周期,共汇总到2个待处理的边缘计算任务,分别为:f1和f2;
其中,f1为:请求边缘计算任务F8的处理结果,用户设定的允许的最长等待约束时间为15分钟;
f2为:请求边缘计算任务F7的处理结果,用户设定的允许的最长等待约束时间为7分钟;
由于用户请求具有最长等待约束时间,因此,此时启动第一种任务实时调度模式。
1)以最长等待约束时间从小到大的顺序,对f1和f2排序,从而得到待处理任务序列为:f2,f1。
2)首先处理f2,方法为:
2.1)查找图3的计算图,与F7具有从属关系的任务节点分别为:F3,F4,F5;由于F3,F4,F5处于同一层,因此,随机排序F3,F4,F5,假设随机排序结果为:F4,F5,F3;
2.2)查找任务调度表,F4,F5,F3均不存在于任务调度表中,因此,计算运行时间t[1]=F4,F5,F3的任务固有运行时间之和+任务F7的任务固有运行时间之和;
比较t[1]和用户设定的允许的最长等待约束时间7分钟之间的大小关系,如果t[1]大于7分钟,则向请求任务f1的客户端返回无法满足本次服务的通知消息;否则,继续后续步骤;
2.3)将任务序列F4,F5,F3、F7存入任务调度表中;
3)首先处理f1,方法为:
3.1)查找计算图,以F8为起点,查找到所有与任务F8具有从属关系的任务节点,分别为:F6,F4,F1,F2,F3。
对F6,F4,F1,F2,F3进行排序,方法为:F1,F2,F3随机排列,并均位于F6的前面,F4随机排列,假设得到任务序列为:F1,F2,F3,F4,F6。
3.2)查找任务调度表,F3,F4已存在于任务调度表中,因此,去除F3,F4,得到新的子任务序列F1,F2,F6。
采用下式计算运行时间t[1]=F4,F5,F3、F7的任务固有运行时间之和+F1,F2,F6的任务固有运行时间之和+任务F8的任务固有运行时间;
比较t[1]和用户设定的允许的最长等待约束时间15分钟之间的大小关系,如果t[1]大于15分钟,则向请求任务f2的客户端返回无法满足本次服务的通知消息;否则,继续后续步骤;
3.3)将F1,F2,F6,F8存入任务调度表中,并位于任务调度表中已存在的任务序列的后面;
因此,任务调度表中的最后的任务序列为:F4,F5,F3,F7,F1,F2,F6,F8。按此任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端。
实施例二:
假设当前周期,共汇总到2个待处理的边缘计算任务,分别为:f1、f2和f3;
其中,f1为:请求边缘计算任务F1的处理结果,用户设定的允许的最长等待约束时间为3分钟;
f2为:请求边缘计算任务F3的处理结果,用户设定的允许的最长等待约束时间为2分钟;
f3为:请求边缘计算任务F7的处理结果,用户设定的允许的最长等待约束时间为7分钟;
由于用户请求具有最长等待约束时间,因此,此时启动第一种任务实时调度模式。
1)以最长等待约束时间从小到大的顺序,对f1、f2和f3排序,从而得到待处理任务序列为:f2,f1,f3。
2)首先处理f2,方法为:
2.1)F3位于计算图的最底层,不具有具有从属关系的子任务节点,因此,将F3的固有运行时间和2分钟比较,如果F3的固有运行时间大于2分钟,则向请求客户端返回无法满足本次服务的通知消息;否则,继续后续步骤;
2.2)将任务F3存入任务调度表中;
3)处理f1,方法为:
3.1)F1位于计算图的最底层,不具有具有从属关系的子任务节点,则计算运行时间t[1]为F3和F1的任务固有运行时间之和;
将运行时间t[1]和3分钟比较,如果t[1]大于2分钟,则向请求客户端返回无法满足本次服务的通知消息;否则,继续后续步骤;
3.2)将F1存入任务调度表中,并位于任务调度表中已存在的任务序列的后面,即:位于任务F3的后面;
4)处理f3,方法为:
4.1)查找计算图,以F7为起点,查找到所有与任务F7具有从属关系的子任务节点,分别为:F3,F4,F5。
F3,F4,F5为同一层,因此,随机排序,假设排序结果为:F3,F5,F4;
4.2)查找任务调度表,F3已存在于任务调度表中,因此,去除F3,得到新的子任务序列F5,F4;
采用下式计算运行时间t[1]=F3,F1的任务固有运行时间之和+F5,F4的任务固有运行时间之和+任务F7的任务固有运行时间;
比较t[1]和用户设定的允许的最长等待约束时间7分钟之间的大小关系,如果t[1]大于7分钟,则向请求任务的客户端返回无法满足本次服务的通知消息;否则,继续后续步骤;
4.3)将任务序列F5,F4,F7存入任务调度表中,并位于任务调度表中已存在的任务序列的后面;
因此,任务调度表中的最后的任务序列为:F3,F1,F5,F4,F7。按此任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端。
步骤2.7,第二种任务自适应调度模式:
第二种任务自适应调度模式是指各个待处理的边缘计算任务不具有用户设定的允许的最长等待约束时间,此时,以所有任务请求的客户端总等待时间最短为目标,对各个待处理的边缘计算任务进行排序;再根据排序结果进行任务调度。
步骤2.7具体实现步骤为:
步骤2.7.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID;
步骤2.7.2,对于待处理任务f1,f2,...,fy,根据步骤2.3得到的计算图,分析各个任务之间的从属关系,将具有从属关系的任务归到一个从属关系组,并且,属于同一个从属关系组中的各个任务保持与计算图中对应任务相同的级联关系,从而将y个待处理任务f1,f2,...,fy划分为w个从属关系组,分别为:Z1,Z2,...,Zw;其中,具有从属关系的任务是指:父节点A与其子节点A1、子节点A1与其下一级子节点A2,依此类推,形成的具有从属关系的任务;
步骤2.7.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.7.4,对于w个从属关系组Z1,Z2,...,Zw,从每个从属关系组中选择出组内最底层的任务,如果某个从属关系组为空,则不再进行选择,假设本次共选择出w0个任务,根据计算图,分别计算w0个任务中各个任务的总执行时间,选择w0个任务中总执行时间最小的任务,表示为任务f1";
其中,根据计算图,分别计算w0个任务中各个任务的总执行时间,具体方法为:
对于w0个任务中的任意任务F0,查找步骤2.3得到的计算图,以任务F0为起点,按从上向下方向,查找到所有与任务F0具有从属关系的子任务节点,假设共有c2个,从而得到任务F0的子任务序列为:F[1],F[2],...,F[c2];
查找任务调度表,判断子任务序列F[1],F[2],...,F[c2]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式三计算总执行时间t[F];如果有,则在子任务序列F[1],F[2],...,F[c2]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:F'[1],F'[2],...,F'[c3];其中,c3为新的子任务序列中的子任务数量,再采用公式四计算总执行时间t[F]:
公式三:t[F]=c2个子任务F[1],F[2],...,F[c2]的任务固有运行时间之和+任务F0的任务固有运行时间之和;
公式四:t[F]=c3个子任务F'[1],F'[2],...,F'[c3]的任务固有运行时间之和+任务F0的任务固有运行时间之和。
然后,查找步骤2.3得到的计算图,以任务f1"为起点,按从上向下方向,查找到所有与任务f1"具有从属关系的子任务节点,假设共有c1个,并对c1个子任务节点按以下规则排序:规则1,c1个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序;从而得到任务f1"的子任务序列为:f"[11],f"[12],...,f"[1c1];
查找步骤2.7.3预建立的任务调度表,判断子任务序列f"[11],f"[12],...,f"[1c1]中是否存在已存入到任务调度表中的任务,如果没有,则直接将任务序列f"[11],f"[12],...,f"[1c1],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;如果有,则在子任务序列f"[11],f"[12],...,f"[1c1]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为f'[11],f'[12],...,f'[1c2]:其中,c2为新的子任务序列中的任务数量,然后将任务序列f'[11],f'[12],...,f'[1c2],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.7.5,将本次处理的任务f1"从对应的从属关系组中删除,从而对w个从属关系组Z1,Z2,...,Zw进行更新,得到更新后的w个从属关系组Z1,Z2,...,Zw,然后返回步骤2.7.4;
如此不断循环,直到完成对y个处理任务f1,f2,...,fy的排序判断,任务调度表中最后形成的任务序列即为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端。
为方便对第二种任务自适应调度模式进行理解,以图3所示计算图为例,下面列举实施例三:
实施例三:
在用户发出的请求不注明时间约束的情况下,任务管理器自动编排各个边缘计算任务,目标是让客户总等待时间最短,即尽量快的形成各个边缘计算任务结果。
假设当前周期,共汇总到4个待处理的边缘计算任务,分别为:f1、f2、f3和f4;
其中:
f1为:请求边缘计算任务F6的处理结果;
f2为:请求边缘计算任务F7的处理结果;
f3为:请求边缘计算任务F8的处理结果;
f4为:请求边缘计算任务F5的处理结果;
1)对于任务F6、F7、F8、F5,分析各个任务之间的从属关系,将具有从属关系的任务归到一个从属关系组,得到图4所示的两个从属关系组:其中,第1个从属关系组包括任务F6和任务F8;第2个从属关系组包括任务F5和任务F7;
2)从第1个从属关系组中选择组内最底层的任务,为任务F6;从第2个从属关系组中选择组内最底层的任务,为任务F5;
3)计算任务F6的总执行时间以及任务F5的总执行时间;
其中,任务F6总执行时间计算方式为:
查找计算图,以任务F6为起点,按从上向下方向,查找到所有与任务F6具有从属关系的子任务节点,得到子任务序列为:F1,F2,F3;
查找任务调度表,子任务序列F1,F2,F3均不存在于任务调度表中,因此,总执行时间为:F1,F2,F3的任务固有运行时间之和+任务F6的任务固有运行时间之和;
任务F5的总执行时间即为任务F5的任务固有运行时间。
4)比较任务F6的总执行时间以及任务F5的总执行时间,假设任务F5的总执行时间小,因此,任务F5存入任务调度表中;
5)在将任务F5存入任务调度表中后,对图4进行更新,得到图5所示的从属关系组图;
6)以图5为基础,从第1个从属关系组中选择组内最底层的任务,为任务F6;从第2个从属关系组中选择组内最底层的任务,为任务F7;
7)计算任务F6的总执行时间以及任务F7的总执行时间;
此时,任务F7的总执行时间为:任务F3、F4和F7的任务固有运行时间之和。
任务F6的总执行时间为:任务F1、F2、F3和F6的任务固有运行时间之和
8)比较任务F6的总执行时间以及任务F7的总执行时间,假设任务F7的总执行时间小,此时,查找计算图,查找任务F7的具有从属关系的子任务节点,分别为:任务F3、F4、F5;其中,由于任务F3、F4、F5属于同一层,因此,随机排序,假设排序结果为:F3、F5、F4;由于此时F5已存入到任务调度表中,因此,从F3、F5、F4中删除F5,得到新的子任务序列为F3、F4;再将F3、F4、F7存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面,即:位于F5的后面。此时,任务调度表中已录入的任务序列为:F5、F3、F4、F7。
9)在将任务F7存入任务调度表中后,对图5进行更新,得到图6所示的从属关系组图;
10)以图6为基础,由于第2个从属关系组为空,因此,首先从第1个从属关系组中选择组内最底层的任务,为任务F6,由于此时不需要与其他从属关系组中的任务比较,因此,直接查找计算图,得到任务F6的具有从属关系的子任务节点,分别为:任务F1、F2、F3;其中,去掉F3,得到新的子任务序列为F1、F2;因此,将F1、F2,F6存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面。
11)在将任务F6存入任务调度表中后,对图6进行更新,得到图7所示的从属关系组图;
12)以图7为基础,由于第2个从属关系组为空,因此,从第1个从属关系组中选择组内最底层的任务,为任务F8,由于此时不需要与其他从属关系组中的任务比较,因此,直接查找计算图,得到任务F8的具有从属关系的子任务节点,分别为:任务F1、F2、F3、F4和F6;其中,任务F1、F2、F3、F4和F6均已存在于任务调度表中,因此,仅需将任务F8存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面。
因此,任务调度表中最终的任务序列为:F5、F3、F4、F7、F1、F2,F6、F8。
采用以上第二种任务自适应调度模式,可以实现所有任务请求的客户端总等待时间最短的优点。
本发明提供一种基于计算图的边缘计算任务调度方法,具有以下优点:
(1)设置两种工作模式,分别为:第一种任务实时调度模式和第二种任务自适应调度模式,可根据用户的使用需求灵活选择,从而全方面满足用户的需求,提高用户的使用体验;
(2)第一种任务实时调度模式能够在有限计算资源的情况下,对边缘计算任务进行合理调度,最大程度提高实时性;第二种任务自适应调度模式,能够使所有任务请求的客户端总等待时间最短,从而提高用户的使用体验。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (3)
1.一种基于计算图的边缘计算任务调度方法,其特征在于,包括以下步骤:
步骤1,构建工业云边缘系统构架;所述工业云边缘系统构架包括:边缘计算任务管理器和边缘服务器;其中,在云端布置所述边缘计算任务管理器;在总监控区域内存在q个基站,在每个基站中布置一台所述边缘服务器,因此,共布置q台边缘服务器,分别为:边缘服务器BF1,边缘服务器BF2,...,边缘服务器BFq;每台所述边缘服务器的监控区域即为对应的所述基站的覆盖范围;
步骤2,对于任意的每台边缘服务器BFi,i=1,2,...,q,配置对应的任务调度器TDi,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,并进行批量处理,具体方法为:
步骤2.1,边缘服务器BFi建立并实时更新本地存储的数据集合表EDSi=(DSi1,DSi2,...,DSip);
其中,p代表边缘服务器BFi监控区域当前包含的智能终端的总数量,并且,随着监控的不断进行,当边缘服务器BFi监控到其监控区域加入新的智能终端时,则更新数据集合表EDSi,将新加入的智能终端的数据集合DS加入到数据集合表EDSi;
其中:DSi1,DSi2,...,DSip分别代表边缘服务器BFi包含的第1个智能终端Ii1的数据集合,第2个智能终端Ii2的数据集合,...,第p个智能终端Iip的数据集合;
对于边缘服务器BFi包含的任意的第j个智能终端Iij,其数据集合DSij描述方式为:{Key(BFi,IDij):{Lj=Lt1,Lt2,...,Ltx}},即:采用键值对的方式存储数据,其中,IDij代表边缘服务器BFi的监控区域包含的第j个智能终端Iij的智能终端ID;Lj=Lt1,Lt2,...,Ltx代表从监控开始后,第j个智能终端Iij采集到的工业现场数据序列,即:Lt1代表监控开始后,采集到的第1个工业现场数据,Lt2代表监控开始后,采集到的第2个工业现场数据,依此类推,Ltx代表监控开始后,采集到的第x个工业现场数据,并且,随着监控不断进行,第j个智能终端Iij采集到的最新的工业现场数据不断存入该数据集合DSij,实现对数据集合DSij的实时更新;
步骤2.2,任务调度器TDi汇总边缘服务器BFi上当前已部署的边缘计算任务,假设共有n个已部署的边缘计算任务,从而形成任务集合F=[F1,F2,...,Fn];其中,F1代表第1个边缘计算任务,F2代表第2个边缘计算任务,依此类推,Fn代表第n个边缘计算任务;
对于任意的边缘计算任务Fk,其中,k=1,2,...,n,具有以下属性:任务ID、输入数据集合描述DSk、输出数据集合描述DRk、计算代码包Uk以及任务固有运行时间tk;
步骤2.3,任务调度器TDi对各个边缘计算任务之间的数据传递关系进行关联分析,形成表征边缘计算任务级联依赖关系的计算图;其中,所述计算图包括两类节点:一类节点为边缘计算任务节点,另一类节点为数据集合节点;
假设计算图共有m层,则最底层,即第m层的各个节点均为数据集合节点,并且,该数据集合节点均为智能终端采集到的工业现场数据序列形成的数据集合,或为智能终端采集到的工业现场数据序列形成的数据集合的子集合;
计算图的第m-1层节点包括至少一个边缘计算任务节点,其对应的边缘计算任务表示为Fm-1,边缘计算任务Fm-1与第m层的至少一个数据集合节点采用向上箭头连接,代表第m层的对应数据集合节点所对应的数据集合输入到边缘计算任务Fm-1,边缘计算任务Fm-1对输入的数据集合进行计算处理后,得到输出数据集合DRm-1,将输出数据集合DRm-1作为数据集合节点,并表示在第m-2层的某个节点,再采用向上箭头,使边缘计算任务Fm-1连接到其输出的输出数据集合DRm-1;
边缘计算任务Fm-1输出的输出数据集合DRm-1,可作为另一个边缘计算任务的输入数据集合或输入数据集合的子集,由此采用自下向上方向,实现各个边缘计算任务之间的数据传递关系;
步骤2.4,任务调度器TDi每隔周期T,汇总边缘服务器BFi待处理的边缘计算任务,假设当前计算周期,共汇总到y个待处理的边缘计算任务,形成待处理任务集合f=[f1,f2,...,fy];其中,f1代表第1个待处理的边缘计算任务,f2代表第2个待处理的边缘计算任务,依此类推,fy代表待处理的第y个边缘计算任务;
步骤2.5,任务调度器TDi根据待处理的边缘计算任务的类型,启动对应的第一种任务实时调度模式或第二种任务自适应调度模式;其中,第一种任务实时调度模式采用步骤2.6执行;第二种任务自适应调度模式采用步骤2.7执行;
步骤2.6,第一种实时任务调度模式:第一种任务实时调度模式是指各个待处理的边缘计算任务具有用户设定的允许的最长等待约束时间,具体实现步骤为:
步骤2.6.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID以及用户设定的允许的最长等待约束时间Exta;
步骤2.6.2,任务调度器TDi采用以下方式,对待处理的y个边缘计算任务进行排序,具体排序方法为:
步骤2.6.2.1,对于待处理任务f1,f2,...,fy,以最长等待约束时间从小到大的顺序,对各个待处理任务f1,f2,...,fy进行排序,从而得到待处理任务序列:f[1],f[2],...,f[y],其最长等待约束时间对应为:Ext[1],Ext[2],...,Ext[y];
步骤2.6.2.2,令h=1;
步骤2.6.2.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.6.2.4,查找步骤2.3得到的计算图,以任务f[h]为起点,按从上向下方向,查找到所有与任务f[h]具有从属关系的任务节点,假设共有c个,并对c个任务节点按以下规则排序:规则1,c个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序,从而得到任务f[h]的子任务序列为:f[h1],f[h2],...,f[hc];
步骤2.6.2.5,查找任务调度表,判断子任务序列f[h1],f[h2],...,f[hc]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式一计算时间t[h];如果有,则在子任务序列f[h1],f[h2],...,f[hc]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:f'[h1],f'[h2],...,f'[hd];其中,d为新的子任务序列中的任务数量,再采用公式二计算时间t[h]:
公式一:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+c个子任务f[h1],f[h2],...,f[hc]的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
公式二:t[h]=任务调度表中已存入的各个任务的任务固有运行时间之和+新的子任务序列f'[h1],f'[h2],...,f'[hd]中各个子任务的任务固有运行时间之和+任务f[h]的任务固有运行时间之和;
步骤2.6.2.6,如果时间t[h]大于任务f[h]的最长等待约束时间Ext[h],则向请求任务f[h]的客户端返回无法满足本次服务的通知消息;如果时间t[h]小于等于任务f[h]的最长等待约束时间Ext[h],则执行步骤2.6.2.7;
步骤2.6.2.7,如果子任务序列f[h1],f[h2],...,f[hc]中不存在已存入到任务调度表中的任务,则将任务序列f[h1],f[h2],...,f[hc],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
如果子任务序列f[h1],f[h2],...,f[hc]中存在已存入到任务调度表中的任务,则将新的任务序列f'[h1],f'[h2],...,f'[hd],f[h]存入任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.6.2.8,判断h是否等于y,如果等于,则执行步骤2.6.2.9;如果不等于,令h=h+1,返回步骤2.6.2.4;
步骤2.6.2.9,将任务调度表中的最后的任务序列作为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端;
步骤2.7,第二种任务自适应调度模式:第二种任务自适应调度模式是指各个待处理的边缘计算任务不具有用户设定的允许的最长等待约束时间,此时,以所有任务请求的客户端总等待时间最短为目标,对各个待处理的边缘计算任务进行排序;再根据排序结果进行任务调度。
2.根据权利要求1所述的基于计算图的边缘计算任务调度方法,其特征在于,步骤2.7具体实现步骤为:
步骤2.7.1,对于任意的待处理的边缘计算任务fa,其中,a=1,2,...,y,具有以下属性:任务ID;
步骤2.7.2,对于待处理任务f1,f2,...,fy,根据步骤2.3得到的计算图,分析各个任务之间的从属关系,将具有从属关系的任务归到一个从属关系组,并且,属于同一个从属关系组中的各个任务保持与计算图中对应任务相同的级联关系,从而将y个待处理任务f1,f2,...,fy划分为w个从属关系组,分别为:Z1,Z2,...,Zw;其中,具有从属关系的任务是指:父节点A与其子节点A1、子节点A1与其下一级子节点A2,依此类推,形成的具有从属关系的任务;
步骤2.7.3,预建立任务调度表;初始时,任务调度表为空;
步骤2.7.4,对于w个从属关系组Z1,Z2,...,Zw,从每个从属关系组中选择出组内最底层的任务,如果某个从属关系组为空,则不再进行选择,假设本次共选择出w0个任务,根据计算图,分别计算w0个任务中各个任务的总执行时间,选择w0个任务中总执行时间最小的任务,表示为任务f1";
查找步骤2.3得到的计算图,以任务f1"为起点,按从上向下方向,查找到所有与任务f1"具有从属关系的子任务节点,假设共有c1个,并对c1个子任务节点按以下规则排序:规则1,c1个子任务节点中,优先将下层子任务节点排在上层子任务节点的前面;规则2,对于属于同一层的子任务节点,进行随机排序;从而得到任务f1"的子任务序列为:f"[11],f"[12],...,f"[1c1];
查找步骤2.7.3预建立的任务调度表,判断子任务序列f"[11],f"[12],...,f"[1c1]中是否存在已存入到任务调度表中的任务,如果没有,则直接将任务序列f"[11],f"[12],...,f"[1c1],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;如果有,则在子任务序列f"[11],f"[12],...,f"[1c1]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为f'[11],f'[12],...,f'[1c2]:其中,c2为新的子任务序列中的任务数量,然后将任务序列f'[11],f'[12],...,f'[1c2],f1"存入到任务调度表中,并置于任务调度表中已存在的任务序列的后面;
步骤2.7.5,将本次处理的任务f1"从对应的从属关系组中删除,从而对w个从属关系组Z1,Z2,...,Zw进行更新,得到更新后的w个从属关系组Z1,Z2,...,Zw,然后返回步骤2.7.4;
如此不断循环,直到完成对y个处理任务f1,f2,...,fy的排序判断,任务调度表中最后形成的任务序列即为最终的调度任务序列,按最终的调度任务序列的任务顺序,依次执行各个任务,在各个任务执行过程中,一旦得到与某个客户端请求对应的结果,立即返回给对应的客户端。
3.根据权利要求2所述的基于计算图的边缘计算任务调度方法,其特征在于,步骤2.7.4中,根据计算图,分别计算w0个任务中各个任务的总执行时间,具体方法为:
对于w0个任务中的任意任务F0,查找步骤2.3得到的计算图,以任务F0为起点,按从上向下方向,查找到所有与任务F0具有从属关系的子任务节点,假设共有c2个,从而得到任务F0的子任务序列为:F[1],F[2],...,F[c2];
查找任务调度表,判断子任务序列F[1],F[2],...,F[c2]中是否存在已存入到任务调度表中的任务,如果没有,则采用公式三计算总执行时间t[F];如果有,则在子任务序列F[1],F[2],...,F[c2]中删除掉已存入到任务调度表中的任务,得到新的子任务序列,表示为:F'[1],F'[2],...,F'[c3];其中,c3为新的子任务序列中的子任务数量,再采用公式四计算总执行时间t[F]:
公式三:t[F]=c2个子任务F[1],F[2],...,F[c2]的任务固有运行时间之和+任务F0的任务固有运行时间之和;
公式四:t[F]=c3个子任务F'[1],F'[2],...,F'[c3]的任务固有运行时间之和+任务F0的任务固有运行时间之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011141855.8A CN112272227B (zh) | 2020-10-22 | 2020-10-22 | 一种基于计算图的边缘计算任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011141855.8A CN112272227B (zh) | 2020-10-22 | 2020-10-22 | 一种基于计算图的边缘计算任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112272227A true CN112272227A (zh) | 2021-01-26 |
CN112272227B CN112272227B (zh) | 2022-04-15 |
Family
ID=74342222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011141855.8A Active CN112272227B (zh) | 2020-10-22 | 2020-10-22 | 一种基于计算图的边缘计算任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112272227B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915629A (zh) * | 2021-02-10 | 2022-08-16 | 中国移动通信有限公司研究院 | 信息处理方法、装置、系统、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385743A (zh) * | 2010-08-30 | 2012-03-21 | 富士通半导体股份有限公司 | 图像处理装置、图像处理方法和调度装置 |
US20190116128A1 (en) * | 2017-10-18 | 2019-04-18 | Futurewei Technologies, Inc. | Dynamic allocation of edge computing resources in edge computing centers |
CN110213036A (zh) * | 2019-06-17 | 2019-09-06 | 西安电子科技大学 | 基于物联网雾计算-边缘计算的安全数据存储和计算方法 |
KR102068676B1 (ko) * | 2018-07-31 | 2020-01-21 | 중앙대학교 산학협력단 | 다중 계층 엣지 컴퓨팅에서 패턴 식별을 이용하여 실시간으로 작업을 스케쥴링 하는 방법 및 그 시스템 |
US20200133735A1 (en) * | 2018-10-31 | 2020-04-30 | EMC IP Holding Company LLC | Method, device, and computer program product for assigning tasks to dedicated processing resources |
CN111427679A (zh) * | 2020-03-25 | 2020-07-17 | 中国科学院自动化研究所 | 面向边缘计算的计算任务调度方法、系统、装置 |
CN111427681A (zh) * | 2020-02-19 | 2020-07-17 | 上海交通大学 | 边缘计算中基于资源监控的实时任务匹配调度系统和方法 |
-
2020
- 2020-10-22 CN CN202011141855.8A patent/CN112272227B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385743A (zh) * | 2010-08-30 | 2012-03-21 | 富士通半导体股份有限公司 | 图像处理装置、图像处理方法和调度装置 |
US20190116128A1 (en) * | 2017-10-18 | 2019-04-18 | Futurewei Technologies, Inc. | Dynamic allocation of edge computing resources in edge computing centers |
KR102068676B1 (ko) * | 2018-07-31 | 2020-01-21 | 중앙대학교 산학협력단 | 다중 계층 엣지 컴퓨팅에서 패턴 식별을 이용하여 실시간으로 작업을 스케쥴링 하는 방법 및 그 시스템 |
US20200133735A1 (en) * | 2018-10-31 | 2020-04-30 | EMC IP Holding Company LLC | Method, device, and computer program product for assigning tasks to dedicated processing resources |
CN110213036A (zh) * | 2019-06-17 | 2019-09-06 | 西安电子科技大学 | 基于物联网雾计算-边缘计算的安全数据存储和计算方法 |
CN111427681A (zh) * | 2020-02-19 | 2020-07-17 | 上海交通大学 | 边缘计算中基于资源监控的实时任务匹配调度系统和方法 |
CN111427679A (zh) * | 2020-03-25 | 2020-07-17 | 中国科学院自动化研究所 | 面向边缘计算的计算任务调度方法、系统、装置 |
Non-Patent Citations (5)
Title |
---|
YINHAO HUANG 等: "Cost Efficient Offloading Strategy for DNN-Based Applications in Edge-Cloud Environment", 《2019 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING 》 * |
王汝言等: "社会属性感知的边缘计算任务调度策略", 《电子与信息学报》 * |
秦冬阳: "边缘云计算中任务调度和资源管理研究", 《中国优秀硕士学位论文全文数据库》 * |
简琤峰 等: "面向边缘计算的Storm边缘节点调度优化方法", 《计算机科学》 * |
马原野等: "边缘计算及其标准化工作探索", 《信息技术与标准化》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915629A (zh) * | 2021-02-10 | 2022-08-16 | 中国移动通信有限公司研究院 | 信息处理方法、装置、系统、电子设备及存储介质 |
WO2022171082A1 (zh) * | 2021-02-10 | 2022-08-18 | 中国移动通信有限公司研究院 | 信息处理方法、装置、系统、电子设备及存储介质 |
CN114915629B (zh) * | 2021-02-10 | 2023-08-15 | 中国移动通信有限公司研究院 | 信息处理方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112272227B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015196911A1 (zh) | 数据挖掘方法和节点 | |
CN102724219A (zh) | 网络数据的计算机处理方法及系统 | |
CN112256429A (zh) | 基于计算图和工业云边缘系统的数据请求处理方法 | |
Butakov et al. | Multitenant approach to crawling of online social networks | |
CN112272227B (zh) | 一种基于计算图的边缘计算任务调度方法 | |
CN108833227B (zh) | 一种基于边缘计算的智能家居通信优化调度系统及方法 | |
Zhang et al. | Dynamic DNN decomposition for lossless synergistic inference | |
Chai et al. | A parallel placement approach for service function chain using deep reinforcement learning | |
Low | Dynamic load-balancing for bsp time warp | |
CN111324429A (zh) | 一种基于多代血统参考距离的微服务组合调度方法 | |
CN111741069B (zh) | 基于sdn和nfv分层式数据中心资源优化方法和系统 | |
CN113641448A (zh) | 一种边缘计算容器分配和层下载排序体系结构及其方法 | |
Saemi et al. | A new optimization approach for task scheduling problem using water cycle algorithm in mobile cloud computing | |
CN111008873B (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
WO2023093255A1 (zh) | 聚类集合的确定方法和装置、存储介质及电子装置 | |
CN111049900A (zh) | 一种物联网流计算调度方法、装置和电子设备 | |
CN116089083A (zh) | 一种多目标数据中心资源调度方法 | |
Wang et al. | An efficient framework for online virtual network embedding in virtualized cloud data centers | |
Ikhelef et al. | Efficient Decomposition-Based Methods for Optimal VNF Placement and Chaining | |
CN113347268A (zh) | 基于分布式网络组网方法、装置、存储介质及计算机设备 | |
CN111190606A (zh) | 一种大数据集群的自动化部署方法 | |
CN107766442A (zh) | 一种海量数据关联规则挖掘方法及系统 | |
CN117201319B (zh) | 一种基于边缘计算的微服务部署方法及系统 | |
CN116436978B (zh) | 面向云计算的内存分配方法、内存获取方法、装置和设备 | |
CN115145711B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |