掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、装置、电子设备、存储介质及产品

文献发布时间:2023-06-19 18:30:43


任务调度方法、装置、电子设备、存储介质及产品

技术领域

本申请涉及数据分析技术领域,尤其涉及一种任务调度方法、装置、电子设备、存储介质及产品。

背景技术

随着数据量的激增,大数据、云计算的技术和组件也层出不穷,变得越来越丰富,比如批处理组件(Hive、Spark)、流处理组件(Storm、Spark Streaming、Flink Stream)等。越来越多的人开始关注由于集群的任务调度的异同,导致的成本问题。该任务调度是指在特定的限制下对任务按计算和资源分配进行调度的一个过程。该过程可以被视为任务放置和资源之间的映射,具体体现在特定的优化目标。

以分布式集群(例如Dolphin集群)为例,在分布式集群环境下进行任务调度时,由于分布式集群下各节点的性能不同,以及分布式集群中的节点能力和网络带宽的不同,分布式集群中节点的资源在每个时刻所承受的负载变化很大。目前Dolphin集群所采用的调度器自身部署有以下三种算法:随机调度算法、轮询调度算法和机器资源权重算法。大量的任务在不同的调度方式下,其放置位置也有所不同。

上述随机调度算法负载均衡能力差。与随机调度算法相比,轮询调度算法虽然在一定程度上能够使任务分布的更加均匀,但是其存在集群整体的资源成本高的弊端。而机器资源权重算法是基于资源调度和负载均衡的目标进行的优化,可能无法利用到成本较低的节点,因此现有技术存在资源利用不合理,资源成本开销大的技术问题。

发明内容

本申请提供了一种任务度方法、装置、电子设备、存储介质及产品,用以解决资源成本开销大的问题。

根据本申请的第一方面,提供了一种任务调度方法,应用于调度器,包括:

获取目标任务集和包含多个节点的节点集群;其中,所述目标任务集包含多个待调度任务;

确定与预先建立的资源成本模型对应的目标函数,并根据改进蚁群算法,确定与所述目标函数取最小值时对应的最优解;

根据所述最优解,在所述节点集群中确定所述多个待调度任务匹配的调度节点,并将所述多个待调度任务分配给所述调度节点。

可选地,建立所述资源成本模型,包括:

针对所述节点集群中的每个节点,获取所述节点的资源单价和所述节点执行对应待调度任务所需的资源使用时间;

根据所述节点的资源单价和所述资源使用时间建立资源成本模型。

可选地,所述根据所述节点的资源单价和所述资源使用时间建立资源成本模型,包括:

针对所述节点集群中的每个节点,将所述节点的资源单价和所述资源使用时间的乘积结果确定为所述节点执行对应待调度任务的资源成本;

确定用于对所有所述节点执行对应待调度任务的资源成本进行累加计算的公式,并将所述公式确定为资源成本模型。

可选地,所述节点包括中央处理器和内存,所述资源使用时间包括中央处理器使用时间和内存使用时间;

将所述节点的资源单价和所述资源使用时间的乘积结果确定为所述节点执行对应待调度任务的资源成本,包括:

将所述中央处理器的资源单价和所述中央处理器使用时间的乘积结果确定为所述节点执行对应待调度任务的中央处理器资源成本;

将所述内存的资源单价和所述内存使用时间的乘积结果确定为所述节点执行对应待调度任务的内存资源成本;

将所述中央处理器资源成本和内存资源成本的相加结果确定为所述节点执行对应待调度任务的资源成本。

可选地,所述根据改进蚁群算法,确定与所述目标函数取最小值时对应的最优解,包括:

初始化所述目标任务集对应的任务数组、所述目标任务集对应的资源成本需求数组和所述节点集群对应的节点数组;

将所述任务数组和所述节点数组作为所述改进蚁群算法的输入,并将所述资源成本需求数据作为所述改进蚁群算法的约束条件;

利用所述改进蚁群算法进行迭代计算,得到与所述目标函数取最小值时对应的最优解。

可选地,所述利用所述改进蚁群算法进行迭代计算,得到与所述目标函数取最小值时对应的最优解,包括:

S1:初始化所述改进蚁群算法的以下参数:信息启发因子、期望启发因子、信息素、蚂蚁数量和最大迭代次数;

S2:更新当前迭代次数;

S3:针对每只携带所有所述待调度任务的蚂蚁,将所述蚂蚁的起始点随机分配到所述节点集群中的任意节点上,以使所述蚂蚁按照预设的概率公式,通过轮盘赌的方式为每个所述调度任务分配满足预设条件的节点,并进行所述信息素的局部更新;其中,所述概率公式的参数包括:所述信息启发因子、所述期望启发因子、所述信息素和所述资源成本模型输出的函数值,所述预设条件包括所述约束条件;

S4:判断所有的蚂蚁是否遍历完;若是,则执行S5;若否,则继续执行S3;

S5:确定所述目标函数在当前迭代中取最小值时对应的备选最优解,并进行所述信息素的全局更新;

S6:判断当前迭代次数是否达到所述最大迭代次数;若否,则执行S2;若是,则迭代结束,并执行S7;

S7:将所述备选最优解作为最优解进行输出。

可选地,所述获取目标任务集,包括:

将预设的关联任务组中的所有待执行任务按照预执行的先后次序建立拓扑图;

根据所述拓扑图将所有所述待执行任务按层次划分为不同的任务集;

从所有的所述任务集中选择一个所述任务集作为目标任务集。

根据本申请的第二方面,提供了一种任务调度装置,应用于调度器,包括:

获取模块,用于获取目标任务集和包含多个节点的节点集群;其中,所述目标任务集包含多个待调度任务;

确定模块,用于确定与预先建立的资源成本模型对应的目标函数,并根据改进蚁群算法,确定与所述目标函数取最小值时对应的最优解;

确定分配模块,用于根据所述最优解,在所述节点集群中确定所述多个待调度任务匹配的调度节点,并将所述多个待调度任务分配给所述调度节点。

根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面所述的任务调度方法。

根据本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上第一方面所述的任务调度方法。

根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的任务调度方法。

本申请提供的一种任务调度方法,先获取目标任务集和包含多个节点的节点集群;其中,目标任务集包含多个待调度任务;然后确定与预先建立的资源成本模型对应的目标函数,并根据改进蚁群算法,确定与目标函数取最小值时对应的最优解;最后根据最优解,在节点集群中确定多个待调度任务匹配的调度节点,并将多个待调度任务分配给调度节点。

本申请将预先建立的资源成本模型对应的目标函数作为改进蚁群算法的启发式函数,能够使通过改进蚁群算法输出与所述目标函数取最小值时对应的最优解,进而确定在节点集群中确定多个待调度任务匹配的调度节点,以实现节点集群的资源最大化的利用,并且能够达到最大限度的降低节点集群的资源成本的目的。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种任务调度方法的流程示意图;

图2为本申请实施例提供的建立资源成本模型的流程示意图;

图3为本申请实施例提供的图1中S102的流程示意图;

图4为本申请实施例提供的图3中S1023的流程示意图;

图5为本申请实施例提供的一种任务调度装置的结构示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。

目前,集群的任务调度问题,在近些年逐渐成为研究热点。目前的研究大多是针对云计算组件(Kubernetes、docker)、大数据组件(Storm、Spark)提出的任务调度算法,这些算法主要以提高集群的执行时间、资源利用率、降低节点间通信时延为优化目标。

目前在Dolphin集群中,Dolphin调度器的核心组件有MasterServer和WorkerServer,并且组件MasterServer和组件WorkerServer都通过组件ZooKeeper来进行集群的管理和容错。组件WorkerServer提供的负载均衡算法,用于将负载(即任务)进行平衡,分摊到多个机器上执行,以此达到合理分摊压力的能力。Dolphin集群中默认有三种调度策略算法,分别是随机调度算法、轮询调度算法以及机器资源权重算法,组件MasterServer在获取到任务后,首先从组件zookeeper上获取当前任务所属的工作组的所有机器信息列表,然后根据调度策略在各节点上分配对应的任务。

以上三种算法都有其对应的弊端和缺点:1)随机调度算法,其原理简单,即组件zookeeper获取到任务的工作组上所有的机器之后,先判断机器总数,如果机器总数为1,则直接分配;如果不为1,则随机选择一台节点作为任务的执行机器。该算法导致任务放置的不均匀,可能会在性能较差的节点上放置更多的任务,这样不仅会增加任务的执行时间,还容易导致节点集群的资源严重不均衡。2)轮询调度算法,其实现方式借助原子类AtomicInteger实现,先通过它计数,然后通过对机器数量取模的方式获取待执行任务的机器所在数组的位置,进而将任务分配到该机器上。该算法与随机调度算法相比,能够使任务分布的更加均匀,能够让集群中的节点得到较好的利用,不过该算法没有考虑到成本的问题,容易出现将任务放置到成本较高的节点上的情况,进而导致集群整体的成本较高。3)机器资源权重算法,其实现方式主要侧重于资源,组件MasterServer通过组件zookeeper对机器进行心跳检测,获取到机器资源的使用信息,然后根据资源的使用信息选择资源权重值最小的机器,该算法是基于资源调度和负载均衡的目标进行的优化,针对成本较低的节点可能就不会优先去放置。

因此现有的Dolphin集群存在资源利用不合理,资源成本开销大的技术问题。

为了解决上述技术问题,本申请的整体发明构思为如何提供一种最大限度的降低资源成本的任务调度方法。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

实施例1:

图1为本申请实施例提供的一种任务调度方法的流程示意图。如图1所示,本实施例的方法,应用于调度器,包括:

S101:获取目标任务集和包含多个节点的节点集群;其中,目标任务集包含多个待调度任务。

在本申请实施例中,任务节点集群可以指Dolphin集群,Dolphin集群中的组件之间可以通过服务等级协议(Service level agreement,SLA)进行交互。上述调度器可以指Dolphin调度器。本申请实施例可以将同一目标任务集下的所有待调度任务进行任务调度,获取目标任务集,能够确定目标任务集中待调度任务的数量和每个待调度任务的属性信息,例如:资源需求信息、与其他待调度任务之间的关联关系等。获取节点集群,能够确定节点集群中节点的数量和节点的属性信息,例如:总资源信息、已用资源信息、可用资源信息、执行任务时的处理速度等。

S102:确定与预先建立的资源成本模型对应的目标函数,并根据改进蚁群算法,确定与目标函数取最小值时对应的最优解。

在本申请实施例中,蚁群算法是在近年提出的一种描述在图中找到最优路径的算法,具有精度高、已于和其他方法结合的特点,也是比较热门的最短路径的算法。它是一种模拟蚁群在觅食的过程中寻找路径的方法。蚁群在觅食的过程中会留下分泌物在它们经过的每一条路上,该分泌物被称之为信息素。而蚂蚁在选择路径的时候更喜欢浓度较高的路径,后面的蚂蚁选择该路径的可能性也就越大,最终能够达到寻找最短路径的目的。因此该方法适用于组合优化问题,而本申请中的任务调度问题属于上述组合优化问题,因此本申请利用蚁群算法的优势,并结合本申请提供的与预先建立好的资源成本模型对应的目标函数,对蚁群算法进行了改进,得到了改进蚁群算法,改进蚁群算法以资源成本为信息素,以优化资源成本为目标。

由于目标任务集中的待调度任务可以是多个,因此采用的资源成本模型或称为多任务资源成本模型。由于本申请的目的是为了优化资源成本,因此本申请提供了与预先建立的资源成本模型对应的目标函数。针对资源成本模型的建立,以及目标函数的建立,本申请在下述实施例2中进行了具体描述,此处不做具体限定。

设定S101中的目标任务集为:Tasks={tsk

其中,Cost为所有节点执行所有对应待调度任务的总资源成本,Cost

由于任务调度可以直接影响节点集群的资源使用和运行效率,因此本申请实施例的优化目标就是为了在满足SLA的情况下,降低节点集群的资源成本,最小化多任务资源成本。在本申请实施例中,一个任务调度结果对应一个总资源成本Cost,与资源成本模型对应的目标函数的公式如式(2)所示:

minf

其中,f

S103:根据最优解,在节点集群中确定多个待调度任务匹配的调度节点,并将多个待调度任务分配给调度节点。

本申请实施例将与资源成本模型对应的目标函数作为改进蚁群算法的启发式函数,能够使通过改进蚁群算法输出最优解,进而确定在节点集群中确定多个待调度任务匹配的调度节点,以实现节点集群的资源最大化的利用,并且能够达到最大限度的降低节点集群的资源成本的目的。

一种可能的实现方式中,在S101中,获取目标任务集,包括以下步骤S1011~S1013,其中:

S1011:将预设的关联任务组中的所有待执行任务按照预执行的先后次序建立拓扑图。

S1012:根据拓扑图将所有待执行任务按层次划分为不同的任务集。

S1013:从所有的任务集中选择一个任务集作为目标任务集。

本申请实施例通过执行S1011~S1013,提供了一种目标任务集的获取方式。此外,本申请实施例还可以通过其他方式获取目标任务集,本申请实施例对此不做具体限定。

综上,为了解决节点集群在任务调度时存在的未考虑资源成本的问题,本申请实施例设计了一个资源成本模型和基于资源成本模型的调度器。该调度器采用资源成本作为信息素改进传统蚁群算法中的启发式函数,能够使更多的待执行任务放置到成本更低的节点和负载更小的节点上,从而能够在满足SLA的情况下,更好的使节点集群中的节点的资源得到最大化的利用,最大限度的降低节点集群的资源成本。

在上述实施例的基础上,下面结合几个具体的实施例对本申请技术方案进行更详细的描述。

实施例2:

图2为本申请实施例提供的建立与资源成本模型对应的目标函数的流程示意图。如图2所示,建立资源成本模型,包括:

S21:针对节点集群中的每个节点,获取节点的资源单价和节点执行对应待调度任务所需的资源使用时间。记节点的资源单价为p

S22:根据节点的资源单价和资源使用时间建立资源成本模型。

本申请实施例对影响资源成本的因素进行了详细说明,包括节点集群中节点的资源单价和节点执行对应待调度任务所需的资源使用时间,通过执行S21~S22,可以完成对资源成本模型和与资源成本模型对应的目标函数的有效建立,其中资源成本模型的建立过程见下述S221~S222。

一种可能的实现方式中,在S22中,根据节点的资源单价和资源使用时间建立资源成本模型,包括:

S221:针对节点集群中的每个节点,将节点的资源单价和资源使用时间的乘积结果确定为节点执行对应待调度任务的资源成本。

S222:确定用于对所有节点执行对应待调度任务的资源成本进行累加计算的公式,并将公式确定为资源成本模型。

本申请实施例根据节点的资源单价和资源使用时间建立了如公式(1)所示的资源成本模型,其中,资源成本模型中的

其中,

基于公式(3),将公式(1)中资源成本模型的表达式修改成公式(4):

本申请实施例建立的资源成本模型作为改进蚁群算法的启发式函数,为蚁群算法寻找最优解提供准确地数学模型,进而使本申请达到最大化的降低节点集群的资源成本的目的。

一种可能的实现方式中,节点包括中央处理器和内存,资源使用时间包括中央处理器使用时间和内存使用时间。S221:将节点的资源单价和资源使用时间的乘积结果确定为节点执行对应待调度任务的资源成本,包括以下步骤:

S2211:将中央处理器的资源单价和中央处理器使用时间的乘积结果确定为节点执行对应待调度任务的中央处理器资源成本。

在本申请实施例中,第i个节点的中央处理器的资源单价记为p

S2212:将内存的资源单价和内存使用时间的乘积结果确定为节点执行对应待调度任务的内存资源成本。

在本申请实施例中,第i个节点的内存的资源单价记为p

S2213:将中央处理器资源成本和内存资源成本的相加结果确定为节点执行对应待调度任务的资源成本。

基于步骤S2211~S2213中对资源成本的具体化描述,将公式(3)中资源成本模型中的

在公式(5)的基础上,将公式(4)中资源成本模型的表达式修改成公式(6):

本申请实施例中的节点包括中央处理器和内存以外,还可以包括其他资源成本,另外,本申请实施例还可以为中央处理器资源成本、内存资源成本设置对应的系数,因此本申请实施例可以基于公式(6)的形式对资源成本模型进行适应性修改,即本申请实施例对资源成本模型的具体结构不做具体限定。

本申请实施例主要是考虑dolphin调度器在任务调度过程中,多个待调度任务放置在多个节点上,在任务执行期间,对节点中央处理器CPU和内存资源的消耗,建立了上述资源成本模型。

由于节点集群的环境和异构性等因素,任务调度被认为是一种NP-hard问题,当使用动态调度方案的时候,由于任务放置的不同,节点的资源使用也是不同,无形中就增加了节点集群的资源成本开销。基于上述的问题,本申请实施例提出多任务资源成本模型,并改进传统的蚁群算法,将多任务资源成本模型对应的目标函数作为改进蚁群算法的启发式函数,使资源成本更低的节点上优先放置较多的任务,使节点集群的资源调度能够更加的均衡,成本能够更低。

实施例3:

图3为本申请实施例提供的图1中S102的流程示意图。在图1所示实施例的基础上,本实施例重点对图1中的S102进行细化。如图3所示,图1中的S102包括:

S1021:初始化目标任务集对应的任务数组、目标任务集对应的资源成本需求数组和节点集群对应的节点数组。其中,任务数组为Tasks、节点数组为Nodes。本申请实施例按照待调度任务的提交顺序及资源需求依次排列附加到每个待调度任务上,以得到目标任务集对应的资源成本需求数组。

S1022:将任务数组和节点数组作为改进蚁群算法的输入,并将资源成本需求数据作为改进蚁群算法的约束条件。

S1023:利用改进蚁群算法进行迭代计算,得到与目标函数取最小值时对应的最优解。

本申请实施例结合Dolphin调度器,改进传统的蚁群算法,将多任务资源成本模型作为蚁群算法中的启发式函数,使资源成本更低的节点上优先放置较多的任务,使得节点集群的资源调度能够更加的均衡,资源成本更低。

一种可能的实现方式中,如图4所示,S1023:利用改进蚁群算法进行迭代计算,得到与目标函数取最小值时对应的最优解,包括以下步骤:

S1:初始化改进蚁群算法的以下参数:信息启发因子、期望启发因子、信息素、蚂蚁数量和最大迭代次数。信息启发因子为k、期望启发因子为l、信息素为e、蚂蚁数量为Num。最大迭代次数Dmax。

信息素e的设定与蚂蚁在节点之间的经过有关系,因此需要记录当前附着任务信息的蚂蚁经过节点集群中节点的次数。因此,信息素的更新如公式(7):

其中,信息素e是一个变量,随着蚂蚁携带第j个待调度任务经过第i个节点的次数增多,该变量也就越大,即信息素的数值增大,但该数值也不能无限的增大。蚂蚁数量也不能超过当前节点上的资源负荷,否则就会大大的降低算法的性能。

S2:更新当前迭代次数。按照递增的方式进行迭代次数的更新,即D=D+1。

S3:针对每只携带所有待调度任务的蚂蚁,将蚂蚁的起始点随机分配到节点集群中的任意节点上,以使蚂蚁按照预设的概率公式,通过轮盘赌的方式为每个调度任务分配满足预设条件的节点,并进行信息素的局部更新;其中,概率公式的参数包括:信息启发因子、期望启发因子、信息素和资源成本模型输出的函数值,预设条件包括约束条件。

S4:判断所有的蚂蚁是否遍历完;若是,则执行S5;若否,则继续执行S3。

S5:确定目标函数在当前迭代中取最小值时对应的备选最优解,并进行信息素的全局更新。

在该步骤中,当前迭代中所有的待调度任务都已经选定了对应的节点,也就是说每个蚂蚁均提供一个解,可以从所有解中确定目标函数在当前迭代中取最小值时对应的备选最优解。

S6:判断当前迭代次数是否达到最大迭代次数;若否,则执行S2;若是,则迭代结束,并执行S7。

S7:将备选最优解作为最优解进行输出。

目前dolphin调度器本身的三种调度算法,均不能很好的在保证低成本的情况下,将任务更好的均匀分配,使得节点集群的节点资源得到最大化利用。为了解决上述的问题,本申请实施例提出了基于资源成本的任务调度算法,其采用最小化的多任务资源成本模型作为蚁群算法中的启发函数,以此来改进传统的蚁群算法,旨在满足SLA的前提下,将节点集群的节点资源能够得到最大化的利用,同时使节点集群的资源成本能够得到最大限度的降低。

图5为本申请实施例提供的一种任务调度装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式。如图5所示,本实施例提供的任务调度装置,应用于调度器,包括:获取模块51、确定模块52和确定分配模块53。

其中:

获取模块51,用于获取目标任务集和包含多个节点的节点集群;其中,目标任务集包含多个待调度任务。

确定模块52,用于确定与预先建立的资源成本模型对应的目标函数,并根据改进蚁群算法,确定与目标函数取最小值时对应的最优解。

确定分配模块53,用于根据最优解,在节点集群中确定多个待调度任务匹配的调度节点,并将多个待调度任务分配给调度节点。

一种可能的实现方式中,该任务调度装置,还用于:

针对节点集群中的每个节点,获取节点的资源单价和节点执行对应待调度任务所需的资源使用时间。

根据节点的资源单价和资源使用时间建立资源成本模型。

一种可能的实现方式中,该任务调度装置,还用于:

针对节点集群中的每个节点,将节点的资源单价和资源使用时间的乘积结果确定为节点执行对应待调度任务的资源成本。

确定用于对所有节点执行对应待调度任务的资源成本进行累加计算的公式,并将公式确定为资源成本模型。

一种可能的实现方式中,节点包括中央处理器和内存,资源使用时间包括中央处理器使用时间和内存使用时间;该任务调度装置,还用于:

将中央处理器的资源单价和中央处理器使用时间的乘积结果确定为节点执行对应待调度任务的中央处理器资源成本。

将内存的资源单价和内存使用时间的乘积结果确定为节点执行对应待调度任务的内存资源成本。

将中央处理器资源成本和内存资源成本的相加结果确定为节点执行对应待调度任务的资源成本。

一种可能的实现方式中,确定模块52,还用于:

初始化目标任务集对应的任务数组、目标任务集对应的资源成本需求数组和节点集群对应的节点数组。

将任务数组和节点数组作为改进蚁群算法的输入,并将资源成本需求数据作为改进蚁群算法的约束条件。

利用改进蚁群算法进行迭代计算,得到与目标函数取最小值时对应的最优解。

一种可能的实现方式中,确定模块52,还用于执行以下步骤:

S1:初始化改进蚁群算法的以下参数:信息启发因子、期望启发因子、信息素、蚂蚁数量和最大迭代次数。

S2:更新当前迭代次数。

S3:针对每只携带所有待调度任务的蚂蚁,将蚂蚁的起始点随机分配到节点集群中的任意节点上,以使蚂蚁按照预设的概率公式,通过轮盘赌的方式为每个调度任务分配满足预设条件的节点,并进行信息素的局部更新;其中,概率公式的参数包括:信息启发因子、期望启发因子、信息素和资源成本模型输出的函数值,预设条件包括约束条件。

S4:判断所有的蚂蚁是否遍历完;若是,则执行S5;若否,则继续执行S3。

S5:确定目标函数在当前迭代中取最小值时对应的备选最优解,并进行信息素的全局更新。

S6:判断当前迭代次数是否达到最大迭代次数;若否,则执行S2;若是,则迭代结束,并执行S7。

S7:将备选最优解作为最优解进行输出。

一种可能的实现方式中,获取模块51,还用于:

将预设的关联任务组中的所有待执行任务按照预执行的先后次序建立拓扑图。

根据拓扑图将所有待执行任务按层次划分为不同的任务集。

从所有的任务集中选择一个任务集作为目标任务集。

本实施例提供的任务调度装置,可用于执行上述任意方法实施例提供的任务调度方法,其实现原理和技术效果类似,此处不做赘述。

本申请的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图6为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括接收器60、发送器61、至少一个处理器62和存储器63,由上述部件构成的该电子设备可以用来实施本申请上述几个具体的实施例,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述实施例中方法中的各个步骤。

本申请实施例还提供一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述实施例中方法中的各个步骤。

本申请以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或电子设备上执行。

在本申请的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读存储介质可以是机器可读信号介质或机器可读储存介质。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据电子设备)、或者包括中间件部件的计算系统(例如,应用电子设备)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 一种任务调度方法、装置、电子设备及存储介质
  • 目标检测方法和装置、电子设备、存储介质、程序产品
  • 行人再识别方法和装置、电子设备、存储介质、程序产品
  • 图像处理方法和装置、电子设备、存储介质、程序产品
  • 人脸建模方法和装置、电子设备、存储介质、产品
  • 任务调度方法、装置、电子设备、存储介质和程序产品
  • 任务调度方法、装置、电子设备、存储介质及程序产品
技术分类

06120115595199