CN114661431A - 一种任务调度方法、存储介质及终端设备 - Google Patents
一种任务调度方法、存储介质及终端设备 Download PDFInfo
- Publication number
- CN114661431A CN114661431A CN202011540175.3A CN202011540175A CN114661431A CN 114661431 A CN114661431 A CN 114661431A CN 202011540175 A CN202011540175 A CN 202011540175A CN 114661431 A CN114661431 A CN 114661431A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- task
- determining
- strategy
- strategies
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种任务调度方法、存储介质及终端设备,所述方法包括确定若干调度任务对应的调度序列;确定若干调度任务对应的若干调度策略;基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,并按照所述目标调度策略确定各调度任务各自对应的执行设备;按照各调度任务各自对应的调度顺序,将各调度任务调度至其对应的执行设备。本发明通过以调度时间和调度能耗约束条件对调度策略进行寻优,平衡调度任务的调度时间以及执行设备的运行能耗,以保证各执行设备构成的边云协同***的运行效率,从而可以提高资源利用率。
Description
技术领域
本申请涉及边缘计算技术领域,特别涉及一种任务调度方法、存储介质及终端设备。
背景技术
边缘计算是在网络的边缘进行处理和分析数据,它是一种新兴的分布式计算模型,作为云数据中心和终端设备之间的中间层来为设备提供计算、存储和管理。相比云计算,边缘计算在地理位置上更加接近智能终端设备,通过利用已有的网络设备去部署,实现边云协同。但是,现有边缘协同***中普遍存在部分设备超过负载而部分设备具有大量空闲资源的现象,从而造成资源浪费。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种任务调度方法、存储介质及终端设备。
为了解决上述技术问题,本申请实施例第一方面提供了一种任务调度方法,所述方法包括:
确定若干调度任务对应的调度序列;
基于所述调度序列,确定若干调度任务对应的若干调度策略,其中,所述调度策略用于反映各调度任务对应的执行设备;
基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,其中,所述预设的约束条件包括时间约束和能耗约束;
按照所述目标调度策略调度若干调度任务。
所述的任务调度方法,其中,所述确定若干调度任务对应的调度序列具体包括:
对于若干调度任务中的每个调度任务,获取该调度任务属于若干预设任务类别中的每个预设任务类别的概率值以及类别权重;
基于各预设任务类别各自对应的概率值以及类别权重,确定该调度任务对应的调度顺序度;
根据各调度任务各自对应的调度顺序度,确定若干调度任务对应的调度序列。
所述的任务调度方法,其中,所述基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
基于预设的约束条件,确定各调度策略各自对应的适应度,其中,所述适应度用于反映调度策略的调度性能;
基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略。
所述的任务调度方法,其中,所述基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
将若干调度策略作为第一种群;
基于所述适应度确定所述第一种群对应的第二种群,其中,所述第二种群包括第一种群中的部分调度策略;
基于预设的约束条件确定第二种群中的各调度策略的适应度;
基于适应度在第二种群中选取参考调度策略以及若干参照调度策略,其中,参考调度策略为第二种群中适应度最小的调度策略;
基于预设的约束条件,确定参考调度策略以及若干参照调度策略各自对应的适应度;
将参考调度策略以及若干参照调度策略作为第一种群,并继续执行基于所述适应度确定所述第一种群对应的第二种群的步骤,直至执行次数满足预设条件,将所述参考调度策略作为目标调度策略。
所述的任务调度方法,其中,所述基于所述适应度确定所述第一种群对应的第二种群具体包括:
按照适应度由小到大的顺序在所述第一种群中选取预设数量的候选调度策略;
对选取到的候选调度策略进行交叉操作,得到若干第一调度策略;
将若干第一调度策略作为候选种群,并对所述候选种群进行***操作以得到第二种群。
所述的任务调度方法,其中,所述基于适应度在第二种群中选取参考调度策略以及若干参照调度策略具体包括:
选取第二种群中适应度最小的调度策略,并将选取到的调度策略作为参考调度策略;
对第二种群中除参考调度策略外的各调度策略进行轮盘赌选择,以得到若干参照调度策略。
所述的任务调度方法,其中,所述基于预设的约束条件,确定各调度策略各自对应的适应度具体包括:
对于每个调度策略,确定该调度策略对应的调度时间以及调度损耗,其中,所述调度时间为所有调度任务执行完成的时间,调度损耗为所有执行设备的总损耗;
基于所述调度时间及所述调度损耗,确定该调度策略对应的适应度。
所述的任务调度方法,其中,所述确定该调度策略对应的调度时间具体包括:
对于调度策略中的每个调度任务,确定该调度任务对应的前驱调度任务,其中,所述前驱调度任务的执行时间早于该调度任务的执行时间;
基于获取到的前驱调度任务确定该调度任务的开始执行时间,并获取该调度任务对应的执行时间;
根据所述开始执行时间以及所述执行时间,确定该调度任务对应的完成时间,以得到各该调度策略中的各调度任务各自对应的完成时间;
根据各调度任务的各自对应的完成时间,确定该调度策略对应的调度时间。
所述的任务调度方法,其中,所述确定该调度策略对应的调度损耗具体包括:
确定该调度策略中的各调度任务各自对应的计算能耗;
根据获取到的各计算能耗,确定该调度策略对应的调度损耗。
本申请实施例第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的任务调度方法中的步骤。
本申请实施例第三方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的任务调度方法中的步骤。
有益效果:与现有技术相比,本申请提供了一种任务调度方法、存储介质及终端设备,所述方法包括确定若干调度任务对应的调度序列;确定若干调度任务对应的若干调度策略;基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,并按照所述目标调度策略确定各调度任务各自对应的执行设备;按照各调度任务各自对应的调度顺序,将各调度任务调度至其对应的执行设备。本发明通过以调度时间和调度能耗约束条件对调度策略进行寻优,平衡调度任务的调度时间以及执行设备的运行能耗,以保证各执行设备构成的边云协同***的运行效率,从而可以提高资源利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的任务调度方法应用的边云协同***的结构原理图。
图2为本申请提供的任务调度方法的流程图。
图3为本申请提供的任务调度方法中的任务图结构的示意图。
图4为本申请提供的任务调度方法中的设备图结构的示意图。
图5为本申请提供的终端设备的结构原理图。
具体实施方式
本申请提供一种任务调度方法、存储介质及终端设备,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。此外应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
发明人经过研究发现,物联网的发展不断扩大以及智能设备的兴起提高了人们的生活质量,相应的人们对设备的服务质量要求越来越高。为了满足人们对服务质量的需求,将云计算的能力拓展到距离终端的边缘终端,实现高效、快捷、可伸缩、安全的计算和存储是必不可少的,而作为云计算的延伸,边缘计算是在网络的边缘进行处理和分析数据。边缘计算是一种新兴的分布式计算模型,其作为云数据中心和终端设备之间的中间层,为终端设备提供计算、存储和管理。相比云计算,边缘计算在地理位置上更加接近终端设备,通过利用已有的网络设备去部署,可以形成边云协同***。
然而,边缘设备的异构性决定了不同的边缘设备具有不同的处理能力,并且单个边缘设备难以在短时间内处理大量的数据,资源负载也会经常发生变化,导致边缘设备中的部分边缘设备具有大量多空闲资源,进而造成资源浪费。
为了解决上述问题,在本申请实施例中,在获取到若干调度任务时,确定若干调度任务对应的调度序列;确定若干调度任务对应的若干调度策略;基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,并按照所述目标调度策略确定各调度任务各自对应的执行设备;按照各调度任务各自对应的调度顺序,将各调度任务调度至其对应的执行设备。本发明通过以调度时间和调度能耗约束条件对调度策略进行寻优,平衡调度任务的调度时间以及执行设备的运行能耗,以保证各执行设备构成的边云协同***的运行效率,从而可以提高资源利用率。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
本实施提供了一种任务调度方法,如图1所示,所述的任务调度方法可以边云协同***中的边端管理器,边云协同***包括边端管理器、若干边缘设备以及若干云服务端,若干边缘设备和若干云服务端均与边端管理器相连接,边端管理器可以连接若干终端设备,其中,若干边缘设备以及边缘管理器构成边缘计算层,若干云服务端构成云计算层,若干终端设备构成终端层。此外,终端层包括的终端设备可以为移动设备和固定设备等,例如,智能电视、智能手机、智能冰箱、智能空调等等。
若干边缘设备中的每个边缘设备均用于处理调度任务,若干云服务端中的每个云服务端均用于处理调度任务;边端管理器用于接收连接于该边云协同***的各终端设备发送的调度任务,并确定若干调度任务对应的调度序列;确定若干调度任务对应的若干调度策略;基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,并按照所述目标调度策略确定各调度任务各自对应的执行设备;按照各调度任务各自对应的调度顺序,将各调度任务调度至其对应的执行设备。其中,执行设备包含于若干边缘设备,或者包含于若干云服务端内。
如图2所示,本实施例提供的任务调度方法具体包括:
S10、确定若干调度任务对应的调度序列。
具体地,调度序列用于反映若干调度任务中的各调度任务被调度给边缘设备或云服务端的先后顺序,调度序列包括若干调度任务中的每个调度任务,并且各调度任务在调度序列中的调度位置不同。例如,若干调度任务包括调度任务A、调度任务B以及调度任务C,若干调度任务对应的调度序列为调度任务A,调度任务C,调度任务B,调度任务A对应的调度顺序早于调度任务C对应的调度顺序,换句话说,调度任务A比调度任务C先调度给边缘设备或云服务端。此外,若干调度任务为终端设备同步发送边端管理器,换句话说,若干调度任务为若干并发任务,为边端管理器同步接收到终端设备发送的任务。
在本实施例的一个实现方式中,所述确定若干调度任务对应的调度序列具体包括:
对于若干调度任务中的每个调度任务,获取该调度任务属于若干预设任务类别中的各预设任务类别的概率值以及任务权重;
基于各预设任务类别各自对应的概率值以及任务权重,确定该调度任务对应的调度顺序度;
根据各调度任务各自对应的调度顺序度,确定若干调度任务对应的调度序列。
具体地,若干预设任务类别为预先设置,用于反映调度任务所对应的应用场景,其中,调度任务对应的应用场景可以为超大带宽场景、超低时延场景或者超大存储场景。相应的,若干预设任务类别可以包括超大带宽类别、超低时延类别以及超大存储类别。各预设任务类别各自对应的概率值用于反映调度任务属于该预设任务类别的概率,例如,预设任务类别为超大带宽类别,则概率值为调度任务属于超大带宽类别的概率。
在本实施例的一个实现方式中,各预设任务类别各自对应的概率值的计算公式可以为:
其中,qmin表示调度任务所需预设任务类型对应的任务资源的最小值,qmax表示调度任务所需预设任务类型对应的任务资源的最大值,q代表调度任务所需预设任务类型对应的任务资源。
在本实施例的一个实现方式中,若干预设任务类别包括超大带宽类别、超低时延类别以及超大存储类别,其中,超大带宽类别对应的概率值x的计算公式可以为:
其中,bmin表示调度任务所需最小的带宽,bmax表示调度任务所需最大的带宽,b表示调度任务所需的带宽。
超低时延类别对应的概率值y的计算公式为:
其中,tmin表示调度任务所需最小的时延,tmax表示调度任务所需最大的时延,t表示调度任务所需时延。
超大存储类别对应的概率值z的计算公式为:
其中,smin表示调度任务所需最小的存储,smax表示调度任务所需最大的存储,s表示调度任务所需的存储。
所述类别权重值用于反映预设任务类别的重要程度,类别权重值越大说明预设任务类别的程度越高,反之,类别权重值越小说明预设任务类别的程度越低,其中,若干预设任务类别中的各预设任务类别各自对应的类别权重值的为1。在本实施例的一个实现方式中,各预设任务类别各自对应的类别权重值的计算公式可以为:
其中,αi表示第i个预设任务类别对应的类别权重值,ai表示调度任务所需第i个预设任务类型对应的任务资源,n表示预设任务类别的数量。
在本实施例的一个实现方式中,所述若干预设任务类别包括超大带宽类别、超低时延类别以及超大存储类别,其中,超大带宽类别对应的类别权重α1、超低时延类别对应的类别权重α2以及超大存储类别对应的类别权重α3的计算公式分别为:
其中,b表示调度任务所需的带宽,t表示调度任务所需时延,s表示调度任务所需的存储空间。
所述调度顺序度用于反映调度任务被优先调度的程度,调度顺序度越小说明调度任务被优先调度的程度越高,调度任务会越早被调度,反之,调度顺序度越小说明调度任务被优先调度的程度越低,调度任务会越晚被调度。例如,若干调度任务包括调度任务A和调度任务B,调度任务A的调度顺序度为0.5,调度任务B的调度顺序度为0.7,那么会先调度任务A会早于调度任务B被调度。由此,调度序列为将若干调度任务按照调度顺序度从小到大的顺序进行排列得到,调度序列中相邻的两个调度任务中的前一调度任务会早于后一调度任务被调度。当然,在实际应用中,可以将将若干调度任务按照调度顺序度从大到顺序的顺序进行排列来确定调度序列,这样在根据调度序列分配调度任务时,可以按照从后向前的顺序分配调度序列中的调度任务。
在本实施例的一个实现方式中,所述调度顺序度的计算公式可以为:
p=α1x+α2y+α3z
其中,α1表示超大带宽类别对应的类别权重,α2表示超低时延类别对应的类别权重,α3表示超大存储类别对应的类别权重,x表示超大带宽类别对应的概率值,y表示超低时延类别对应的概率值,z表示超大存储类别对应的概率值。
S20、基于所述调度序列,确定若干调度任务对应的若干调度策略,其中,所述调度策略用于反映各调度任务对应的执行设备
具体地,所述调度策略用于反映各调度任务对应的执行设备,并且各调度策略中的若干调度设备各自对应的调度顺序与调度序列相对应,换句话说,调度策略中的各调度任务按照调度序列的调度顺序依次调度给各自对应的执行设备。对于若干调度任务中的每个调度任务,基于调度策略均可以确定该调度任务对应的执行设备以及调度顺序,其中,调度顺序为其在调度序列中的调度顺序,执行设备为用于执行调度任务的设备,其可以为边缘设备或者云服务端。
在本实施例的一个实现方式中,所述调度策略包括各调度任务,各调度任务对应的各自调度顺序以及各调度任务各对应执行设备。其中,各调度任务各自对应的执行设备可以是随机分配的,各调度任务各自对应的调度顺序基于调度序列确定,并且对于若干调度策略中的每个调度策略,若干调度任务中的每个调度任务均可以基于该调度策略确定其对应的执行设备,并且若干调度任务中可以存在两个调度任务被分配给同一执行设备,也可以存在两个调度任务被分别分配给两个不同的执行设备;若干调度任务中的任意两个调度任务对应的调度顺序互不相同。
举例说明,若干调度任务包括调度任务A、调度任务B以及调度任务C,执行设备包括执行设备a、执行设备b和执行设备c,调度序列为调度任务A,调度任务B,调度任务C,调度策略可以为调度任务A对应执行设备a,调度任务B对应执行设备b,调度任务C对应执行设备c,并且调度任务A的调度顺序为1,调度任务B的调度顺序为2,调度任务C的调度顺序为3,相应的,调度策略可以表示为:调度任务A-1-执行设备a,调度任务B-2-执行设备b,调度任务C-3-执行设备c。在本实施例的一个实现方式中,在获取到若干调度任务以及若干执行设备后,可以随机生成若干调度策略,S30、基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略。
具体地,所述预设的约束条件用于对若干调度策略进行寻优,预设的约束条件为若干调度策略寻优的依据,基于预设的约束条件可以在若干调度策略中选取目标调度策略,以使得目标调度策略为在预设约束条件的最优调度策略,采用目标调度策略可以使得约束条件达到最优效果。
在本实施例的一个实现方式中,所述预设的约束条件包括时间约束和能耗约束,相应的,所述基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
基于预设的约束条件,确定各调度策略各自对应的适应度;
基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略。
具体地,所述适应度用于反映调度策略的调度性能,对于每个调度策略,根据预设的约束条件均可以确定该调度策略对应的适应度。约束条件包括时间约束和能耗约束,其中,时间约束为若干调度任务全部执行完成的完成时间,能耗约束为若干调度任务全部执行所消耗的总能耗。适应度为根据时间约束和能耗约束计算得到,并且,适应度越小说明调度策略的调度性能越好,反之,适应度越大说明调度策略的调度性能越差。
在本实施例的一个实现方式中,所述基于预设的约束条件,确定各调度策略各自对应的适应度具体包括:
对于每个调度策略,确定该调度策略对应的调度时间以及调度损耗;
基于所述调度时间及所述调度损耗,确定该调度策略对应的适应度。
具体地,所述调度时间指的是按照该调度策略调度将各调度任务调度给各自对应的执行设备后,所有调度任务全部被执行完毕所需的时间;所述调度损耗指的是按照该调度策略调度将各调度任务调度给各自对应的执行设备后,所有调度任务全部被执行完毕所需的总能耗。在获取到调度时间以及调度损耗后,可以基于调度时间以及调度损耗确定一个目标函数,根据该目标函数来计算各调度策略对应的适应度。
在本实施例的一个实现方式中,所述目标函数可以为:
f=α*End+β*Totalec
其中,f表示适应度,End表示调度时间,Totalec表示调度损耗,α表示调度时间的权重值,β表示调度损耗的权重值,其中,α反应优化目标对于调度时间的偏重,β反应优化目标对于调度损耗的偏重,并且α+β=1。此外,在实际的应用中,可以通过调整α值和β值来优化目标的偏重以满足不同的应用和需求。
在本实施例的一个实现方式中,所述确定该调度策略对应的调度时间具体包括:
对于调度策略中的每个调度任务,确定该调度任务对应的前驱调度任务,其中,所述前驱调度任务为在执行时间早于该调度任务的调度任务;
基于获取到的前驱调度任务确定该调度任务的开始执行时间,并获取该调度任务对应的执行时间;
根据所述开始执行时间以及所述执行时间,确定该调度任务对应的完成时间,以得到各该调度策略中的各调度任务各自对应的完成时间;
根据各调度任务的各自对应的完成时间,确定该调度策略对应的调度时间。
具体地,在若干调度任务中可以存在两个调度任务,两个调度任务之间依赖关系,分别为依赖任务和被依赖任务,其中,依赖任务需要依赖被依赖任务的任务执行结果,从而依赖任务需要在被依赖任务被执行完成后才会被执行。所述前驱调度任务为该调度任务的被依赖任务,在该调度任务被执行时,该前驱调度任务需要被执行完毕,由此,前驱调度任务的执行时间早于该调度任务。例如,如图3所示,调度任务Tj被分配到执行设备V5执行,调度任务Ti被分配到执行设备V3执行,调度任务Tj是调度任务Ti的后继任务,此时需要先行在执行设备V3中执行调度任务Ti,之后执行结果传输至执行设备V5后,执行设备V5执行调度任务Tj。
在本实施例的一个实现方式中,为了便于确定该调度任务的前驱调度任务,在获取到若干调度任务后,可以基于若干调度任务建立一个任务图结构,该任务图结构为有向无环图,其中,图节点为若干调度任务中的各调度任务,有向边为从具有依赖关系的两个调度任务中的被依赖调度任务指向依赖任务的有向连接线。例如,如图3所示,在任务图结构中,T={T1,T2,T3...Tn}表达调度任务集,Taski表示任务Ti的大小,E(G)表示任务图结构G中调度任务之间的关系边集合,每个边Eij代表优先约束(即依赖关系约束),调度任务Ti是调度任务Tj的前驱任务,调度任务Tj是调度任务Ti的后继任务,调度任务Tj必须在其所有前驱任务完成后才能开始执行,任务Ti的所有前驱调度任务和后继调度任务的集合分别记为pred(Ti)和succ(Ti),调度任务Ti与调度任务Tj之间的通信数据量为Cij,调度策略为将各调度任务部署到执行设备,记为perform(Vm)。
在本实施例的一个实现方式中,由于调度任务之间存在依赖关系,并且存在依赖关系的两个调度任务可以在不同的执行设备中执行,那么被依赖调度任务在执行完成后,需要将执行数据传输给依赖调度任务所对应的执行设备,而执行数据在两个执行设备之间传输需要花费时间,并且由于各执行设备之间的传输效率可以不相同,从而为了快速确定从执行设备A到执行设备B的最快传输路径,可以预先根据若干执行设备构建设备图结构,基于设备图结构快速到执行设备A到执行设备B的最快传输路径,以及从执行设备A到执行设备B的传输所需时间。例如:如图4所示,执行设备V3到执行设备V5的传输路径为从执行设备V3到执行设备V2,再由执行设备V2到执行设备V5,那么当调度任务Tj被分配到执行设备V5执行,调度任务Ti被分配到执行设备V3执行,调度任务Tj是调度任务Ti的后继任务时,先行在执行设备V3中执行调度任务Ti,之后将执行结果通过执行设备V2传输至执行设备V5后,执行设备V5执行调度任务Tj,
在本实施例的一个实现方式中,设备图结构可以为带权无向图,在备图结构中,图节点为各执行设备,边为两个执行设备的传输关系。例如,如图4所示,V={V1,V2,V3,...,Vm}为执行设备集,执行设备集包括云服务端设和边缘设备,表示图中设备之间的关系。每个设备Vi的计算能力为pi,设备Vi单位时间内计算能耗为βi。设备Vi与设备Vj之间的链路具有带宽Bwij,设备Vi与设备Vj之间单位时间内传输数据的能耗为αij。此外,在实际应用中,执行设备在执行任务时不能被抢占,具有依赖关系的两个任务在同一台执行设备内的传输时间为0,调度任务在执行设备间的传输不影响调度任务在执行设备上的执行。
在本实施例的一个实现方式中,所述执行时间指的是执行设备执行该调度任务所需时间,开始执行时间指的是执行设备接收到该调度任务所处的执行结果的时间,开始执行时间包括该调度任务对应的前驱调度任务执行完成的时间以及执行结果在执行设备之间的传输时间。其中,所述执行时间的计算公式可以为:
其中,Run(Ti,Vm)表示调度任务Ti在执行设备Vm上的执行时间,Taski表示任务Ti的大小,pm表示执行设备Vm的计算能力。
所述开始执行时间的计算公式可以为:
其中,Start(Ti,Vm)表示调度任务Ti的开始执行时间,表示执行设备Vn与执行设备Vm之间的数据传输时间,pred(Ti)表示前驱调度任务集,m表示前驱调度任务对应的执行设备集,Tj表示调度任务Ti的前驱调度任务。
其中,pred(Ti)表示前驱调度任务集,perform(Vn)表示调度策略,Cij表示调度任务Ti与调度任务Tj之间的通信数据量,Bwnm表示设备Vn与设备Vm之间的链路具有带宽。
在获取到执行时间和开始执行时间后,计算各调度任务对应的完成时间,其中,所述完成时间等于执行时间与开始执行时间的和。相应的,完成时间的计算公式可以为:
End(Ti,Vm)=Start(Ti,Vm)+Run(Ti,Vm)
其中,End(Ti,Vm)表示完成时间,Start(Ti,Vm)表示调度任务Ti的开始执行时间,Run(Ti,Vm)表示调度任务Ti在执行设备Vm上的执行时间。
在本实施例的一个实现方式中,确定该调度策略对应的调度损耗具体包括:
确定该调度策略中的各调度任务各自对应的计算能耗;
根据获取到的各计算能耗,确定该调度策略对应的调度损耗。
具体地,所述计算能耗指的是执行设备执行分配给的调度任务所需要的计算能耗,其中,调度任务在执行设备上的计算能耗可以基于该调度任务所需的执行时间确定。在获取到调度任务所需的执行时间后,根据执行设备单位时间内所消耗的计算能耗以及执行时间可以确定执行设备执行调度任务所需的计算能耗。例如,调度任务Ti在执行设备Vm上执行,执行设备Vm执行调度任务Ti所需的执行时间为Run(Ti,Vm),执行设备Vm单位时间内所消耗的计算能耗为βi,那么调度任务Ti在执行设备Vm上执行所处的计算能耗Calec(Ti,Vm)可以表示为:Calec(Ti,Vm)=βi*Run(Ti,Vm)。
在获取到各调度任务各自对应的计算能耗后,可以将各调度任务各自对应的计算能耗的和作为调度损耗。此外,在实际应用中,由于调度任务之间存在依赖关系,从而被依赖调度任务的执行结果会在执行设备之间传输,而执行设备在传输执行结果时也需要能耗。由此,在确定该调度策略对应的调度损耗时,可以将传输所需能耗计算在内,换句话说,调度能耗可以包括各调度任务各自对应的计算能耗,以及执行结果会在执行设备之间传输所处的传输能耗。
在本实施例的一个实现方式中,调度任务Ti被分配给执行设备Vm,执行设备Vn到执行设备Vm之间的传输能耗Tranec(tnm)可以为:
其中,Tran(ti nm)执行设备Vn与执行设备Vm之间的数据传输时间,αnm表示执行设备Vi与执行设备Vj之间单位时间内传输数据的能耗。
调度任务Ti在执行设备Vm完成后所消耗的计算能耗可以为:
其中,Calec(Ti,Vm)为调度任务Ti在执行设备Vm上执行所处的计算能耗,Tranec(tnm)执行设备Vn到执行设备Vm之间的传输能耗Tranec(tnm)。
在本实施例的一个实现方式中,所述基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
将若干调度策略作为第一种群;
基于所述适应度确定所述第一种群对应的第二种群;
基于预设的约束条件确定第二种群中的各调度策略的适应度;
基于适应度在第二种群中选取参考调度策略以及若干参照调度策略,其中,参考调度策略为第二种群中适应度最小的调度策略;
基于预设的约束条件,确定参考调度策略以及若干参照调度策略各自对应的适应度;
将参考调度策略以及若干参照调度策略作为第一种群,并继续执行基于所述适应度确定所述第一种群对应的第二种群的步骤,直至执行次数满足预设条件,将所述参考调度策略作为目标调度策略。
具体地,第一种群包括若干调度策略中的每个调度策略,并且第一种群中的每个调度策略均包含于若干调度策略内,适应度为基于上述所述的目标函数计算得到。所述GA-FA算法用于对第一种群进行筛选以得到第二种群,其中,GA-FA算法包括GA算法和FA算法,GA算法用于对第一种群进行寻优,FA算法用于对寻优后的第一种群进行***操作,以得到第二种群。
在本实施例的一个实现方式中,所述基于所述适应度确定所述第一种群对应的第二种群具体包括:
按照适应度由小到大的顺序在所述第一种群中选取预设数量的候选调度策略;
对选取到的候选调度策略进行交叉操作,得到若干第一调度策略;
将若干第一调度策略作为候选种群,并对所述候选种群进行***操作以得到第二种群。
具体地,候选调度策略中的每个候选调度策略均包含于第一种群,并且候选调度策略为第一种群中适应度小的调度策略。可以理解的是,对于第一种群中除候选调度策略外的任一调度策略A,该调度策略A的适应度小于预设数量的候选调度策略中任一候选调度策略B的适应度。在获取到预设数量的候选调度策略,对预设数量的候选调度策略进行GA的交叉操作以得到第一调度策略,再将若干第一调度策略作为候选种群,并对所述候选种群进行***操作以得到第二种群,其中,所述***操作具体可以为:
在得到第二种群后,还可以在第二种群中选取两个调度策略,将两个调度策略进行高斯变异操作,其中,高斯变异操作具体可以为:
在本实施例的一个实现方式中,所述基于适应度在第二种群中选取参考调度策略以及若干参照调度策略具体包括:
选取第二种群中适应度最小的调度策略,并将选取到的调度策略作为参考调度策略;
对第二种群中除参考调度策略外的各调度策略进行轮盘赌选择,以得到若干参照调度策略。
具体地,参考调度策略为第二种群中的最后策略,在第二种群中除参考调度策略外的所有调度策略中进行轮盘赌选择参照调度策略,以得到若干参照调度策略。此外,在获取到参考调度策略和若干参照调度策略后,获取“基于所述适应度确定所述第一种群对应的第二种群的步骤”的执行次数,若执行次数达到最大执行次数,则停止执行基于所述适应度确定所述第一种群对应的第二种群的步骤,并将参考调度策略作为目标调度策略,若执行次数未达到最大执行次数,则基于预设的约束条件,确定参考调度策略以及若干参照调度策略各自对应的适应度,并继续基于所述适应度确定所述第一种群对应的第二种群的步骤。
S40、按照所述目标调度策略调度若干调度任务。
具体地,所述目标调度策略包括各调度任务对应的执行设备,以及各调度任务对应的调度顺序,从而按照所述目标调度策略调度若干调度任务具体为按照各调度任务对应的调度顺序,将各调度任务依次调度给各调度任务对应的执行设备,以实现了任务调度。
综上所述,本实施例提供了一种任务调度方法、存储介质及终端设备,所述方法包括确定若干调度任务对应的调度序列;确定若干调度任务对应的若干调度策略;基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,并按照所述目标调度策略确定各调度任务各自对应的执行设备;按照各调度任务各自对应的调度顺序,将各调度任务调度至其对应的执行设备。本发明通过以调度时间和调度能耗约束条件对调度策略进行寻优,平衡调度任务的调度时间以及执行设备的运行能耗,以保证各执行设备构成的边云协同***的运行效率,从而可以提高资源利用率。
基于上述任务调度方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的任务调度方法中的步骤。
基于上述任务调度方法,本申请还提供了一种终端设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种任务调度方法,其特征在于,所述方法包括:
确定若干调度任务对应的调度序列;
基于所述调度序列,确定若干调度任务对应的若干调度策略,其中,所述调度策略用于反映各调度任务对应的执行设备;
基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略,其中,所述预设的约束条件包括时间约束和能耗约束;
按照所述目标调度策略调度若干调度任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述确定若干调度任务对应的调度序列具体包括:
对于若干调度任务中的每个调度任务,获取该调度任务属于若干预设任务类别中的每个预设任务类别的概率值以及类别权重,并基于各预设任务类别各自对应的概率值以及类别权重,确定该调度任务对应的调度顺序度;
根据各调度任务各自对应的调度顺序度,确定若干调度任务对应的调度序列。
3.根据权利要求1所述的任务调度方法,其特征在于,所述基于预设的约束条件以及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
基于预设的约束条件,确定各调度策略各自对应的适应度,其中,所述适应度用于反映调度策略的调度性能;
基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略。
4.根据权利要求3所述的任务调度方法,其特征在于,所述基于适应度及若干调度策略,确定若干调度任务对应的目标调度策略具体包括:
将若干调度策略作为第一种群;
基于所述适应度确定所述第一种群对应的第二种群,其中,所述第二种群包括第一种群中的部分调度策略;
基于预设的约束条件确定第二种群中的各调度策略的适应度;
基于适应度在第二种群中选取参考调度策略以及若干参照调度策略,其中,参考调度策略为第二种群中适应度最小的调度策略;
基于预设的约束条件,确定参考调度策略以及若干参照调度策略各自对应的适应度;
将参考调度策略以及若干参照调度策略作为第一种群,并继续执行基于所述适应度确定所述第一种群对应的第二种群的步骤,直至执行次数满足预设条件,将所述参考调度策略作为目标调度策略。
5.根据权利要求4所述的任务调度方法,其特征在于,所述基于所述适应度确定所述第一种群对应的第二种群具体包括:
按照适应度由小到大的顺序在所述第一种群中选取预设数量的候选调度策略;
对选取到的候选调度策略进行交叉操作,得到若干第一调度策略;
将若干第一调度策略作为候选种群,并对所述候选种群进行***操作以得到第二种群。
6.根据权利要求4所述的任务调度方法,其特征在于,所述基于适应度在第二种群中选取参考调度策略以及若干参照调度策略具体包括:
选取第二种群中适应度最小的调度策略,并将选取到的调度策略作为参考调度策略;
对第二种群中除参考调度策略外的各调度策略进行轮盘赌选择,以得到若干参照调度策略。
7.根据权利要求3所述的任务调度方法,其特征在于,所述基于预设的约束条件,确定各调度策略各自对应的适应度具体包括:
对于每个调度策略,确定该调度策略对应的调度时间以及调度损耗,其中,所述调度时间为所有调度任务执行完成的时间,调度损耗为所有执行设备的总损耗;
基于所述调度时间及所述调度损耗,确定该调度策略对应的适应度。
8.根据权利要求7所述的任务调度方法,其特征在于,所述确定该调度策略对应的调度时间具体包括:
对于调度策略中的每个调度任务,确定该调度任务对应的前驱调度任务,其中,所述前驱调度任务的执行时间早于该调度任务的执行时间;
基于获取到的前驱调度任务确定该调度任务的开始执行时间,并获取该调度任务对应的执行时间;
根据所述开始执行时间以及所述执行时间,确定该调度任务对应的完成时间,以得到各该调度策略中的各调度任务各自对应的完成时间;
根据各调度任务的各自对应的完成时间,确定该调度策略对应的调度时间。
9.根据权利要求7所述的任务调度方法,其特征在于,所述确定该调度策略对应的调度损耗具体包括:
确定该调度策略中的各调度任务各自对应的计算能耗;
根据获取到的各计算能耗,确定该调度策略对应的调度损耗。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-9任意一项所述的任务调度方法中的步骤。
11.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-9任意一项所述的任务调度方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540175.3A CN114661431A (zh) | 2020-12-23 | 2020-12-23 | 一种任务调度方法、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540175.3A CN114661431A (zh) | 2020-12-23 | 2020-12-23 | 一种任务调度方法、存储介质及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661431A true CN114661431A (zh) | 2022-06-24 |
Family
ID=82024985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011540175.3A Pending CN114661431A (zh) | 2020-12-23 | 2020-12-23 | 一种任务调度方法、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661431A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024055877A1 (zh) * | 2022-09-15 | 2024-03-21 | 中国电信股份有限公司 | 云计算环境中业务流程部署的方法及装置 |
-
2020
- 2020-12-23 CN CN202011540175.3A patent/CN114661431A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024055877A1 (zh) * | 2022-09-15 | 2024-03-21 | 中国电信股份有限公司 | 云计算环境中业务流程部署的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
Azizi et al. | Deadline-aware and energy-efficient IoT task scheduling in fog computing systems: A semi-greedy approach | |
CN110069341B (zh) | 边缘计算中结合功能按需配置的有依赖关系任务的调度方法 | |
WO2019072162A1 (zh) | 虚拟网络映射方法、设备和存储介质 | |
CN112817728B (zh) | 任务调度方法、网络设备和存储介质 | |
CN113342409B (zh) | 多接入边缘计算***时延敏感型任务卸载决策方法及*** | |
CN115454589A (zh) | 一种任务调度方法、装置及Kubernetes调度器 | |
CN112672382B (zh) | 混合协作计算卸载方法、装置、电子设备及存储介质 | |
Chen et al. | Latency minimization for mobile edge computing networks | |
CN116991560B (zh) | 针对语言模型的并行调度方法、装置、设备及存储介质 | |
Chen et al. | Joint optimization of task offloading and resource allocation via deep reinforcement learning for augmented reality in mobile edge network | |
CN114691372A (zh) | 一种多媒体端边云***的群体智能控制方法 | |
CN114490048A (zh) | 任务执行方法、装置、电子设备及计算机存储介质 | |
CN114661431A (zh) | 一种任务调度方法、存储介质及终端设备 | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
Huang et al. | AoDNN: An auto-offloading approach to optimize deep inference for fostering mobile web | |
Zhang et al. | Correlation-based device energy-efficient dynamic multi-task offloading for mobile edge computing | |
CN117687759A (zh) | 一种任务调度方法、装置、处理设备及可读存储介质 | |
CN113608852A (zh) | 任务调度方法、调度模块、推理节点和协同作业*** | |
Ding et al. | Graph convolutional reinforcement learning for dependent task allocation in edge computing | |
CN116954866A (zh) | 基于深度强化学习的边缘云下任务调度方法及*** | |
CN112052087B (zh) | 动态资源调整与迁移的深度学习训练***及方法 | |
US11665106B2 (en) | Network-aware resource allocation | |
CN112948112B (zh) | 一种基于强化学习的边缘计算工作负载调度方法 | |
CN114980216A (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 |