CN111221643A - 任务处理方法和任务处理装置 - Google Patents

任务处理方法和任务处理装置 Download PDF

Info

Publication number
CN111221643A
CN111221643A CN201811413069.1A CN201811413069A CN111221643A CN 111221643 A CN111221643 A CN 111221643A CN 201811413069 A CN201811413069 A CN 201811413069A CN 111221643 A CN111221643 A CN 111221643A
Authority
CN
China
Prior art keywords
node
task
tasks
completion time
nodes
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
Application number
CN201811413069.1A
Other languages
English (en)
Other versions
CN111221643B (zh
Inventor
曾魁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811413069.1A priority Critical patent/CN111221643B/zh
Publication of CN111221643A publication Critical patent/CN111221643A/zh
Application granted granted Critical
Publication of CN111221643B publication Critical patent/CN111221643B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种任务处理方法和任务处理装置。该任务处理方法包括:利用多个任务之间的约束关系,建立任务序列图;对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;根据排序结果执行所述多个任务。根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。

Description

任务处理方法和任务处理装置
技术领域
本申请涉及计算处理领域,特别是涉及一种任务处理方法和任务处理装置。
背景技术
通常来说,对于提供计算处理服务的计算机系统,不论是离线提供服务或者是在线提供服务,均需要多个模块或者系统协同工作才能完成整个服务流程,在这个任务完成过程中一般存在多个节点,每个节点负责计算处理不同的任务。其中,通常会存在一个节点需要访问多个其他节点的服务,一个节点需要其他节点计算获得的数据才能进行下一步计算处理。因此任务之间存在执行顺序的关系,或称为任务之间输入输出的约束关系。
鉴于节点之间存在执行顺序关系,通常来说现有技术采用任务的串行执行方式,按照先后顺序排列有执行顺序关系的任务,使得任务串行执行。但是串行执行的方式延长了任务整体执行的时间,某一个计算节点可能会长时间处于等待其他并无约束关系的节点执行任务,导致任务执行的效率降低,浪费了计算装置的资源。
发明内容
鉴于上述问题,本发明一实施例提出一种任务处理方法和任务处理装置,以解决现有技术存在的问题。
为了解决上述问题,本申请一实施例公开一种一种任务处理方法,包括:
利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
根据拓扑排序结果执行所述多个任务。
在一可选实施例中,所述对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的步骤之后,所述方法还包括:
根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
在一可选实施例中,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,还包括:
当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
在一可选实施例中,所述根据多个节点中每一个节点对应的任务的完成时间,确定所述节点的节点类型的步骤包括:
确定多个节点中每一个节点的任务执行时间;
计算多个节点中每一个节点对应的任务的最早完成时间;
计算多个节点中每一个节点对应的任务的最迟完成时间;
根据节点对应的任务的所述最早完成时间和最迟完成时间,确定个所述节点的节点类型。
在一可选实施例中,所述根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型的步骤包括:
当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;
当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。
在一可选实施例中,所述计算多个节点中每一个节点对应的任务的最早完成时间的步骤中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;
所述计算多个节点中每一个节点对应的任务的最迟完成时间的步骤中,所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。
在一可选实施例中,在利用多个任务之间的约束关系,建立任务序列图的步骤之前,所述方法还包括:
将任务执行系统的总任务拆分为多个任务。
在一可选实施例中,所述将任务执行系统的总任务拆分为多个任务的步骤中,是依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。
在一可选实施例中,所述任务序列图为有向无环图。
为了解决上述问题,本申请一实施例公开一种任务处理装置,包括:
序列图建立模块,用于利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
拓扑排序模块,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
任务执行模块,用于根据排序结果执行所述多个任务
本申请一实施例还公开一种终端设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行上述的方法。
本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行如下操作:
利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
根据排序结果执行所述多个任务。
由上述可知,本申请实施例提出的任务处理方法和装置至少包括以下优点:
根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请第一实施例的任务处理方法的流程图。
图2是本申请实施例的任务序列图的示意图。
图3是本申请第二实施例的任务处理方法的流程图。
图4是本申请实施例的经过标注执行时间任务序列图的示意图。
图5是本申请第三实施例的任务处理装置的方框图。
图6是本申请第三实施例的任务处理装置的方框图。
图7示意性地示出了用于执行根据本发明的方法的终端设备的框图。
图8示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本发明的核心构思之一在于提出一种任务处理方法,针对多个任务,通过构建任务序列图并对任务进行拓扑排序,使得相互之间没有依赖关系的任务路径能够并行执行,相比于传统的串行执行所有任务的方式,本发明实施例提出的方式能够实现了优化系统的效率,使得任务流得到空置,降低了任务的执行阻塞,提高了执行的效率。
本发明提出的方案尤其适用于高并发运行任务流,相比于应用于传统的任务流,高并发任务流具有任务并发性高、任务之间关系复杂的特点,本发明的任务处理方法可以将多个任务构建任务序列图并进行拓扑排序,利用排序结果对任务进行并行处理,提高了总体执行的效率。
第一实施例
本发明第一实施例提出一种任务处理方法。图1所示为本发明第一实施例的任务处理方法的步骤流程图。如图1所示,本发明实施例的任务处理方法包括如下步骤:
S101,利用多个任务之间的约束关系,建立任务序列图;
如前述,高并发任务流控制系统是一种基于生产者-消费者模型构建的任务流控制系统。消费者-生产者模型是一种基于等待/通知机制的模型。生产者/消费者模型描述的是有一块缓冲区作为仓库,生产者可将产品放入仓库,消费者可以从仓库中取出产品。二者为互相依赖关系。高并发任务流控制系统能够显著提高系统的并发能力,降低系统的响应时间。
高并发任务流控制系统实质是由多个任务执行单元构建起来的一张有向无环任务序列图。图中每一个节点对应一个任务执行单元,该任务执行单元对应所需要执行的任务。任务执行单元的输入和输出约束条件构成节点的入边和出边。换言之,在确定了任务之后,利用任务之间的约束关系,可以构建任务序列图。其中任务序列图包括多个节点和多个边。节点对应于任务,边对应于任务之间的约束关系,如果某个任务B必须依赖于前序任务A的执行,则可以构造一条由A指向B的边。
图2所示为一张任务序列图的示意图。如图2所示,该图中有9个任务,分别为v1至v9。以任务v2为例,指向任务v2的边10a为入边,从v2出发指向v3的边为出边。
图中的有向边代表中各个任务执行的依赖关系。此外,一个节点的前向依赖节点为该节点在该有向图上的前序节点。例如v2节点的前向依赖节点为v1、v5节点的前向依赖节点为v1、v2、v3。V6节点的前向依赖节点为v1、v3、v4。
在图2中,对于一个节点,只有当一个节点的所有前向依赖节点全部执行完后,该节点才能启动执行。所以有向边连接的两个节点,前一个节点是后一个节点的数据生产者,后一个节点是前一个节点的数据消费者。整个图谱执行完成,则整个请求也就完成处理。
在执行步骤S101之后,可以执行步骤S102如下:
S102,对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
拓扑排序是指将一张有序无环图中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序的序列,称为拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,称为拓扑排序。
在本实施例中,利用传统拓扑排序的方法,针对拆分总任务获得的多个任务对应的节点,对于已经建好的任务序列图,选择所有入度(indgree)为0的节点(假设为v1),将它们放入工作任务队列,线程拿到具体任务单元后,从资源区获取输入数据开始执行任务。上述的入度是指有向图中某点作为图中边的终点的次数之和,入度为0的节点没有前向依赖性,可以作为起始节点。当有任务完成后,如果此任务v1是最后结束节点,那么整个请求已经完成。否则先将任务v1产出的数据放入对应的资源区作为下一个节点v2的输入数据,然后将后续节点v2的入度减去1,如果下一个节点v2的入度为0,那么将下一个节点放入线程池,然后归还本线程。
在一实施例中,可以循环地在任务图上操作前述直到停止,最后的输出就是任务排序的结果,即拓扑序列。通过上述方法,可以根据节点的入度值,确定无相互依赖关系的任务路径,即确定可以并发执行的任务。构造出拓扑序列的实际意义在于:如果按照拓扑序列中的顶点次序,在开始每一项活动时,能够保证它的所有前驱活动都已完成,从而使整个工程顺序进行,不会出现冲突的情况。
在步骤S102之后,可以执行步骤S103如下:
S103,根据拓扑排序结果执行所述多个任务。
在这一步骤中,可以根据任务拓扑排序结果执行多个任务。任务拓扑排序中限定了任务之间的顺序和任务路径,可以同时执行多个任务路径中的任务。
在一实施例中,步骤S102和步骤S103可以合并执行。即在根据任务序列图进行拓扑排序,在排序时可以同时执行任务。最后得到的效果是
由上述可知,本发明第一实施例提出的任务处理方法至少具有如下技术效果:
根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。
第二实施例
本发明第二实施例提出一种任务处理方法。图3所示为本发明第二实施例的任务处理方法的步骤流程图。如图3所示,本发明实施例的任务处理方法如下步骤:
S202,利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
S203,对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
S207,根据排序结果确定的任务次序执行所述多个任务。
上述步骤S202、S203和S207与第一实施例中的步骤S101、S102和S103相同或相似,在此不再赘述。本发明着重描述与上一实施例的不同之处。
在一实施例中,所述方法还可以包括如下步骤:
S201,将任务执行系统的总任务拆分为多个任务。
一个在线运行的引擎系统,例如搜索引擎等任务执行系统,其所包含的总任务可以抽象出多个执行单元,这些执行单元的特点在于相互独立互不干扰,每个单元都有各自的输入和输出。每一个执行单元可以认为是一个独立的任务。
因此,在步骤S201中,可以根据这一原则可以将该总任务拆分成多个任务,然后将这些任务组合成一张任务执行图谱,即任务序列图。
该第一实施例的构建任务序列图包括如下子步骤:
在这一步骤中,拆分任务的过程例如需要遵循两个原则:
第一,依据系统开销,确定拆分后的任务的粒度;
在这一步骤中,需要考虑任务拆解的粒度大小的合理性,因为这些任务是多线程并发执行的,系统中如果线程过多会导致线程在CPU中频繁的切换,这样带来的开销也会不小,所以拆分的粒度也会影响整个任务拓扑图的执行效率。在一实施例中,拆分后的任务的执行时占用的系统开销的比例需要小于特定的比例。
第二,依据任务拓扑图占用的资源确定拆分后任务的粒度;
在这一步骤中,任务拆分后在执行过程需要读取各自的输入数据然后将加工后的数据写回内存,所以拆分后的任务之间需要尽量避免数据的交叉读写,减少线程安全隐患。
在一个在线服务的任务执行系统中,不同的流量可能面对的是不同的执行策略,针对每一个任务需要动态的建立任务拓扑图,任务执行完毕后,拓扑图也随之消亡,所以任务拆分的过程中也需要综合考虑构建拓扑图的开销,确保其不能太大影响系统给的开销。例如,可以根据拆分后任务的粒度,确定这些任务构成的任务拓扑图占用的系统资源的比例,在计算出占用的系统资源的比例过大时,则认为拆分后的任务的粒度太小,应当拆分为更大的粒度。
拆分任务的方法可以是人工执行的,也可以是利用机器自动拆分的,在此不再赘述。
在本发明一实施例中,在步骤S203,即对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的步骤之后,本发明还可以包括如下步骤:
S204,根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
首先,对每个节点对应的任务的完成时间进行说明。
完成时间可以包括最早完成时间和最迟完成时间。
图4所示为一个构建好任务拓扑图。在此将结合此任务拓扑图进行说明。图4中一共9个任务单元v1-v9,每个节点右下方的数字表示这个任务单元执行需要的时间t(ms)。
每个任务的执行时间是可以从数据库中获取或者直接获知的。图4中的执行某一节点对应的任务的时间记录在节点的右下方,在实际操作中,可以将该任务的名称和执行该任务需要的时间存储在一个数据表中,方便调用。
在一实施例中,可以利用两次动态规划来找到所有的关键节点,关键节点组成的路径就是关键路径。具体来说,可以计算多个节点中每一个节点对应的任务的最早完成时间。
具体地,可以从前往后(即从图中从左向右)递推计算各个节点的最早完成时间。从v1节点开始往后递推计算出每个节点最早完成时间Te(Vi)。即:当前节点的执行时间t(vi)加上前继节点中最早完成时间的最大值,v1最早完成时间点为自己任务需要的时间2,该最早完成时间的递推方程如下:
Te(Vi)=t(vi)+Max{Te(Vj)|j=1,2,...n-1;j≠i}
在图4中,每个节点上方的括号中,左边的数字为该节点的最早完成时间。最后标记在v9节点上方括号中左侧的数字为整个任务的完成时间点。也就是整个请求的响应时间。例如,针对节点v2,该节点v2的执行时间为5ms,前继节点v1的执行时间为2ms,则该节点v2的最早完成时间为5ms+2ms=7ms。针对节点v5,该节点v5的执行时间为8ms,前继节点v2的最早完成时间为7ms,前继结点v3的最早完成时间为3ms,则节点v2和v3相比,二者中最早完成时间的最大值为7ms,因此节点v5的最早完成时间为7ms+8ms=15ms。
其次,可以计算多个节点中每一个节点对应的任务的最迟完成时间。例如可以从后往前(即从图中从右向左)递推计算各个节点的最迟完成时间。最迟完成时间是指在整个任务完成时间不推迟的前提下,各个节点最迟完成的时间点。从v9节点开始往前递推计算出各个节点的最迟完成时间Tl(Vi)。V9的最迟完成时间点为Te(V9)。即:在当前节点Vi的所有后继节点中选择最早完成时间的最小的这个节点Vj,用这个节点的最早完成时间点减掉其本身完成任务需要的时间,该最迟完成时间的递推方程如下:
Tl(Vi)=Min{Te(Vj)-t(vj)|j=2,...n;j≠i}
在图4中,每个节点上方的括号中,右边的数字为该节点的最迟完成时间。例如,针对节点v5,其后继节点分别为v7和v8,v7的最早完成时间为18ms,v8的最早完成时间为17ms,选其中的最小值17ms以及对应的节点v8,再减去该节点v8本身的完成时间2ms,获得节点v5的最迟完成时间为17ms-2ms=15ms。
在确定了任务完成时间之后,可以根据完成时间确定节点类型。节点类型可以包括关键节点和非关键节点,对应两种任务完成时间的情况:
第一种情况:任务对应的最早完成时间等于最迟完成时间,这个节点就是关键节点,由这些关键节点组成的路径就是关键路径,如图4中底色为深色的节点和路径。
第二种情况:任务对应的最早完成时间小于最迟完成时间,这两个时间的差值表明该节点有余量,整个节点在任务可以开始的时间点上即使推迟后再开始也不会影响整个任务的进度,所以这些节点可以填充更多的任务。
因此,可以根据节点对应的任务的完成时间,判断该节点为关键节点或非关键节点,进行后续处理。
在执行步骤S204之后,可以执行步骤S205,如下:
S205,当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
当判断某一个节点为非关键节点时,可以在非关键节点组成的任务路径中插入其他任务,或者在该非关键节点之前插入其他任务。“任务路径”可以指该非关键节点所处的路径,即该非关键节点及必须在该非关键节点之前执行的任务对应的节点组成的路径。在该非关键节点之前插入其他任务,插入的其他任务可以紧邻该非关键节点,利用了非关键节点所在的路径的时间余量,执行其他任务。
上述“其他任务”,可以是当前多个任务中其中的一个任务,或者是新增加的任务等,在此并不限定。
在一实施例中,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,还包括:
S206,当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
针对关键节点,只要将这些节点再进行合理的拆分成更多的并行节点或者是将部分任务转移到有余量的节点里执行就能进一步的减少响应时间,提高整个系统的资源利用率和吞吐量,实现效率的优化。针对非关键节点,可以在非关键节点组成的非关键路径中增加新的任务。
在图4所示的示例中,产生的响应时间为19ms。如果按照普通串行模型来计算整个任务的响应时间,那么将会是所有节点v1-v9执行时间之和27ms。由上述可知,这一并发系统的执行时间节省了将近30%。
在一实施例中,上述步骤S204,即根据多个节点中每一个节点对应的任务的完成时间,确定节点类型的步骤,具体可以包括如下子步骤:
S2041,确定多个节点中每一个节点对应的任务的执行时间;
S2042,计算多个节点中每一个节点对应的任务的最早完成时间;
S2043,计算多个节点中每一个节点对应的任务的最迟完成时间;
S2044,根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型。
在子步骤S2041中,每个任务的执行时间是可以从数据库中获取或者直接获知的。图4中的执行某一节点对应的任务的时间记录在节点的右下方,在实际操作中,可以将该任务的名称和执行该任务需要的时间存储在一个数据表中,方便调用。
在一实施例中,可以利用两次动态规划来找到所有的关键节点,关键节点组成的路径就是关键路径。具体来说,步骤S2042中,可以计算多个节点中每一个节点对应的任务的最早完成时间。
具体地,可以从前往后(即从图中从左向右)递推计算各个节点的最早完成时间。从v1节点开始往后递推计算出每个节点最早完成时间Te(Vi)。即:当前节点的执行时间t(vi)加上前继节点中最早完成时间的最大值,v1最早完成时间点为自己任务需要的时间2,该最早完成时间的递推方程如下:
Te(Vi)=t(vi)+Max{Te(Vj)|j=1,2,...n-1;j≠i}
在图4中,每个节点上方的括号中,左边的数字为该节点的最早完成时间。最后标记在v9节点上方括号中左侧的数字为整个任务的完成时间点。也就是整个请求的响应时间。例如,针对节点v2,该节点v2的执行时间为5ms,前继节点v1的执行时间为2ms,则该节点v2的最早完成时间为5ms+2ms=7ms。针对节点v5,该节点v5的执行时间为8ms,前继节点v2的最早完成时间为7ms,前继结点v3的最早完成时间为3ms,则节点v2和v3相比,二者中最早完成时间的最大值为7ms,因此节点v5的最早完成时间为7ms+8ms=15ms。
其次,在子步骤S2043中,可以计算多个节点中每一个节点对应的任务的最迟完成时间。例如可以从后往前(即从图中从右向左)递推计算各个节点的最迟完成时间。最迟完成时间是指在整个任务完成时间不推迟的前提下,各个节点最迟完成的时间点。从v9节点开始往前递推计算出各个节点的最迟完成时间Tl(Vi)。V9的最迟完成时间点为Te(V9)。即:在当前节点Vi的所有后继节点中选择最早完成时间的最小的这个节点Vj,用这个节点的最早完成时间点减掉其本身完成任务需要的时间,该最迟完成时间的递推方程如下:
Tl(Vi)=Min{Te(Vj)-t(vj)|j=2,...n;j≠i}
在图4中,每个节点上方的括号中,右边的数字为该节点的最迟完成时间。例如,针对节点v5,其后继节点分别为v7和v8,v7的最早完成时间为18ms,v8的最早完成时间为17ms,选其中的最小值17ms以及对应的节点v8,再减去该节点v8本身的完成时间2ms,获得节点v5的最迟完成时间为17ms-2ms=15ms。
在执行了子步骤S2042和子步骤S2043之后,可以根据节点对应的任务的所述最早完成时间和最迟完成时间,判断所述节点为关键节点或非关键节点,即执行子步骤S2044。
关键节点和关键路径、非关键节点和非关键路径的确定方法已如前所述。经过上述算法,就能找到关键节点和关键路径,即最早完成时间等于最迟完成时间的节点。同时也能找到非关键节点和非关键路径,即最早完成时间小于最迟完成时间的节点。
综上所述,本实施例提出的任务处理方法至少具有如下优点:
根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。
除此之外,本实施例提出的任务处理方法至少还包括如下优点:
根据本发明实施例提出的任务处理方法和装置,在可选实施例中,可以在根据任务拓扑图执行任务之前对任务拓扑图进行优化,确定关键节点和/或非关键节点。针对关键节点的任务,可以进一步进行拆分,以提高执行效率;针对非关键节点,可以在该节点增加新的任务以避免浪费时间等待其他任务路径上的任务结束。因此,本发明优选实施例提出的方案进一步提高了总任务执行的效率,减少了执行时间。
第三实施例
本发明第三实施例提出一种任务处理装置,如图5所示,该装置可以包括如下模块:
序列图建立模块302,用于利用多个任务之间的约束关系,建立任务序列图;
拓扑排序模块303,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
任务执行模块303,用于根据拓扑排序结果执行所述多个任务。拓扑排序模块
综上所述,本实施例提出的任务处理装置至少具有如下优点:
根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。
第四实施例
本发明第四实施例提出一种任务处理装置,如图6所示,该装置包括:
序列图建立模块402,用于利用多个任务之间的约束关系,建立任务序列图;
拓扑排序模块403,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
任务执行模块407,用于根据拓扑排序结果执行所述多个任务。在一可选实施例中,所述装置还包括:
节点类型确定模块404,用于根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
任务插入模块405,用于当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
在一可选实施例中,所述装置还包括:
任务拆分模块406,用于当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
在一可选实施例中,所述节点类型确定模块404包括如下子模块:
执行时间确定子模块,用于确定多个节点中每一个节点对应的任务的执行时间;
第一完成时间确定子模块,用于计算多个节点中每一个节点对应的任务的最早完成时间;
第二完成时间确定子模块,用于计算多个节点中每一个节点对应的任务的最迟完成时间;
确定子模块,用于根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型。
在一可选实施例中,所述确定子模块可以用于:
当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;
当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。
在一可选实施例中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;
所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。
在一可选实施例中,所述装置还包括:
拆分模块401,用于将任务执行系统的总任务拆分为多个任务。
在一可选实施例中,所述拆分模块进一步用于:依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。
在一可选实施例中,所述任务序列图为有向无环图。
综上所述,本实施例提出的任务处理装置至少具有如下优点:
根据本发明实施例提出的任务处理方法和装置,通过将多个任务之间的执行顺序建立任务序列图,并且针对任务序列图中的多个任务进行拓扑排序,生成任务拓扑图,根据任务拓扑图执行多个任务。在根据任务拓扑图执行任务中,可以对无因果关系的任务并行执行,减少了串行任务执行的等待时间,提高了任务总体执行的效率。
除此之外,本实施例提出的任务处理装置至少还包括如下优点:
根据本发明实施例提出的任务处理方法和装置,在可选实施例中,可以在根据任务拓扑图执行任务之前对任务拓扑图进行优化,确定关键节点和/或非关键节点。针对关键节点的任务,可以进一步进行拆分,以提高执行效率;针对非关键节点,可以在该节点增加新的任务以避免浪费时间等待其他任务路径上的任务结束。因此,本发明优选实施例提出的方案进一步提高了总任务执行的效率,减少了执行时间。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
图7为本申请一实施例提供的终端设备的硬件结构示意图。如图7所示,该终端设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该终端设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图8为本申请另一实施例提供的终端设备的硬件结构示意图。图8是对图7在实现过程中的一个具体的实施例。如图8所示,本实施例的终端设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图1至图4的任务处理方法。
存储器102被配置为存储各种类型的数据以支持在终端设备的操作。这些数据的示例包括用于在终端设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该终端设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。终端设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制终端设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图4方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为终端设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为终端设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在终端设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当终端设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为终端设备提供各个方面的状态评估。例如,传感器组件108可以检测到终端设备的打开/关闭状态,组件的相对定位,用户与终端设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与终端设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于终端设备和其他设备之间有线或无线方式的通信。终端设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该终端设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得终端设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图8实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图7实施例中的输入设备的实现方式。
本申请实施例提供了一种终端设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行如本申请实施例中一个或多个所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种任务处理方法和任务处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (22)

1.一种任务处理方法,其特征在于,包括:
利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
根据排序结果执行所述多个任务。
2.根据权利要求1所述的方法,其特征在于,所述对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的步骤之后,所述方法还包括:
根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
3.根据权利要求2所述的方法,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,所述方法还包括:
当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
4.根据权利要求2或3所述的方法,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定所述节点的节点类型的步骤包括:
确定多个节点中每一个节点的任务执行时间;
计算多个节点中每一个节点对应的任务的最早完成时间;
计算多个节点中每一个节点对应的任务的最迟完成时间;
根据节点对应的任务的所述最早完成时间和最迟完成时间,确定个所述节点的节点类型。
5.根据权利要求3所述的方法,其特征在于,所述根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型的步骤包括:
当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;
当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。
6.根据权利要求4所述的方法,其特征在于,所述计算多个节点中每一个节点对应的任务的最早完成时间的步骤中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;
所述计算多个节点中每一个节点对应的任务的最迟完成时间的步骤中,所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。
7.根据权利要求1所述的方法,其特征在于,在利用多个任务之间的约束关系,建立任务序列图的步骤之前,所述方法还包括:
将任务执行系统的总任务拆分为多个任务。
8.根据权利要求7所述的方法,其特征在于,所述将任务执行系统的总任务拆分为多个任务的步骤中,是依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。
9.根据权利要求1所述的方法,其特征在于,所述任务序列图为有向无环图。
10.一种任务处理装置,包括:
序列图建立模块,用于利用多个任务之间的约束关系,建立任务序列图;
拓扑排序模块,用于对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
任务执行模块,用于根据拓扑排序结果执行所述多个任务。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
节点类型确定模块,用于根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
任务插入模块,用于当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
任务拆分模块,用于当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
13.一种终端设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述终端设备执行如下操作:
利用多个任务之间的约束关系,建立任务序列图,所述任务序列图包括节点和边,所述节点对应于任务,所述边对应于任务之间的约束关系;
对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务;
根据排序结果执行所述多个任务。
14.根据权利要求13所述的设备,其特征在于,所述对所述任务序列图中的多个任务进行拓扑排序,确定并发执行的任务的操作之后,所述操作还包括:
根据多个节点中每一个节点对应的任务的完成时间,确定节点类型;
当确定其中一个节点的节点类型为非关键节点时,在所述非关键节点组成的路径中插入任务。
15.根据权利要求14所述的设备,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定节点类型之后,所述操作还包括:
当确定其中一个节点的节点类型为关键节点时,拆分所述关键节点对应的任务。
16.根据权利要求14或15所述的设备,其特征在于,所述根据多个节点中每一个节点对应的任务的完成时间,确定所述节点的节点类型的操作包括:
确定多个节点中每一个节点的任务执行时间;
计算多个节点中每一个节点对应的任务的最早完成时间;
计算多个节点中每一个节点对应的任务的最迟完成时间;
根据节点对应的任务的所述最早完成时间和最迟完成时间,确定个所述节点的节点类型。
17.根据权利要求15所述的设备,其特征在于,所述根据节点对应的任务的所述最早完成时间和最迟完成时间,确定所述节点的节点类型的操作包括:
当节点对应的任务的最早完成时间小于最迟完成时间,则判断该节点为非关键节点;
当节点对应的任务的最早完成时间等于最迟完成时间,则判断该节点为关键节点。
18.根据权利要求16所述的设备,其特征在于,所述计算多个节点中每一个节点对应的任务的最早完成时间的操作中,所述节点对应的任务的最早完成时间包括:当前节点的任务的执行时间加上前继节点的任务中最早完成时间的最大值;
所述计算多个节点中每一个节点对应的任务的最迟完成时间的操作中,所述节点的最迟完成时间包括:在当前节点的所有后继节点中的最早完成时间的最小值减去该后继节点的执行时间。
19.根据权利要求13所述的设备,其特征在于,在利用多个任务之间的约束关系,建立任务序列图的操作之前,还包括:
将任务执行系统的总任务拆分为多个任务。
20.根据权利要求19所述的设备,其特征在于,所述将任务执行系统的总任务拆分为多个任务的操作中,是依据所述任务执行系统的系统开销和所述拆分后的多个任务占用的任务执行系统的资源确定拆分后的任务的粒度。
21.根据权利要求13所述的设备,其特征在于,所述任务序列图为有向无环图。
22.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行如权利要求1-9中一个或多个所述的方法。
CN201811413069.1A 2018-11-23 2018-11-23 任务处理方法和任务处理装置 Active CN111221643B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811413069.1A CN111221643B (zh) 2018-11-23 2018-11-23 任务处理方法和任务处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811413069.1A CN111221643B (zh) 2018-11-23 2018-11-23 任务处理方法和任务处理装置

Publications (2)

Publication Number Publication Date
CN111221643A true CN111221643A (zh) 2020-06-02
CN111221643B CN111221643B (zh) 2023-04-07

Family

ID=70810518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811413069.1A Active CN111221643B (zh) 2018-11-23 2018-11-23 任务处理方法和任务处理装置

Country Status (1)

Country Link
CN (1) CN111221643B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036707A (zh) * 2020-08-07 2020-12-04 合肥工业大学 面向时间不确定生产过程协同的节拍控制方法和系统
CN112633753A (zh) * 2020-12-30 2021-04-09 广东赛诺科技股份有限公司 一种基于工单动态共享系统
CN112751856A (zh) * 2020-12-30 2021-05-04 湖南快乐阳光互动娱乐传媒有限公司 一种可编排流程的媒体处理系统
CN113449142A (zh) * 2021-06-30 2021-09-28 北京百度网讯科技有限公司 信息处理方法及装置、电子设备、存储介质及产品
CN113537937A (zh) * 2021-07-16 2021-10-22 重庆富民银行股份有限公司 基于拓扑排序的任务编排方法、装置、设备及存储介质
CN113568730A (zh) * 2021-08-03 2021-10-29 北京八分量信息科技有限公司 异构任务的约束调度方法、装置及相关产品
CN113706006A (zh) * 2021-08-25 2021-11-26 成都飞机工业(集团)有限责任公司 一种设备生产的资源配置方法、装置、设备及存储介质
WO2023224547A3 (zh) * 2022-05-16 2024-02-01 脸萌有限公司 数据处理方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090178025A1 (en) * 2004-05-14 2009-07-09 Morrow Gregory O Graphical programming environment with first model of computation that includes a structure supporting second model of computation
CN102591712A (zh) * 2011-12-30 2012-07-18 大连理工大学 一种云计算中依赖任务的解耦并行调度方法
CN103150219A (zh) * 2013-04-03 2013-06-12 重庆大学 在异构资源系统上避免死锁的快速任务分配方法
CN103235742A (zh) * 2013-04-07 2013-08-07 山东大学 多核集群服务器上基于依赖度的并行任务分组调度方法
CN105117286A (zh) * 2015-09-22 2015-12-02 北京大学 MapReduce中任务的调度方法和流水化执行方法
CN107807945A (zh) * 2016-09-09 2018-03-16 百度(美国)有限责任公司 提供数据的装置、方法和数据处理系统
CN108388474A (zh) * 2018-02-06 2018-08-10 北京易沃特科技有限公司 基于dag的智能分布式计算管理系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090178025A1 (en) * 2004-05-14 2009-07-09 Morrow Gregory O Graphical programming environment with first model of computation that includes a structure supporting second model of computation
CN102591712A (zh) * 2011-12-30 2012-07-18 大连理工大学 一种云计算中依赖任务的解耦并行调度方法
CN103150219A (zh) * 2013-04-03 2013-06-12 重庆大学 在异构资源系统上避免死锁的快速任务分配方法
CN103235742A (zh) * 2013-04-07 2013-08-07 山东大学 多核集群服务器上基于依赖度的并行任务分组调度方法
CN105117286A (zh) * 2015-09-22 2015-12-02 北京大学 MapReduce中任务的调度方法和流水化执行方法
CN107807945A (zh) * 2016-09-09 2018-03-16 百度(美国)有限责任公司 提供数据的装置、方法和数据处理系统
CN108388474A (zh) * 2018-02-06 2018-08-10 北京易沃特科技有限公司 基于dag的智能分布式计算管理系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
S. DAS等: "Self-stabilizing algorithms in DAG structured networks" *
周深;杨路明;段桂华;: "VLCC中的DAG并行算法" *
翁晓熠: "海量移动应用检测任务的分布式调度技术研究与实现" *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036707A (zh) * 2020-08-07 2020-12-04 合肥工业大学 面向时间不确定生产过程协同的节拍控制方法和系统
CN112036707B (zh) * 2020-08-07 2022-11-04 合肥工业大学 面向时间不确定生产过程协同的节拍控制方法和系统
CN112633753A (zh) * 2020-12-30 2021-04-09 广东赛诺科技股份有限公司 一种基于工单动态共享系统
CN112751856A (zh) * 2020-12-30 2021-05-04 湖南快乐阳光互动娱乐传媒有限公司 一种可编排流程的媒体处理系统
CN113449142A (zh) * 2021-06-30 2021-09-28 北京百度网讯科技有限公司 信息处理方法及装置、电子设备、存储介质及产品
CN113537937A (zh) * 2021-07-16 2021-10-22 重庆富民银行股份有限公司 基于拓扑排序的任务编排方法、装置、设备及存储介质
CN113568730A (zh) * 2021-08-03 2021-10-29 北京八分量信息科技有限公司 异构任务的约束调度方法、装置及相关产品
CN113706006A (zh) * 2021-08-25 2021-11-26 成都飞机工业(集团)有限责任公司 一种设备生产的资源配置方法、装置、设备及存储介质
WO2023224547A3 (zh) * 2022-05-16 2024-02-01 脸萌有限公司 数据处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111221643B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111221643B (zh) 任务处理方法和任务处理装置
CN113535367B (zh) 任务调度方法及相关装置
CN108287708B (zh) 一种数据处理方法、装置、服务器及计算机可读存储介质
CN110247979B (zh) 一种调度方案确定方法、装置及电子设备
CN110427258B (zh) 基于云平台的资源调度控制方法及装置
CN111143039A (zh) 一种虚拟机的调度方法、装置及计算机存储介质
US11431182B2 (en) Resource statistics collection method and apparatus and terminal
CN112363913B (zh) 一种并行测试任务调度寻优的方法、装置和计算设备
CN110633959A (zh) 基于图结构的审批任务创建方法、装置、设备及介质
CN112988185A (zh) 云应用更新方法、装置、系统、电子设备及存储介质
CN111124644B (zh) 任务调度资源的确定方法、装置及系统
CN112035229A (zh) 一种计算图处理方法、装置及存储介质
CN113434063B (zh) 一种信息显示方法、装置及设备
CN110286954B (zh) 一种应用程序的启动方法、装置及存储介质
CN113923519A (zh) 视频渲染方法、装置、计算机设备及存储介质
CN107633080B (zh) 一种用户任务处理方法及装置
CN111611479A (zh) 用于网络资源推荐的数据处理方法及相关装置
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN114697398B (zh) 数据处理方法、装置、电子设备、存储介质及产品
CN116048757A (zh) 任务处理方法、装置、电子设备和存储介质
CN114611045A (zh) 前端接口请求的处理方法、装置、计算机设备及存储介质
CN110188297B (zh) 资源信息展示方法、计算设备及计算机存储介质
CN113806055A (zh) 一种轻量级任务调度方法、系统、装置及存储介质
CN112395081A (zh) 一种资源在线自动回收方法、系统、服务器以及存储介质
CN111158725B (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