CN111367644B - 一种面向异构融合***的任务调度方法及装置 - Google Patents
一种面向异构融合***的任务调度方法及装置 Download PDFInfo
- Publication number
- CN111367644B CN111367644B CN202010187660.0A CN202010187660A CN111367644B CN 111367644 B CN111367644 B CN 111367644B CN 202010187660 A CN202010187660 A CN 202010187660A CN 111367644 B CN111367644 B CN 111367644B
- Authority
- CN
- China
- Prior art keywords
- task
- node
- processor
- degree
- scheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000004927 fusion Effects 0.000 title abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 64
- 238000012163 sequencing technique Methods 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 12
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 23
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 5
- 210000003205 muscle Anatomy 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 125000002015 acyclic group Chemical group 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036982 action potential Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
Abstract
本发明公开了一种面向异构融合***的任务调度方法,包括:在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。上述的调度方法中,在确定每个任务优先级的过程只需要对有向无环图中与其存在依赖关系的后继节点进行计算,不需要遍历有向无环图中的全部节点进行计算,减少了计算量。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种面向异构融合***的任务调度方法及装置。
背景技术
异构融合***中包含在本地或远程部署的不同类型的计算资源,异构融合***的任务调度包括两个阶段:任务选择(或任务优先级计算)和处理器选择。
现有的优先级确定过程是依据各个任务的必要属性以及优选级算法确定的,其中,必要属性包括:计算量(任务消耗的处理器资源),内存访问量(任务消耗的内存资源),源节点和目的节点(任务由源节点启动,目的节点结束),以及通信量(任务消耗的通信链路资源)等。优先级算法包括:短作业优先算法即越短(计算量小)的任务优先级越高;关键路径算法(从起源节点到末端节点的所以路径中累计最长开销的路径)将关键路径上的所有任务设置为高优先级。在对每个任务确定优先级的过程中,需要遍历与各个任务对应的有向无环图的全部节点进行计算,计算量大。
发明内容
有鉴于此,本发明提供了一种基于微观神经驱动信息进行肌力估计的方法及装置用以解决现有的采用发放序列进行肌力估计的过程中,未考虑不同运动单位的动作电位波形对肌力贡献的差异,影响了肌力估计的准确性的问题,具体方案如下:
一种面向异构融合***的任务调度方法,包括:
在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;
对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;
依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。
上述的方法,可选的,针对所述有向无环图中的每一个节点,依据与其存在依赖关系的后继节点计算其对应的加权出度,包括:
基于所述有向无环图,确定所述各个节点的节点入度;
针对每一个节点,获取与其存在依赖关系的后继节点的节点入度,依据目标加权出度计算公式,计算与其存在依赖关系的后继节点计算其对应的加权出度;
所述目标加权出度公式为
其中,ID(vj)是节点vj的节点入度,是节点vj的权重,α是节点的2阶出度因子,WOD(vj)是一阶加权出度,WOD2(vj)是二阶加权出度, WODc(vj)全阶加权出度,vexit是出口节点succ(vj)是后继节点。
上述的方法,可选的,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求,包括:
判断所述各个处理器中是否存在空闲处理器;
若存在,判断所述空闲处理器的数量是否可以完成对所述各个任务的计算;
若可以,依据所述优先级顺序,分别获取每个任务在各个空闲处理器中的最早完成时间,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
上述的方法,可选的,还包括:
若不可以,依据优先级顺序,将对应的任务调度给所述空闲处理器进行计算,当所述空闲处理器调度完时,依据将其余未分配任务分配给其余处理器进行计算。
上述的方法,可选的,还包括:
若不存在空闲处理器,依据优先级顺序,将每个任务依据完成时间公式确定其在各个处理器最早完成时间;
所述完成时间公式为
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j,
其中,Tava(pj)是处理器pj的可用时刻,AFT指任务实际开始时间,vm和vi是节点,cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销,ESTconflict(vi,pj)是任务vi在处理器pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
针对每个任务,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
一种面向异构融合***的任务调度装置,包括:
获取模块,用于在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
计算模块,用于针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;
优先级确定模块,用于对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;
选取和计算模块,用于依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。
上述的装置,可选的,所述计算模块包括:
节点入度确定单元,用于基于所述有向无环图,确定所述各个节点的节点入度;
获取和计算单元,用于针对每一个节点,获取与其存在依赖关系的后继节点的节点入度,依据目标加权出度计算公式,计算与其存在依赖关系的后继节点计算其对应的加权出度;
所述目标加权出度公式为
其中,ID(vj)是节点vj的节点入度,是节点vj的权重,α是节点的2阶出度因子,WOD(vj)是一阶加权出度,WOD2(vj)是二阶加权出度, WODc(vj)全阶加权出度,vexit是出口节点succ(vj)是后继节点。
上述的装置,可选的,所述选取和计算模块包括:
第一判断单元,用于判断所述各个处理器中是否存在空闲处理器;
第二判断单元,用于若存在,判断所述空闲处理器的数量是否可以完成对所述各个任务的计算;
第一选择单元,用于若可以,依据所述优先级顺序,分别获取每个任务在各个空闲处理器中的最早完成时间,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
上述的装置,可选的,还包括:
计算和分配单元,用于若不可以,依据优先级顺序,将对应的任务调度给所述空闲处理器进行计算,当所述空闲处理器调度完时,依据将其余未分配任务分配给其余处理器进行计算。
上述的装置,可选的还包括:
确定单元,用于若不存在空闲处理器,依据优先级顺序,将每个任务依据完成时间公式确定其在各个处理器最早完成时间;
所述完成时间公式为
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j,
其中,Tava(pj)是处理器pj的可用时刻,AFT指任务实际开始时间,vm和vi是节点,cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销,ESTconflict(vi,pj)是任务vi在处理器pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
第二选择单元,用于针对每个任务,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
与现有技术相比,本发明包括以下优点:
本发明公开了一种面向异构融合***的任务调度方法,包括:在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。上述的调度方法中,在确定每个任务优先级的过程只需要对有向无环图中与其存在依赖关系的后继节点进行计算,不需要遍历有向无环图中的全部节点进行计算,减少了计算量。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种面向异构融合***的任务调度方法流程图;
图2为本申请实施例公开的一种有向无环图示意图;
图3为本申请实施例公开的一种任务执行流程示意图;
图4为本申请实施例公开的一种面向异构融合***的任务调度装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种面向异构融合***的任务调度方法及装置,应用在异构融合***的任务调度过程中,其中,所述异构融合***可以应用于高性能计算(high performancecomputing,HPC)、云计算和深度学习。通常,异构融合***中包含可以在本地或远程部署的一系列不同类型的计算资源。异构融合***上并行程序的调度包括两个阶段:任务选择(或任务优先级计算) 和处理器选择。任务选择根据任务属性计算其优先级,并从所有候选任务中选择要调度的任务;处理器选择则为被调度任务选定最佳处理器。
异构融合***上的调度算法研究主要分为静态调度和动态调度两类。在动态调度中,任务的执行开销、通信开销以及任务间的关系都是预先未知的,决策完全是在运行时完成。在静态调度中,这些信息则是预先已知的。笼统地讲,静态调度是编译时调度,而动态调度是运行时调度。静态调度则可以进一步分为两类:基于随机搜索引导(guided randomsearch-based)调度和启发式调度。
在异构计算中,为了充分利用异构融合***资源,宜在调度过程中保持较高的并行度。基于这一假定,所选任务应尽可能增加程序的整体并行度,应该尽早调度具有较大出度任务,以激活更多后续任务的执行,从而保证程序执行过程中始终有足够的并行度,更充分地利用处理器资源。所述调度方法的执行流程如图1所示,包括步骤:
S101、在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
本发明实施例中,针对一个总任务在对其进行任务调度时,会优先将所述总任务进行分解,得到所述总任务包含的各个任务,其中,针对分解过程可以依据经验进行也可以依据具体情况进行分解,本发明实施例中对具体的分解过程不进行限定。其中,所述各个任务由有向无环图表示:G=(V,E),其中V是节点集,E是边集。节点表示具体的计算任务,边则表示不同任务之间的数据和控制依赖关系。在抽象机器模型中,若干异构处理器通过板级互联构成计算机节点,若干计算机节点通过网络连接成计算集群。所述抽象机器模型包括:设备(device),计算机节点(computer node)和集群(cluster)。该抽象机器模型简洁地概括了从异构处理器到大规模异构***的各个硬件层次,具有很好的代表性和通用性。因此,在接收到对所述各个任务的调度请求时,获取与所述各个任务对应的有向无环图。
S102、针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;
本发明实施例中,首先依据所述有向无环图,确定所述各个节点的节点入度,其中,所述节点入度(inputdegree),也就是该节点所依赖其他节点数目。以图2所示有向无环图为例,图2中0号节点为开始节点,不依赖任何节点,入度为0,1号节点和2号节点都只依赖0号节点,因此入度为1,3 号节点依赖1号节点和2号节点,入度为2。
针对每一个节点,其对应的加权出度可以为一阶、二阶或者全阶,获取与其存在依赖关系的后继节点的节点入度,其中,所述依赖关系与所述加权出度的阶数有关,加权出度的计算方法如下:
其中,ID(vj)是节点vj的节点入度,是节点vj的权重,α是节点的2阶出度因子,WOD(vj)是一阶加权出度,WOD2(vj)是二阶加权出度, WODc(vj)全阶加权出度,vexit是出口节点succ(vj)是后继节点。
本发明实施例中,以如图2所示有向无环图为例,0号节点后继节点为(1 号节点,2号节点)两个;1号节点和2号节点的后继节点都是3;3号节点没有后继节点。以0号节点为例,若采用一阶加权出度计算方法进行计算,则只需要计算与其直接关联的1号节点和2号节点,若采用二阶加权出度的计算方法进行计算,除了1号节点和2号节点外,还需要考虑与1号节点和2 号节点存在直接关联关系的3号节点。
二阶加权出度的公式在原来基础上还补充当前节点后继节点的后继节点信息如公式2所示。节点vi的二阶WOD值就是找到节点vi所有的后继节点vj,累加它们入度的导数,同时找到vj的后继节点vk,按照系数α累加他们的入度导数。比如取系数α=0.5,0号节点的后继节点为1号节点和2号节点;针对 1号节点,它的入度为1,后继节点为3号节点,3号节点的入度为2;对2 号节点,入度为1,后继节点为3号节点,入度为2:
进一步的,对于全阶WOD值的计算,也就是一直计算到最后的末端节点,考虑到末端节点为出口节点,同时没有后继节点,定义其WOD值为0,以同样方式计算即可。
S103、对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;
本发明实施例中,在节点出度优先调度算法中,节点的加权出度被作为调度时任务的优先级,在所有就绪任务中,对各个加权出度进行排序,加权出度越高的节点越先被调度执行。算法中的WOD可以是1阶、2阶或全阶 WOD。而且调度过程和优先级计算过程可以区分开来,WOD的值既可以在调度开始前计算(针对静态有向无环图),也可以在运行时动态计算(针对动态有向无环图)。
S104、依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。
本发明实施例中,现有技术中,根据处理器实时状态信息来调用具体的处理器为每个任务分配相应处理器资源。但是,分配处理器的过程中忽视了物理网络的忙/闲状态。在处理器选择阶段中,若***使用最早完成时间在处理器选择阶段选择最合适的处理器。这可能导致在存在大量通信的情况下对最早完成时间估计的失准。为了尽可能消除这种潜在风险,获得更好的性能,本发明实施例中,为了合理利用处理器资源,选取完成时间最短的目标处理器完成计算的过程如下:
首先判断所述各个处理器中是否存在空闲处理器,判断的方法可以依据其对应的状态标识、处理器的占用百分比或者其他的判断方法,若存在时,分别获取所述空闲处理器的数量和所述各个任务的数量,进一步判断所述空闲处理器的数量是否大于所述各个任务的数量,若大于时,针对各个空闲处理器,依据优先级顺序,将所述各个任务分配给各个空闲处理器,分配的原则为:针对每一个任务,在其对应的完成时间中选择完成时间最短的目标处理器完成计算,其中,各个任务在对应的处理器上的完成时间已知。
若不大于时,则不可以完成对所述各个任务的计算,依据所述优先级顺序,首先在各个空闲处理器中为每个任务选择完成时间最短的目标处理器完成计算,选择的过程与上述过程相同,在此不再赘述。
当空闲处理器分配完成时,再将其余任务分配给其余处理器进行计算,过或者若不存在空闲处理器,为各个任务选择目标处理器的过程如下:
依据优先级顺序,将每一个任务依据
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j (5)
确定各个处理器最早完成时间,其中,Tava(pj)是处理器pj的可用时刻, AFT指任务实际开始时间,vm和vi是节点,cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销,ESTconflict(vi,pj)是任务vi在处理器 pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
针对每一个任务,在其对应的完成时间中选择完成时间最短的目标处理器完成计算。
本发明公开了一种面向异构融合***的任务调度方法,包括:在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。上述的调度方法中,在确定每个任务优先级的过程只需要对有向无环图中与其存在依赖关系的后继节点进行计算,不需要遍历有向无环图中的全部节点进行计算,减少了计算量。
本发明实施例中,基于任务节点加权出度的调度算法DONF(degree of nodefirst),并在此基础上衍生出两个变种策略(2阶和全阶DONF),进一步考虑了抽象程序模型中的更多局部和全局信息。DONF算法充分考虑数据流程序执行模型和异构***的特点,一方面,数据流程序执行模型中任务粒度小,任务间依赖关系更加复杂,DONF调度算法简化了任务选择逻辑,以更低的开销选取调度任务,且避免了对程序有向无环图的遍历,使得DONF算法可以处理更复杂的情况,比如动态图调度;另一方面,异构***中不同硬件差异大,在任务调度中通信扮演的角色更为重要,DONF算法在处理器选择阶段考虑了通信链路冲突的情况,构建出新颖的通信模型用于任务调度。
本发明实施例中,处理的任务调度问题中,应用程序由有向无环图表示: G=(V,E),其中V是节点集,E是边集。节点表示具体的计算任务,边则表示不同任务之间的数据和控制依赖关系。在抽象机器模型中,若干异构处理器通过板级互联构成计算机节点,若干计算机节点通过网络连接成计算集群。异构融合***上并行程序的调度包括两个阶段:任务选择(或任务优先级计算)和处理器选择。任务选择根据任务属性计算其优先级,并从所有候选任务中选择要调度的任务;处理器选择则为被调度任务选定最佳处理器
本发明实施例中,基于上述的调度方法进行举例说明,处理器与集群配置如表1所示,集群配置的详细信息如表1所示,共有3种处理器:小型处理器,计算速度为10GFlops,1GBRAM,1085MB/s内存带宽和1562.5MB/s网络I/O端口;中等处理器,计算速度为100GFlops,1GBRAM,1310MB/s内存带宽和3125MB/s网络端口;大型处理器,计算速度为1TFlops,2GB RAM, 1310MB/s内存带宽和3125MB/s网络端口。
任务执行的整体执行流程如图3所示,如下:全局时钟Global Timer用于记录模拟过程中程序执行的时序信息。基于***配置运行时维护3个重要的数据结构:等待列表(PendingList),就绪队列(ReadyQueue)和执行队列(ExecutionQueue)。等待列表中存储所有任务的未满足依赖关系的数量。一旦某个任务的未满足依赖关系数量减少到0,它将被***就绪队列,状态也转换为就绪。就绪队列包含程序运行期间的所有就绪任务。执行队列则存储正在执行中的所有节点及其完成时间,其中的任务节点状态都为“执行”。模拟的整个流水线可通过以下步骤具体描述:
初始化:将起源节点添加到就绪队列中。
S1:根据预设的原则从就绪队列中选择任务,其中,所述预设原则调度策略有关;
S2:根据调度策略定义的方法选取处理器执行所选任务;
S3:开始执行,将所选任务添加到执行队列中,计算并记录完成时间,更新处理器和网络链接的状态;
S4:计算下一个决策时间点,更新全局计时器,相应的跳转S1或S5;
S5:任务执行完成,将其性执行队列中删除,更新相应的处理器和网络链路状态,减少其所有后继任务为满足依赖数,如果某些任务的未满足依赖数减少为0,则将这些任务添加至就绪队列中,然后重置这些任务的未满足依赖数;
S6:如果两个队列均为空并且所需的迭代次数一致性完成,则阶数、、结束模拟,输出模拟报告。
每次从就绪队列中选择具有最大WOD值的任务,之后计算该任务在所有处理器上的EFTconflict值,并将任务分配给具有最小EFTconflict值的处理器。如果存在具有相同最大WOD值的多个任务,则最早进入就绪队列的任务先被调度以保证调度的公平性,避免任务饿死。如果有多个处理器具有相同的最小 EFTconflict值,则算法将随机选择一个,但空闲处理器(或负载最小的处理器) 在此过程中会被优先选择。
基于上述的一种面向异构融合***的任务调度方法,本发明实施例中,还提供了一种面向异构融合***的任务调度转置,所述调度装置的结构框图如图4所示,包括:
获取模块201、计算模块202、优先级确定模块203和选取和计算模块204。
其中,
所述获取模块201,用于在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
所述计算模块202,用于针对所述有向无环图中的每一个节点,依据与其存在依赖关系的后继节点计算其对应的加权出度;
所述优先级确定模块203,用于依据各个加权出度确定所述各个任务的优先级顺序;
所述选取和计算模块204,用于依据所述优先级顺序,分别在各个处理器中为每个任务选取完成时间最短的目标处理器完成计算。
本发明公开了一种面向异构融合***的任务调度装置,包括:在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。上述的调度装置中,在确定每个任务优先级的过程只需要对有向无环图中与其存在依赖关系的后继节点进行计算,不需要遍历有向无环图中的全部节点进行计算,减少了计算量。
本发明实施例中,所述计算模块202包括:
节点入度确定单元205和获取和计算单元206。
其中,
所述节点入度确定单元205,用于依据所述有向无环图,确定所述各个节点的节点入度;
所述获取和计算单元206,用于针对每一个节点,获取与其存在依赖关系的后继节点的节点入度,依据
其中,ID(vj)是节点vj的节点入度,是节点vj的权重,α是节点的2阶出度因子,WOD(vj)是一阶加权出度,WOD2(vj)是二阶加权出度, WODc(vj)全阶加权出度,vexit是出口节点succ(vj)是后继节点。
本发明实施例中,所述选取和计算模块204包括:
第一判断单元207、第二判断单元208和第一选择单元209。
其中,
所述第一判断单元207,用于判断所述各个处理器中是否存在空闲处理器;
所述第二判断单元208,用于若存在,判断所述空闲处理器的数量是否可以完成对所述各个任务的计算;
所述第一选择单元209,用于若可以,依据所述优先级顺序,在各个空闲处理器中为每个任务选择完成时间最短的目标处理器完成计算。
本发明实施例中,所述选取和计算模块204还包括:计算和分配单元210。
其中,
所述计算和分配单元210,用于若不可以,依据优先级顺序,将对应的任务分配给所述空闲处理器进行计算,当所述空闲处理器分配完时,依据将其余未分配任务分配给其余处理器进行计算。
本发明实施例中,所述选取和计算模块204还包括:确定单元211和第二选择单元212。
其中,
所述确定单元211,用于若不存在空闲处理器,依据优先级顺序,将所述各个任务依据
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j确定各个处理器最早完成时间,其中,Tava(pj)是处理器pj的可用时刻,AFT指任务实际开始时间,vm和vi是节点, cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销ESTconflict(vi,pj)是任务vi在处理器pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
所述第二选择单元212,用于针对每一个任务,在其对应的完成时间中选择完成时间最短的目标处理器完成计算。
各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种面向异构融合***的任务调度方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种面向异构融合***的任务调度方法,其特征在于,包括:
在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;
对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;
依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。
3.根据权利要求1所述的方法,其特征在于依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求,包括:
判断所述各个处理器中是否存在空闲处理器;
若存在,判断所述空闲处理器的数量是否可以完成对所述各个任务的计算;
若可以,依据所述优先级顺序,分别获取每个任务在各个空闲处理器中的最早完成时间,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
4.根据权利要求3所述的方法,其特征在于,还包括:
若不可以,依据优先级顺序,将对应的任务调度给所述空闲处理器进行计算,当所述空闲处理器调度完时,依据将其余未分配任务分配给其余处理器进行计算。
5.根据权利要求3所述的方法,其特征在于,还包括:
若不存在空闲处理器,依据优先级顺序,将每个任务依据完成时间公式确定其在各个处理器最早完成时间;
所述完成时间公式为
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j,
其中,Tava(pj)是处理器pj的可用时刻,AFT指任务实际开始时间,vm和vi是节点,cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销,ESTconflict(vi,pj)是任务vi在处理器pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
针对每个任务,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
6.一种面向异构融合***的任务调度装置,其特征在于,包括:
获取模块,用于在接收到调度请求时,获取与所述调度请求中各个任务对应的有向无环图,其中,所述有向无环图中的各个节点与所述各个任务对应;
计算模块,用于针对所述有向无环图中的每个节点,通过与其存在依赖关系的后继节点计算其对应的加权出度,得到各个加权出度;
优先级确定模块,用于对所述各个加权出度进行排序,基于排序结果确定所述各个任务的优先级顺序;
选取和计算模块,用于依据所述优先级顺序,分别在各个处理器中为每个任务选取目标处理器完成所述调度请求。
8.根据权利要求6所述的装置,其特征在于,所述选取和计算模块包括:
第一判断单元,用于判断所述各个处理器中是否存在空闲处理器;
第二判断单元,用于若存在,判断所述空闲处理器的数量是否可以完成对所述各个任务的计算;
第一选择单元,用于若可以,依据所述优先级顺序,分别获取每个任务在各个空闲处理器中的最早完成时间,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
9.根据权利要求8所述的装置,其特征在于,还包括:
计算和分配单元,用于若不可以,依据优先级顺序,将对应的任务调度给所述空闲处理器进行计算,当所述空闲处理器调度完时,依据将其余未分配任务分配给其余处理器进行计算。
10.根据权利要求8所述的装置,其特征在于,还包括:
确定单元,用于若不存在空闲处理器,依据优先级顺序,将每个任务依据完成时间公式确定其在各个处理器最早完成时间;
所述完成时间公式为
EFTconflict(vi,pj)=ESTconflict(vi,pj)+wi,j,
其中,Tava(pj)是处理器pj的可用时刻,AFT指任务实际开始时间,vm和vi是节点,cm,i指任务vm与任务vi之间的通信时间,wi,j是任务vi在处理器pj上的计算开销,ESTconflict(vi,pj)是任务vi在处理器pj上的最早开始时间,EFTconflict是任务vi在处理器pj上的最早完成时间;
第二选择单元,用于针对每个任务,将各个最早完成时间中最短时间对应的处理器作为目标处理器,将每个任务调度给对应的目标处理器完成所述调度请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187660.0A CN111367644B (zh) | 2020-03-17 | 2020-03-17 | 一种面向异构融合***的任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187660.0A CN111367644B (zh) | 2020-03-17 | 2020-03-17 | 一种面向异构融合***的任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367644A CN111367644A (zh) | 2020-07-03 |
CN111367644B true CN111367644B (zh) | 2023-03-14 |
Family
ID=71210501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010187660.0A Active CN111367644B (zh) | 2020-03-17 | 2020-03-17 | 一种面向异构融合***的任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367644B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112633753A (zh) * | 2020-12-30 | 2021-04-09 | 广东赛诺科技股份有限公司 | 一种基于工单动态共享*** |
CN112965797B (zh) * | 2021-03-05 | 2022-02-22 | 山东省计算中心(国家超级计算济南中心) | 一种Kubernetes环境下面向复杂任务的组合优先级调度方法 |
CN113485819A (zh) * | 2021-08-03 | 2021-10-08 | 北京八分量信息科技有限公司 | 异构任务的预处理方法、装置及相关产品 |
CN113535367B (zh) * | 2021-09-07 | 2022-01-25 | 北京达佳互联信息技术有限公司 | 任务调度方法及相关装置 |
CN114741121B (zh) * | 2022-04-14 | 2023-10-20 | 哲库科技(北京)有限公司 | 用于模块加载的方法与装置、电子设备 |
CN118295775A (zh) * | 2023-01-03 | 2024-07-05 | 中兴通讯股份有限公司 | 任务检索方法、装置及电子设备 |
CN116880994B (zh) * | 2023-09-07 | 2023-12-12 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193826B (zh) * | 2011-05-24 | 2012-12-19 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
US10713088B2 (en) * | 2017-03-23 | 2020-07-14 | Amazon Technologies, Inc. | Event-driven scheduling using directed acyclic graphs |
CN109561148B (zh) * | 2018-11-30 | 2021-03-23 | 湘潭大学 | 边缘计算网络中基于有向无环图的分布式任务调度方法 |
-
2020
- 2020-03-17 CN CN202010187660.0A patent/CN111367644B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111367644A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111367644B (zh) | 一种面向异构融合***的任务调度方法及装置 | |
CN107301500B (zh) | 一种基于关键路径任务前瞻的工作流调度方法 | |
US8185908B2 (en) | Dynamic scheduling in a distributed environment | |
CN106874084B (zh) | 一种分布式工作流调度的方法、装置及计算机设备 | |
CN110689262B (zh) | 天基信息***任务调度方法、装置和电子设备 | |
WO2022028157A1 (zh) | 云环境下微服务***的弹性伸缩方法、***、介质及设备 | |
CN109634744B (zh) | 一种基于云平台资源分配的精确匹配方法,设备及存储介质 | |
CN111258745B (zh) | 一种任务处理方法及设备 | |
CN109960576A (zh) | 一种面向cpu-gpu异构的低能耗任务调度策略 | |
US20100036641A1 (en) | System and method of estimating multi-tasking performance | |
Ding et al. | QoS-constrained service selection for networked microservices | |
CN115033357A (zh) | 基于动态资源选择策略的微服务工作流调度方法及装置 | |
CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和*** | |
Decker et al. | Heuristic scheduling of grid workflows supporting co-allocation and advance reservation | |
CN115022311A (zh) | 微服务容器实例的选择方法及装置 | |
Dong et al. | Deep reinforcement learning for dynamic workflow scheduling in cloud environment | |
Kaur et al. | Analysis, comparison and performance evaluation of BNP scheduling algorithms in parallel processing | |
CN114860417B (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
Hilman et al. | Task-based budget distribution strategies for scientific workflows with coarse-grained billing periods in iaas clouds | |
CN113094155A (zh) | Hadoop平台下的任务调度方法及装置 | |
Qin et al. | Dependent task scheduling algorithm in distributed system | |
CN115509926A (zh) | 一种基于改进粒子群算法的多任务调度云端测试方法 | |
US10180858B2 (en) | Parallel computing device, parallel computing system, and job control method | |
CN111813525A (zh) | 一种异构***工作流调度方法 | |
Bhatti et al. | Scheduling of parallel tasks with proportionate priorities |
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 |