CN111597028B - 用于任务调度的方法和装置 - Google Patents

用于任务调度的方法和装置 Download PDF

Info

Publication number
CN111597028B
CN111597028B CN202010425791.8A CN202010425791A CN111597028B CN 111597028 B CN111597028 B CN 111597028B CN 202010425791 A CN202010425791 A CN 202010425791A CN 111597028 B CN111597028 B CN 111597028B
Authority
CN
China
Prior art keywords
subtask
sequence
subtasks
task
sub
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.)
Active
Application number
CN202010425791.8A
Other languages
English (en)
Other versions
CN111597028A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010425791.8A priority Critical patent/CN111597028B/zh
Publication of CN111597028A publication Critical patent/CN111597028A/zh
Application granted granted Critical
Publication of CN111597028B publication Critical patent/CN111597028B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了用于任务调度的方法和装置。具体实现方案为:获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;根据依赖关系信息和耗时信息确定子任务执行的关键路径;根据关键路径生成表征子任务执行顺序的子任务序列;将子任务序列分配至处理单元执行。该实施方式提高了资源利用率。

Description

用于任务调度的方法和装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及任务调度技术领域。
背景技术
随着物联网、人工智能、大数据等业务对处理器的更高要求,高性能计算平台在科技领域扮演着越来越重要的角色。国内云计算市场渐渐分化产生了金融云、工业云、教育云等以不同行业为服务内容的云产品,以应对各类激增的计算需求。
任务调度方式决定了对芯片的利用是否充分,以现场可编程门阵列(Field-Programmable Gate Array,FPGA)为例,FPGA具有功耗低、并行性高和计算速度快的特点,新一代FPGA还具有动态可重构功能,进一步提升了器件灵活性和计算效率。与通用处理器和GPU相比,FPGA自身独有的属性特点,传统调度策略实现的是根据用户申请的FPGA芯片的板级分配,导致资源利用率不高。
发明内容
本申请实施例提出了用于任务调度的方法、装置、设备以及存储介质。
第一方面,本申请的一些实施例提供了一种用于任务调度的方法,该方法包括:获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;根据依赖关系信息和耗时信息确定子任务执行的关键路径;根据关键路径生成表征子任务执行顺序的子任务序列;将子任务序列分配至处理单元执行。
第二方面,本申请的一些实施例提供了一种用于任务调度的装置,该装置包括:获取单元,被配置成获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;第一确定单元,被配置成根据依赖关系信息和耗时信息确定子任务执行的关键路径;生成单元,被配置成根据关键路径生成表征子任务执行顺序的子任务序列;分配单元,被配置成将子任务序列分配至处理单元执行。
第三方面,本申请的一些实施例提供了一种设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得上述一个或多个处理器实现如第一方面上述的方法。
第四方面,本申请的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面上述的方法。
根据本申请的技术,通过关键路径生成表征子任务执行顺序的子任务序列,并将子任务序列分配至处理单元,将任务的分配细化到处理单元级别,提高了资源利用率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的一些可以应用于其中的示例性系统架构图;
图2是根据本申请第一实施例的示意图;
图3是本申请实施例的一个可选实施方式中表征子任务之间的依赖关系的矩阵示意图;
图4是根据本申请实施例的一个可选实施方式中分解矩阵生成路径的示意图;
图5是根据本申请第二实施例的示意图;
图6是本申请实施例的一个可选实施方式中有向无环图的示意图;
图7是根据本申请第三实施例的示意图;
图8是根据本申请第四实施例的示意图;
图9是适于用来实现本申请实施例的用于任务调度的方法的处理器所在的电子设备的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于任务调度的方法或用于任务调度的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括芯片101、102、103,网络104和处理器105。网络104用以在芯片101、102、103和处理器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路等等。
芯片101、102、103可以用于处理各种计算任务,芯片101、102、103可以是FPGA、多核处理器等包含若干个处理单元的芯片,对于FPGA来说,处理单元可以包括其内部可独立执行处理任务的一套内部资源,例如,可配置逻辑模块(Configurable Logic Block,CLB)对于多核处理器来说,处理单元可以包括计算引擎(内核)。处理器105可以是执行任务调度的处理器,例如,可以是CPU,处理器105可以为芯片101、102、103中的处理单元分配任务,处理器105可以获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;根据依赖关系信息和耗时信息确定子任务执行的关键路径;根据关键路径生成表征子任务执行顺序的子任务序列;将子任务序列分配至处理单元执行。
需要说明的是,本申请实施例所提供的用于任务调度的方法可以由处理器105执行,相应地,用于任务调度的装置可以设置于处理器105中。
应该理解,图1中的芯片、网络和处理器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的芯片、网络和处理器。
继续参考图2,示出了根据本申请的用于任务调度的方法的一个实施例的流程200。该用于任务调度的方法,包括以下步骤:
步骤201,获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息。
在本实施例中,用于任务调度的方法执行主体(例如图1所示的处理器)可以首先获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息,一个或多个待执行任务可以保存于待执行任务集合中。待执行任务可以包括高性能计算平台中待执行的计算任务。待执行任务又可分解为若干个子任务,各子任务之间可能存在依赖关系,子任务之间的依赖关系信息可以通过分析子任务的输入输出得到。例如,第一子任务的输出为第二子任务的输入,则第二子任务依赖于第一子任务。
依赖关系信息可以通过有向无环图(Directed Acyclic Graph,DAG)等形式体现,对于任何有向无环图而言,其拓扑排序为其所有结点的一个线性排序(同一个有向图可能存在多个这样的结点排序)。该排序满足这样的条件:对于图中的任意两个结点U和V,若存在一条有向边从U指向V,则在拓扑排序中U一定出现在V前面。
如图3所示,也可以使用矩阵存储任务集合中子任务间的数据依赖关系,其中1可以表示存在依赖关系,0可以表示不存在依赖关系。
子任务的耗时信息或子任务耗时信息的确定规则可以由用户进行设置。在本实施例的一些可选实现方式中,子任务的耗时信息经由以下步骤确定:将子任务的复杂度信息、计算数据量信息、通信带宽信息输入预先建立的耗时确定模型,生成子任务的耗时信息。耗时确定模型可以由历史子任务的执行耗时与历史子任务的复杂度信息、计算数据量信息、通信带宽信息分析或训练得到。相比通过用户设置的方式确定子任务的耗时信息,本实现方式中确定耗时信息的效率更高。
步骤202,根据依赖关系信息和耗时信息确定子任务执行的关键路径。
在本实施例中,上述执行主体可以根据步骤201中得到的依赖关系信息和耗时信息确定子任务执行的关键路径。关键路径是指设计中从输入到输出经过的延时最长的逻辑路径。上述执行主体可以通过有向无环图、建立矩阵或其他关键路径的算法确定关键路径。作为示例,可以参考图4,上述执行主体可以通过分解矩阵生成有效路径,在此基础上,结合子任务的耗时信息可以确定子任务执行的关键路径。
步骤203,根据关键路径生成表征子任务执行顺序的子任务序列。
在本实施例中,上述执行主体可以根据步骤202中得到的关键路径生成表征子任务执行顺序的子任务序列。上述执行主体可以优先将关键路径中的子任务加入子任务序列,也可以根据关键路径,以及依赖关系信息将关键路径中的子任务及关键路径中子任务所依赖的子任务优先加入子任务序列。例如,可以依次确定关键路径中子任务所依赖的子任务中是否存在未执行的子任务,如果存在,则将其加入子任务序列,再将关键路径中子任务加入子任务序列,最后将其他子任务加入子任务序列。
在本实施例的一些可选实现方式中,上述执行主体还可以执行以下步骤以得到子任务序列:步骤1:将第一个子任务作为当前节点,加入子任务序列;步骤2:移除矩阵中子任务所对应的向量;步骤3:若当前节点存在所依赖的任务未进入子任务序列,则将当前不存在未加入子任务序列的所依赖的任务的子任务加入子任务序列,重新执行步骤2;步骤4:沿着关键路径,选择当前节点的下一个节点作为新的当前节点,加入子任务序列;步骤5:若当前节点的兄弟节点不存在所依赖的任务未放入子任务序列,则放入子任务序列;步骤6:若存在任务未进入子任务序列,返回步骤2。
步骤204,将子任务序列分配至处理单元执行。
在本实施例中,上述执行主体可以将步骤203中生成的子任务序列分配至处理单元执行。上述执行主体可以依据预设顺序或各个处理单元处理任务的饱和情况等指标将子任务序列分配至处理单元执行。
本申请的上述实施例提供的方法通过关键路径生成表征子任务执行顺序的子任务序列。由于关键路径的耗时决定了任务的整体耗时,相比于其他确定子任务执行顺序的方式,基于关键路径生成子任务序列更加合理,有利于缩短任务执行时间,提升资源的利用率。
进一步参考图5,其示出了用于任务调度的方法的又一个实施例的流程500。该用于任务调度的方法的流程500,包括以下步骤:
步骤501,获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息。
步骤502,根据依赖关系信息和耗时信息生成有向无环图。
在本实施例中,用于任务调度的方法执行主体(例如图1所示的处理器)可以根据步骤501中获取的依赖关系信息和耗时信息生成有向无环图。
步骤503,将有向无环图中耗时最长的一条路径确定为关键路径。
在本实施例中,上述执行主体可以将步骤502中得到的有向无环图中耗时最长的一条路径确定为关键路径。上述执行主体可以依次计算每条路径的耗时以确定关键路径,也可以根据有向无环图相关算法中的关键路径发现算法,找到关键路径。
步骤504,根据关键路径生成表征子任务执行顺序的子任务序列。
在本实施例中,上述执行主体可以根据步骤505中得到的关键路径生成表征子任务执行顺序的子任务序列。
在本实施例的一些可选实现方式中,根据关键路径生成表征子任务执行顺序的子任务序列,包括:从关键路径的第一个节点起,依次将关键路径中未加入子任务序列的节点确定为目标节点;响应于确定目标节点不存在未加入子任务序列的前继子任务,将目标节点和目标节点的兄弟节点加入子任务序列;响应于确定目标节点存在未加入子任务序列的前继子任务,将当前有向无环图中不存在未加入子任务序列的前继子任务的节点加入子任务序列。参考图6,图6所示的有向无环图中,A、B、C、D、E可以分别代表一个子任务,以图6中有向无环图的关键路径为A-B-D-E为例,可以首先将A确定为目标节点,A不存在未加入子任务序列的前继子任务,将A加入子任务序列,而后将B确定为目标节点,确定B不存在未加入子任务序列的前继子任务,将B加入子任务序列,而后将D确定为目标节点,D存在未加入子任务序列的前继子任务C,C不存在未加入子任务序列的前继子任务,将C加入子任务序列,D不存在未加入子任务序列的前继子任务,将D加入子任务序列,最后将E确定为目标节点,E不存在未加入子任务序列的前继子任务,将E加入子任务序列。最终得到的子任务序列为A-B-C-D-E。本实现方式确定的子任务序列,保证了子任务排列的合理性,可以进一步提高任务的执行效率。
步骤505,将子任务序列分配至处理单元执行。
在本实施例中,步骤501、步骤504、步骤505的操作与步骤201、步骤203、步骤204的操作基本相同,在此不再赘述。
从图5中可以看出,与图2对应的实施例相比,本实施例中的用于任务调度的方法的流程500中通过有向无环图确定关键路径,由此,本实施例描述的方案进一步提高了任务调度的效率。
进一步参考图7,其示出了用于任务调度的方法的又一个实施例的流程700。该用于任务调度的方法的流程700,包括以下步骤:
步骤701,获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息。
步骤702,根据依赖关系信息和耗时信息确定子任务执行的关键路径。
步骤703,根据关键路径生成表征子任务执行顺序的子任务序列。
步骤704,确定处理单元的数量和子任务序列的数量。
在本实施例中,用于任务调度的方法执行主体(例如图1所示的处理器)可以确定处理单元的数量和子任务序列的数量。处理单元的数量可以是可以用于执行子任务的处理单元的数量。子任务序列的数量与待执行任务集合中待执行任务的数量有关。
步骤705,响应于确定处理单元的数量小于子任务序列的数量,混合子任务序列。
在本实施例中,上述执行主体可以响应于确定步骤704中得到的处理单元的数量小于子任务序列的数量,混合子任务序列。其中,混合后的子任务序列的数量与处理单元的数量相同。混合的规则可以根据实际需要进行设置。
在本实施例的一些可选实现方式中,混合子任务序列,包括:确定子任务序列中各个子任务序列的耗时;根据确定的耗时混合子任务序列,使得混合后的子任务序列之间耗时的差值最小。在本实现方式中,根据确定的耗时混合子任务序列,使得任务的调度更加合理,可以进一步提高任务的执行效率。此外,还可以将耗时最长的子任务序列与耗时最短的子任务序列混合,耗时第二长的子任务序列与耗时第二短的子任务序列混合,以此类推。
在本实施例的一些可选实现方式中,混合子任务序列,包括:将待混合的两个子任务序列中的子任务交替放置,得到混合后的子任务序列。例如,待混合的两个子任务序列分别为“X-Y-Z”和“O-P-Q”,则混合后的子任务序列为“X-O-Y-P-Z-Q”或“O-X-P-Y-Q-Z”。在本实现方式中,将待混合的两个子任务序列中的子任务交替放置,使得任务的调度更加合理,可以进一步提高任务的执行效率。
步骤706,将混合后的子任务序列分配至不同处理单元执行。
在本实施例中,上述执行主体可以将步骤705中得到的混合后的子任务序列分配至不同处理单元执行。可以为每个处理单元分配一个混合后的子任务序列。
在本实施例中,步骤701、步骤702、步骤703的操作与步骤201、步骤202、步骤203的操作基本相同,在此不再赘述。
从图7中可以看出,与图2对应的实施例相比,本实施例中的用于任务调度的方法的流程700中,通过混合子任务序列,使得任务的调度更加合理,可以进一步提高任务的执行效率和芯片资源的利用率。
进一步参考图8,作为对上述各图所示方法的实现,本申请提供了一种用于任务调度的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的用于任务调度的装置800包括:获取单元801、第一确定单元802、生成单元803、分配单元804。其中,获取单元,被配置成获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;第一确定单元,被配置成根据依赖关系信息和耗时信息确定子任务执行的关键路径;生成单元,被配置成根据关键路径生成表征子任务执行顺序的子任务序列;分配单元,被配置成将子任务序列分配至处理单元执行。
在本实施例中,用于任务调度的装置800的获取单元801、第一确定单元802、生成单元803、分配单元804的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
在本实施例的一些可选实现方式中,第一确定单元,进一步被配置成:根据依赖关系信息和耗时信息生成有向无环图;将有向无环图中耗时最长的一条路径确定为关键路径。
在本实施例的一些可选实现方式中,生成单元,进一步被配置成:从关键路径的第一个节点起,依次将关键路径中未加入子任务序列的节点确定为目标节点;响应于确定目标节点不存在未加入子任务序列的前继子任务,将目标节点和目标节点的兄弟节点加入子任务序列;响应于确定目标节点存在未加入子任务序列的前继子任务,将当前有向无环图中不存在未加入子任务序列的前继子任务的节点加入子任务序列。
在本实施例的一些可选实现方式中,装置还包括第二确定单元,第二确定单元被配置成:将子任务的复杂度信息、计算数据量信息、通信带宽信息输入预先建立的耗时确定模型,生成子任务的耗时信息。
在本实施例的一些可选实现方式中,分配单元,包括:确定模块,被配置成确定处理单元的数量和子任务序列的数量;混合模块,被配置成响应于确定处理单元的数量小于子任务序列的数量,混合子任务序列,其中,混合后的子任务序列的数量与处理单元的数量相同;分配模块,被配置成将混合后的子任务序列分配至不同处理单元执行。
在本实施例的一些可选实现方式中,混合模块,进一步被配置成:确定子任务序列中各个子任务序列的耗时;根据确定的耗时混合子任务序列,使得混合后的子任务序列之间耗时的差值最小。
在本实施例的一些可选实现方式中,混合模块,进一步被配置成:将待混合的两个子任务序列中的子任务交替放置,得到混合后的子任务序列。
本申请的上述实施例提供的装置,通过针对待执行任务集合中的待执行任务:获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;根据依赖关系信息和耗时信息确定子任务执行的关键路径;根据关键路径生成表征子任务执行顺序的子任务序列;将子任务序列分配至处理单元执行,提高了资源利用率。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的用于任务调度的方法的处理器所在的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、处理器、刀片式处理器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为处理器阵列、一组刀片式处理器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的用于任务调度的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于任务调度的方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于任务调度的方法对应的程序指令/模块(例如,附图8所示的获取单元801、第一确定单元802、生成单元803、分配单元804)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的用于任务调度的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于任务调度的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至用于任务调度的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于任务调度的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与用于任务调度的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据处理器)、或者包括中间件部件的计算系统(例如,应用处理器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和处理器。客户端和处理器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-处理器关系的计算机程序来产生客户端和处理器的关系。
根据本申请实施例的技术方案,提高了资源利用率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种用于任务调度的方法,包括:
获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;
根据所述依赖关系信息和所述耗时信息生成有向无环图;
将所述有向无环图中耗时最长的一条路径确定为关键路径;
根据所述关键路径生成表征子任务执行顺序的子任务序列,包括:从所述关键路径的第一个节点起,依次将所述关键路径中未加入子任务序列的节点确定为目标节点;响应于确定所述目标节点不存在未加入子任务序列的前继子任务,将所述目标节点和所述目标节点的兄弟节点加入子任务序列;
将所述子任务序列分配至处理单元执行。
2.根据权利要求1所述的方法,其中,所述根据所述关键路径生成表征子任务执行顺序的子任务序列,还包括:
响应于确定所述目标节点存在未加入子任务序列的前继子任务,将所述有向无环图中不存在未加入子任务序列的前继子任务的节点加入子任务序列。
3.根据权利要求1所述的方法,其中,所述子任务的耗时信息经由以下步骤确定:
将子任务的复杂度信息、计算数据量信息、通信带宽信息输入预先建立的耗时确定模型,生成子任务的耗时信息。
4.根据权利要求1-3中任一项所述的方法,其中,所述将所述子任务序列分配至处理单元执行,包括:
确定所述处理单元的数量和所述的子任务序列的数量;
响应于确定所述处理单元的数量小于所述子任务序列的数量,混合所述子任务序列,其中,混合后的子任务序列的数量与所述处理单元的数量相同;
将混合后的子任务序列分配至不同处理单元执行。
5.根据权利要求4所述的方法,其中,所述混合所述子任务序列,包括:
确定所述子任务序列中各个子任务序列的耗时;
根据确定的耗时混合所述子任务序列,使得混合后的子任务序列之间耗时的差值最小。
6.根据权利要求4所述的方法,其中,所述混合所述子任务序列,包括:
将待混合的两个子任务序列中的子任务交替放置,得到混合后的子任务序列。
7.一种用于任务调度的装置,包括:
获取单元,被配置成获取待执行任务包括的子任务的耗时信息以及子任务之间的依赖关系信息;
第一确定单元,被配置成根据所述依赖关系信息和所述耗时信息生成有向无环图;将所述有向无环图中耗时最长的一条路径确定为关键路径;
生成单元,被配置成根据所述关键路径生成表征子任务执行顺序的子任务序列,包括:从所述关键路径的第一个节点起,依次将所述关键路径中未加入子任务序列的节点确定为目标节点;响应于确定所述目标节点不存在未加入子任务序列的前继子任务,将所述目标节点和所述目标节点的兄弟节点加入子任务序列;
分配单元,被配置成将所述子任务序列分配至处理单元执行。
8.根据权利要求7所述的装置,其中,所述生成单元,进一步被配置成:
响应于确定所述目标节点存在未加入子任务序列的前继子任务,将所述有向无环图中不存在未加入子任务序列的前继子任务的节点加入子任务序列。
9.根据权利要求7所述的装置,其中,所述装置还包括第二确定单元,所述第二确定单元被配置成:
将子任务的复杂度信息、计算数据量信息、通信带宽信息输入预先建立的耗时确定模型,生成子任务的耗时信息。
10.根据权利要求7-9中任一项所述的装置,其中,所述分配单元,包括:
确定模块,被配置成确定所述处理单元的数量和所述子任务序列的数量;
混合模块,被配置成响应于确定所述处理单元的数量小于所述子任务序列的数量,混合所述子任务序列,其中,混合后的子任务序列的数量与所述处理单元的数量相同;
分配模块,被配置成将混合后的子任务序列分配至不同处理单元执行。
11.根据权利要求10所述的装置,其中,所述混合模块,进一步被配置成:
确定所述子任务序列中各个子任务序列的耗时;
根据确定的耗时混合所述子任务序列,使得混合后的子任务序列之间耗时的差值最小。
12.根据权利要求10所述的装置,其中,所述混合模块,进一步被配置成:
将待混合的两个子任务序列中的子任务交替放置,得到混合后的子任务序列。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010425791.8A 2020-05-19 2020-05-19 用于任务调度的方法和装置 Active CN111597028B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010425791.8A CN111597028B (zh) 2020-05-19 2020-05-19 用于任务调度的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010425791.8A CN111597028B (zh) 2020-05-19 2020-05-19 用于任务调度的方法和装置

Publications (2)

Publication Number Publication Date
CN111597028A CN111597028A (zh) 2020-08-28
CN111597028B true CN111597028B (zh) 2023-08-25

Family

ID=72186071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010425791.8A Active CN111597028B (zh) 2020-05-19 2020-05-19 用于任务调度的方法和装置

Country Status (1)

Country Link
CN (1) CN111597028B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085471B (zh) * 2020-09-10 2024-05-07 北京百度网讯科技有限公司 任务分发方法、装置、电子设备及存储介质
CN112150011B (zh) * 2020-09-25 2024-01-26 杨军 动态关键路径分析方法、装置及电子设备
CN112363819A (zh) * 2020-12-02 2021-02-12 深圳市房多多网络科技有限公司 大数据任务动态编排调度方法、装置及计算设备
CN112732979B (zh) * 2020-12-29 2023-02-17 五八有限公司 信息写入方法、装置、电子设备和计算机可读介质
CN112905321A (zh) * 2021-02-07 2021-06-04 北京红山信息科技研究院有限公司 事件响应式的任务触发方法、装置、电子设备及存储介质
CN113612642B (zh) * 2021-08-03 2024-03-08 北京八分量信息科技有限公司 基于通信开销进行异构任务的刻画方法、装置及相关产品
CN113553161A (zh) * 2021-08-03 2021-10-26 北京八分量信息科技有限公司 基于时间开销进行异构任务的刻画方法、装置及相关产品
CN114625507B (zh) * 2022-03-14 2023-01-03 广州经传多赢投资咨询有限公司 基于有向无环图的任务调度方法、系统、设备及存储介质
CN114880122A (zh) * 2022-05-16 2022-08-09 脸萌有限公司 数据处理方法、装置、设备及存储介质
CN115168016B (zh) * 2022-09-07 2022-12-06 浙江大华技术股份有限公司 任务调度方法及相关装置、芯片、器件和介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636038B1 (en) * 2003-02-25 2009-12-22 Purdue Research Foundation Fault-tolerant timeout communication protocol with sensor integration
CN104503833A (zh) * 2014-12-22 2015-04-08 广州唯品会网络技术有限公司 任务调度优化方法及装置
CN106919455A (zh) * 2017-02-28 2017-07-04 北京科技大学 一种基于有向无环图的主路径填充调度方法
CN107291545A (zh) * 2017-08-07 2017-10-24 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备
CN108334951A (zh) * 2017-01-20 2018-07-27 微软技术许可有限责任公司 针对决策树的节点的数据的预统计
CN109634989A (zh) * 2018-11-16 2019-04-16 百度在线网络技术(北京)有限公司 一种hive任务执行引擎选择方法和系统
CN110083417A (zh) * 2019-04-04 2019-08-02 天津字节跳动科技有限公司 用户界面响应方法和装置
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN110806923A (zh) * 2019-10-29 2020-02-18 百度在线网络技术(北京)有限公司 一种区块链任务的并行处理方法、装置、电子设备和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636038B1 (en) * 2003-02-25 2009-12-22 Purdue Research Foundation Fault-tolerant timeout communication protocol with sensor integration
CN104503833A (zh) * 2014-12-22 2015-04-08 广州唯品会网络技术有限公司 任务调度优化方法及装置
CN108334951A (zh) * 2017-01-20 2018-07-27 微软技术许可有限责任公司 针对决策树的节点的数据的预统计
CN106919455A (zh) * 2017-02-28 2017-07-04 北京科技大学 一种基于有向无环图的主路径填充调度方法
CN107291545A (zh) * 2017-08-07 2017-10-24 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备
CN109634989A (zh) * 2018-11-16 2019-04-16 百度在线网络技术(北京)有限公司 一种hive任务执行引擎选择方法和系统
CN110083417A (zh) * 2019-04-04 2019-08-02 天津字节跳动科技有限公司 用户界面响应方法和装置
CN110554909A (zh) * 2019-09-06 2019-12-10 腾讯科技(深圳)有限公司 任务的调度处理方法、装置及计算机设备
CN110806923A (zh) * 2019-10-29 2020-02-18 百度在线网络技术(北京)有限公司 一种区块链任务的并行处理方法、装置、电子设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
核电站检修机器人任务定义及其表示研究;冯哲轩;《中国优秀硕士学位论文全文数据库 信息科技辑》(第3期);I140-354 *

Also Published As

Publication number Publication date
CN111597028A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN111597028B (zh) 用于任务调度的方法和装置
JP7214786B2 (ja) 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体
Rashid et al. Design and analysis of proposed remote controlling distributed parallel computing system over the cloud
CN111488205B (zh) 面向异构硬件架构的调度方法和调度系统
US10509683B2 (en) Modeling resource usage for a job
US20090282413A1 (en) Scalable Scheduling of Tasks in Heterogeneous Systems
CN112000450A (zh) 神经网络架构搜索方法以及装置
CN113849312B (zh) 数据处理任务的分配方法、装置、电子设备及存储介质
CN111459645B (zh) 一种任务调度方法、装置和电子设备
Guzek et al. A holistic model for resource representation in virtualized cloud computing data centers
CN112270413B (zh) 算子合并方法、装置、电子设备及存储介质
CN106293947B (zh) 虚拟化云环境下gpu-cpu混合资源分配系统和方法
CN112329919B (zh) 模型训练方法及装置
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
CN111694648B (zh) 一种任务调度方法、装置以及电子设备
CN111176838B (zh) 为二分图中的节点分配嵌入向量的方法以及装置
CN111767059B (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN111290744B (zh) 流式计算作业处理方法、流式计算系统及电子设备
CN111049900B (zh) 一种物联网流计算调度方法、装置和电子设备
Nino-Ruiz et al. Elastic scaling of e-infrastructures to support data-intensive research collaborations
An et al. Model-driven performance analysis and deployment planning for real-time stream processing
Galante et al. Exploring cloud elasticity in scientific applications
CN113778610B (zh) 用于确定资源的方法和装置
CN114860341B (zh) 线程配置方法、设备、装置、存储介质
US20170134238A1 (en) Physical machine management device and physical machine management method

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