CN107329822A - 面向多源多核系统的基于超任务网的多核调度方法 - Google Patents
面向多源多核系统的基于超任务网的多核调度方法 Download PDFInfo
- Publication number
- CN107329822A CN107329822A CN201710026904.5A CN201710026904A CN107329822A CN 107329822 A CN107329822 A CN 107329822A CN 201710026904 A CN201710026904 A CN 201710026904A CN 107329822 A CN107329822 A CN 107329822A
- Authority
- CN
- China
- Prior art keywords
- task
- core
- super
- network
- hts
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000009826 distribution Methods 0.000 claims abstract description 24
- 238000010586 diagram Methods 0.000 claims abstract description 18
- 238000005457 optimization Methods 0.000 claims abstract description 6
- 238000010276 construction Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 10
- 230000002860 competitive effect Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 2
- 239000000725 suspension Substances 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 239000004575 stone Substances 0.000 claims 1
- 238000013508 migration Methods 0.000 abstract description 5
- 230000005012 migration Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 10
- 238000011160 research Methods 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 3
- 102100025269 DENN domain-containing protein 2B Human genes 0.000 description 2
- 101000722264 Homo sapiens DENN domain-containing protein 2B Proteins 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000011068 loading method Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/5012—Processor sets
-
- 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/5017—Task decomposition
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
技术领域
本发明涉及计算机软件领域,尤其是计算机操作系统的调度模型(体系)。
背景技术
非对称多核系统是指由单一CPU的多核或多CPU(含SMP、NoC-MP、Mesh-MP等多CPU体系)的多核,通过网络互联构成的计算系统。在非对称多核系统中,要实现高效的多任务和大任务执行,任务调度问题是必须解决的一个关键问题。高效的任务调度策略和算法可以充分利用非对称多核系统的处理能。然而,一般任务调度问题已被证明是一个NP完全问题,因此,它引起了众多学者的关注,成为目前计算机研究领域中的一个焦点。
在任务调度方面,已有人做了大量研究,然而,归纳起来,目前相关研究中主要存在下列问题:
(A)算法缺乏对任务相关性的考虑
目前的大多数调度算法都没有考虑任务的相关性。有的虽然考虑了相关性,也是只考虑了多线程同步引起的相关性,对于大任务中模块间的相关性、多任务间的因为资源竞争引起的相关性,都缺乏考虑。有的研究虽然考虑过竞争资源引起的相关性,但也局限于考虑不同类型的计算行为调配不同类型的核,而没有根据相关关系组织核的分配。事实上,相关性既是个提高调度质量(减少空载)的根本问题,也是个难以处理的问题。
(B)算法模式的局限性
目前的针对OS下的任务的多核调度方法,大多数是直接的基于集合映射,中间未采用有效的数据结构。相应的算法实现,大多是基于集合映射的整数规划方法。虽然也有采用进化算法的,但由于时间复杂度的原因,无法实用。
整数规划的求解的基本思想是一个多步决策模式,每一步都是一种试探,可行则往下进行,不可行则重新计算(产生回溯)。具体的整数规划法有分枝定界法、割平面法、隐枚举法等。
这种方法与约束条件密切相关,当约束条件很复杂时,很难找到较为理想的规划,导致回溯的增多。特别是,对于约束条件动态变化的情况(例如,任务的间接相关性,因为任务的新增与完成以及任务的处于不同计算阶段,相关性会动态变化),这种方法的效率将更差。
(C)相关性的解决路线问题
目前的调度算法,尽管有些考虑了任务的相关性,但仍然采用基于整数规划的方法,将相关性作为了约束条件,但相关性动态复杂化或者动态变化时,不适合针对约束条件进行决策。这种路线,既不能充分处理相关性,也不可能获得有效的算法。
(D)缺乏考虑可再入分配
目前的调度算法,遇到需要重新分配物理核的时候,大多采用“迁移”的方式,产生较大的迁移代价,这种迁移相当于处理器的中断体系。事实上,有些重新分配的情况,可以充分利用一些不可避免的相关性等待(某些核由于相关性处在空载),对这些空载核进行再入式分配,可以有效降低迁移代价。
(E)缺乏虚拟化分配
目前的针对OS下的多核调度,大多数都是直接进行任务集到核集或者多CPU的映射,中间没有设置一层虚拟化核。这样会使任务分配与核调度两个问题纠缠在一起,缺乏独立性,增加优化解决的复杂度。另外,任务内负载的并行特征和资源需求是动态变化的,而这种直接把任务集映射到核集的方式,会降低非对称多核系统的计算效率,这是因为只有当多核系统上的处理器核的配置与任务内负载的并行特征匹配时,才能有效提高非对称多核系统的计算效率。
更重要的是,这样不利于解决多核系统的多样化发展,例如,多种架构的多CPU(如SMP、NoC多CPU、Mesh多CPU等)中的多核的调度,由于CPU之间就存在竞争内存与其他资源,所以使得核的运行产生复杂的相关性。对于虚拟化系统,虽然设置了虚拟处理器(VCPU),但也是实现的VCPU到物理CPU的映射,不是真正意义的虚拟化核。
(F )核的增加/删除开销巨大
目前的OS并不能有效的支持非对称多核系统的任务调度。OS传统上假定核的数目在系统运行期间固定,从而普遍需要在核上维护分布式任务队列。在这种情况下,在非对称多核系统上任何核的增加/删除都会引起其本地任务队列的建立/释放,而这种操作幵销通常非常昂贵。
发明内容
一、概述
本发明的目的在于克服现有技术的缺点与不足,提供一种新的多核调度模型,即基于超任务网的“两段优化”的调度体系,以给出对上述现有技术所存在问题的解决。
所给出的调度方法,目标是解决两个问题,一是被分配执行的任务间的相关性,包括直接相关性与间接相关性。因为相关性的存在,会使相关任务的执行存在等待,即空载。二是解决核的共享问题,使有限的物理核可以被多个任务充分共享,最大限度减少任务的总的等待时间与任务迁移代价。
本发明的方法,针对的是两种对象:任务集合与多源多核系统。任务是待加载到处理器上执行的软件模块,任务集合由子任务构成。子任务可以是一个独立任务,也可以是一个独立任务中若干可以独立运行的模块(线程或者其他模块)。任务的相关性存在两种:
A)内部相关性:也称直接相关性。在同一个进程对应的软件模块(往往是一组模块)中,存在两类相关性:结构相关性和运行相关性。结构相关性是软件模块的静态结构决定的模块之间的执行次序。运行相关性主要是“生产者-消费者”模式导致的相关性。消费者需要等待对应的生产者产生结果后才可以运行。多线程的情况一般属于这种“生产者-消费者”模式,因此,在多线程系统中存在大量的运行相关性。
B)间接相关性:一组相互独立的任务,可能由于共享公共资源而产生相关性,我们称这种相关性为间接相关性。间接相关性由对诸如存储器、处理器、总线、通信端口及外设之类的公用资源的共享、竞争和协同引起。这类相关性一般是在任务运行中才出现,也是一种运行相关性一般是动态识别。
任务集中的任务,可以来自下列几个方面:
A)一组需要共享处理器的独立任务;
B)单个任务中的线程;
C)单个任务中的结构模块,这些模块一般是需要较多的运行时间,而且结构相对独立(例如动态链接模块);包含这种模块的任务称为大任务。
D)存在运行相关性的模块是可以并发执行的,但对结构模块,一般情况下,结构次序在先的模块执行完成后,后面的模块才可以开始执行。如果处理器资源充足,为了提高执行速度,对这些模块也可以采用“预执行”。在预执行中,将可以提前执行的部分执行,其他的可以“盲执行”,等到前驱模块执行完后再调整盲执行。
所给出的多核调度模型不同于目前的以“集合映射”式的调度模式,它基于超任务网,把任务调度分成最优超任务网的构造与核共享两个阶段。第一阶段,首先根据任务集的相关性构造描述任务间的直接相关性的任务网,然后根据任务间的间接相关性生成任务网的一个超任务网,接着调整超任务网,使其总的逻辑执行的空载度最小,获得最优超任务网,然后,对该超任务网进行两段序列化,生成对应的超任务网序列。第二阶段的任务是将第一阶段获得的超任务网序列映射到多源多核系统上执行。具体的映射方法是,依次按照逆序对每个超任务节点,按照既定策略从当前核分配图中选择一组共享代价最小的核,将该超任务节点加载到该组核上运行。
二、超任务网的构造
超任务网用于描述任务间的相关性。超任务网的定义,依赖于任务网的定义。
定义1(任务网络):一个任务网络定义为TN=(T,V, c,w),其中,T为当前任务集;V为定义在T上的二元关系;c为定义在T上的函数,w是定义在V上的函数,设a,b T,满足
v=<a, b>V : 当且仅当任务b的当前阶段执行需要等待任务a的当前阶段完成,称a与b直接相关;
至少存在一个bT,使得不存在其他的aT,而<a, b>V;称b为开始任务;至少存在一个aT,使得不存在其他的bT,而<a, b>V;称a为结束任务
c(a) >= 0 :表示任务a本阶段完成所需的时间,称为a的耗时权。
w(<a,b>) = c(a): 表示b等待a的时间;
这里定义的任务网用于描述某个时段内的任务的直接相关性。权c和w是当前时段内对任务执行时间和最大等待时间的估算值,用于后续的最优调度序列的生成。
定义2(超任务网):对于任务网TN=(T,V,c,w),定义它的超任务网为TNH =(TH, A, CT,wh),其中,TH 为超任务网的节点集,A为弧集;CT为集合集,是任务集T的一种划分,wh是定义在A上的权,设n为某正整数,满足:
CT = {T1, T2,…, Tn}, Ti T,i=1,2, …, n,T1∪T2∪ …∪Tn = T, 且若t1 , t2 Ti,则t1与 t2竞争资源i。
TH = CT;
e = < Hi , Hj > A 当且仅当存在一个v V,v=<h1,h2>,h1 Hi,h2 Hj, i, j {1,…n}, i≠j, 称e为Hi到Hj的割边
wh(Hj ) = Max{w(<a,b>) | i, < Hi , Hj >A ; a, b, aHi, bHj}
任务网的一个超任务网由当前时段的任务间的间接相关性框定,这种间接相关性由划分CT确定。节点是T的按当前时段的资源竞争的一个划分中的成分,同一节点中的任务构成间接竞争;弧表示各个竞争节点之间存在直接相关性,而权wh描述竞争节点之间的直接相关度的大小。
显然,同一时段与同一CT,可以对应多个不同的超任务网。
超任务网描述了一个给定时段的任务之间的两种相关性:直接相关性与间接相关性。任务首先按照间接相关性分块(一个超任务节点就是一个间接相关块),块内的任务网弧表示块内节点的直接相关性,而块间的弧表示两个块之间的直接相关性。
定义3(任务空行度/空载度) 设TN=(T,V,c,w)是一个任务网, tT, 则称e(t)为t的空载度,满足
e(t) = w(t): 当t无前驱时;
e(t) = Max{ w(t0 ) + e(t0) | t0, < t0, t>V } :其他情况
称 为TN的平均空行度,这里,设1,2, …, n 为TN节点的编号。
如果该任务网被分配到处理核上执行,则任务的空行度就称为空载度。
空行度表示任务的等待执行时间,平均空行度表示一组待分配的任务的总体空行度。显然,不同的CT,不同的超任务网结构,其总体空行度是不同的。因此,如何在当前CT的情况下组织超任务网,获得一个最小的平均空行度,是首先最优调度的必要条件。
图1 是一个超任务网的示意图。图中小圆表示任务网节点,节点代表任务或者子任务,小圆之间的弧表示任务间的直接相关性。大圆表示超任务网节点。位于同一超任务节点内的任务表示间接相关。超任务节点间的弧表示超任务之间的相关性。
接下来的研究是在上述定义的基础上,发现一种具体的超任务网体系结构及其构造方法—超任务网最优超结构原理,使其可以获得最小空行度。
三、核共享
虚拟核构造阶段是将当前最优超任务网对应的超任务序列映射到多源多核系统上执行。这里,多源多核系统是指集成了多核CPU、多CPU或多主机上的处理器核,对外形成一个多核处理器界面。多源多核系统中的核,可以是对称的也可以是非对称的。任务集是可以分配到多核处理器上执行的任务的集合。
这里的虚拟核是指根据一个任务子集中任务的相关关系,基于多源多核系统为对应任务的运行选择一个物理核。虚拟核是物理核的一个调度器,负责为任务从多源多核系统中分配一个物理核,并将任务加载到所分配的核上运行。
虚拟核的构造基于核共享图进行。核共享图的形式化定义为:
定义4(核共享图)一个核共享图CM定义如下:
CM = (N,M);
N:空闲核队列集;
M = (T,C,TC,CC,c, w)
T是当前已分配到核的任务集,C是当前已被分配的核,TC是T到C的二元关系,<t,c>TC,当且仅当,tT, cC,t被分配到c;<c1,c2>CC,当且仅当,存在c1、c2、t1与t2,使得c1C, c2C,<t1,c1>TC,<t2,c2>TC;
核共享图有两种节点:任务节点和核节点,相应的有两种弧,任务节点到核节点的弧和核节点之间的弧。如果任务T分配在核C上,则T到C有弧,弧权为T的完成所需剩余时间;如果核C1当前执行的任务需要等待到核C2当前执行的任务的完成,则C1到C2有弧,弧权为等待时间。虚拟核的构造,当存在空闲核是直接分配空闲核,并且将所分配的核加入到核共享图,否则,从共享图选择核共享。
核共享图是再虚拟核构造过程中动态生成的。虚拟核的构造就是为当前任务集中指定的任务选择物理核并加载任务运行。选择的方式分为空载分配与共享分配两种。当当前核共享图中N非空,则按照任务类型从N中的最匹配队列中选择一个物理核,直接分配给该任务,并且调整核共享图。当当前没有空闲物理核时,进行共享分配。
共享分配分为等待、窃取、借用与剥夺四种方式。等待方式是暂不分配物理核,将任务T挂起一段时间后再进入共享分配;窃取方式是按照既定的选择策略选择一个处在空载状态的核,将该核分配给任务T,该核一旦结束空载,则立即自动归还,同时挂起T;借用方式是按照既定的选择策略选择一个正在运行任务的核,将其任务挂起,将它的核分配给任务T一个既定时段,时间到后立即归还,并恢复被中断的任务,同时将任务T挂起;剥夺方式是按照既定的选择策略选择一个正在运行任务的核,挂起该任务,将该核分配给任务T,直到任务T完成后才恢复所挂起的任务。被挂起的任务,加入到挂起队列,接受任务的再分配。
四、调度模型
本发明的多核调度方法,由核心数据结构、核心操作与核心流程组成。数据结构描述调度所针对的任务与处理器核的开始、中间与最终状态;操作是在数据结构上进行,通过改变数据结构求实现调度;流程用于控制操作的进行。由x核心数据结构、核心操作和核心流程定义的调度方法,称为调度模型。调度模型只定义方法的体系与框架,不对核心数据结构、核心操作与核心流程进行实现级别的定义。
(1)核心数据结构
核心数据结构包括下列:
当前任务集T:是方法的输入参数,集合结构,包含当前待分配到处理器核上执行的任务。用于与任务关联图配合生成任务网,任务集T是动态的,新到达的任务可以随时加入T,T中原有任务被分配到处理器核后即撤离T.任务集中的任务,或者是独立任务,或者是独立任务中的子模块。
任务关联图TR:输入参数,图结构,用于与任务集配合生成任务网,描述任务集T中的各任务的关联关系,包括直接相关与间接相关两种关联关系。
任务网:为中间数据结构,图结构,基于任务集T与任务关联图TR生成,用于生成超任务网。
超任务网:中间数据结构,图结构,基于任务网和任务关联图生成,用于算法发现最优超任务序列。
超任务序列:中间数据结构,线性表结构,基于超任务网生成。
核共享图:中间数据结构,图结构,描述当前的任务与处理器核的映射关系。
(2)核心操作及其基本工作流程
操作1:任务网生成
输入:任务集T及其任务关联图TR;
输出:任务网TW;
功能:根据任务集T与任务关联图TR生成相应的任务网;
原型:TW-Constrution(T, TR, TW)
工作流程:
[1]初始化任务网TW;
[2]如果T空,返回;
[3]从T取一个新成员t;
[4]根据TR将t加入TW;
[5]转2;
操作2:超任务网生成
输入:任务网TW与任务关联图TR;
输出:超任务网HTW;
功能:根据任务网TW与任务关联图生成TW的超任务网HTW;
原型:HTW-Constrution(TW, TR, HTW)
工作流程:
[1]初始化超任务网HTW;初始化整数a为0;
[2]按照TR中的当前资源竞争关系给出HTW节点的一个划分,使得竞争同一种资源的节点划在一个划分中,并且保持空载率最小;
[3]以每个划分为一个HTW节点,生成HTW的节点集;
[4]对HTW中每个节点h1与不等于h1的每个h2,执行[5]-[6];
[5]如果xh1,yh2,且<x,y>是TW的弧,如果a小于y的等待时间w,令a为w;
[6]如果<x,y>不是HTW的弧,将将其加入HTW弧集;令a为它的弧权;
[7]结束;
操作3:超任务序列生成
输入:超任务网HTW;
输出:超任务网HTS;
功能:根据超任务网HTW生成超任务序列;
原型:HTS-Constrution(HTW, HTS)
工作流程:
[1]初始化超任务序列HTS;
[2]对HTW进行拓扑排序,生成HTW的一个拓扑序列HTS1,并标注可并行节点组;
[3]对HTS1中每个节点,分别对其进行拓扑排序,并标注可并行组,加入到HTS;
[4]结束;
操作4:超任务序列加载运行
输入:超任务序列HTS,多源多核系统MSMC;
输出:使超任务序列中每个任务处于逻辑运行状态;
功能:逻辑上将超任务网中每个任务加载到到多源多核系统MSMC中的处理器核上运行;
原型:HTS-Load(HTS,MSMC)
工作流程:
[1]如果HTS空,则返回;
[2]按照HTS拓扑次序从HTS取一个并行组p;
[3]依次从p取一个HTS节点h;
[4]调用RT-Load(h,MSMC);加载h中节点;
[5]如果p中尚有未取节点,转[3];
[6]如果HTS中尚有未取节点,转[2];
[7]结束;
操作5:相关任务组加载运行
输入:超任务序列节点h,多源多核系统MSMC;
输出:使超任务序列节点h中每个任务处于逻辑运行状态;
功能:逻辑上将超任务序列节点h中每个任务加载到到多源多核系统MSMC中的处理器核上运行;
原型:RT-Load(h,MSMC)
过程:
[1]如果h空,则返回;
[2]按照h中的拓扑次序从h取一个任务t;
[3]如果MSMC的核空闲队列空,转[6];
[4](空闲分配)从队列摘取一个空闲核c,将t加载到c上运行;
[5]调用CSM-Add(t,c,MSMC),将已分配的任务与核记录到核分配图;转[6]
[6](共享分配)调用CSM-Select(t,MSMC),从MSMC中选择一个最佳共享核,将t加载并运行;
[6]转[2];
操作6:核共享图添加
输入:任务t,核c,多源多核系统MSMC;
输出:将任务t与c的分配关系登记到MSMC的核共享图;
功能:在MSMC的核共享图中登记任务t到核c的分配关系;
原型:CSM-Add(t,c,MSMC)
操作7:核共享
输入:任务t,多源多核系统MSMC;
输出:将任务t分配到某个已被分配的核上运行;
功能:在MSMC的核共享图中选择一个最佳共享核,分配给任务t并加载运行;
原型:CSM-Select(t,MSMC)
(3)总体工作流程
输入:任务集T,任务关联图TR,多源多核系统MSMC;
输出:T中任务的到多源多核系统MSMC上的映射;
功能:将务集T中每个任务加载到多源多核系统MSMC上运行,使MSMC空载度最小;
原型:T-Load(T, TR, MSMC)
工作流程:
[1] TW-Constrution(T, TR, TW);
[2] HTW-Constrution(TW, TR, HTW);
[3] HTS-Constrution(HTW, HTS);
[4] HTS-Load(HTS,MSMC);
附图说明
图1 是超任务网的示意图;
图2 是基于超任务网的“两段优化”的调度体系示意图。
具体实施方式
下面结合实施例及附图对本发明内容及实施方法作进一步的描述,但本发明的实施方式不限于此。
一个根据本发明设计的基于超任务网的“两段优化”的调度体系如图2所示。
1.线程分解器将大任务中的多线程分解出来作为调度任务集中的子任务。应用中,根据必要性可以确定是否分解。如果不分解,将可以将大任务作为一个子任务直接加入到任务集;
2. 结构分解器将大任务按照其流程结构进行分解,分解出适当的模块加入到任务集,作为任务集中的子任务。应用中,根据必要性可以确定是否分解。如果不分解,将可以将大任务作为一个子任务直接加入到任务集
3. 任务组织器由三大部分构成:构造器、驱动器和调整器。
(1)构造器:(a)负责将输入的任务按其二元关系(直接相关性),合成任务关联图,并组织生成任务网。(b) 负责将输入的任务按其间接相关性,生成超任务网的节点集合集CT,并组合弧集、弧权值等参数生成超任务网。任务网和超任务网的物理实现可以采用“格件”模式中场融合技术,其中节点可以直接用格件融合器中的“处理器”表示,二元关系,超节点可以采用“场”表示,而弧用描述数据结构的“管道”融合器表示
(2) 驱动器:生成超任务序列,并负责向多源多核调度器发起分配请求。
(3)调整器:接收来自多源多核调度器发送的间接相关性的反馈信息,根据反馈信息,本着获得最小空载率的目标动态调整超任务网。
4. 多源多核调度器
多源核调度器负责虚拟核管理、侦听来自任务组织器的请求和调度。多源多核调度器把调度分成二个层面,即任务分配和核调度:
(1)任务调度主要根据任务组织器生成/调整的超任务序列进行任务分配,即确定超任务序列中的并行段和任务的调度次序,并为任务分配虚拟核;
(2)核调度,首先确定虚拟核的基本物理核类型,如果有空闭核从物理核选择类型匹配的物理核分配给虚拟核,将任务加载到该核上运行,并修改核共享图(空闲核对列集、M集合);如果不存在空间核,即根据核共享图和任务特征,选择一个最佳共享核进行共享。最佳共享核选择可以采用下列策略,但不限于此。
a. 循环的从核共享图选择一个共享核, 把该共享核分配给虚拟核,检测其的缓存缺失率。
b. 判断缓存缺失率是否剧烈抖动。如果剧烈抖动,则进入抖动状态。
抖动状态:任务在阶段发生变化时,会经历一段时间的抖动,表现为缓存缺失率的剧烈波动,此时程序并未进入稳定的执行阶段。使用抖动状态来处理这种抖动现象。
c.当缓存缺失率波动减弱时,任务从抖动状态逐渐过度到平稳状态,也就意味着任务进入了一个新的阶段。
d.当任务处于平稳状态时,检测其的缓存缺失率。
e. 重复a到b直到遍历核共享图中所有的核,从中选择缓存缺失率最低的物理核作为最佳共享核。
Claims (7)
1.一种面向多源多核系统的多核调度的模型与方法,将一个任务集分配到一个多源多核上执行,使任务集的执行整体最优,其特征在于,将调度工作分两个阶段,分别对任务分配次序与物理核共享方式进行优化;第一阶段是超任务网构造阶段,将任务组织为超任务网,并在调度中动态将其调整为一个最优超任务网;第二阶段是虚拟核构造阶段,将当前最优超任务网映射到多源多核系统上执行,并当物理核数目少于实际需求时实现最佳共享;这里,多源多核系统是指集成了多核CPU、多CPU或多主机上的处理器核,对外形成一个多核处理器界面;多源多核系统中的核,可以是对称的也可以是非对称的; 任务集是可以分配到多核处理器上执行的任务的集合。
2.权利1所述的调度模型与方法,由方法的实施所需的核心数据结构定义、核心操作定义和核心工作流程定义构成。
3.权利2所述的核心数据结构包括任务网TW、超任务网HTW、超任务序列HTS、核共享图CM;超任务网HTW是一种超网络,描述任务集当前任务的直接相关性与间接相关性;超任务网络由任务网TW生成;任务网TW是一种图,描述任务集中任务的直接相关性;图的节点集是任务集,弧集是节点集中的所有的具有直接相关性的节点间的弧;任务网定义了两种节点权,分别是耗时权与等待时间;耗时权定义节点的执行所需的时间长度,等待权定义了两个相关节点间执行所需的等待时间;一个任务网TW的超任务网HTW定义在当前时段中的描述任务资源竞争关系的任务竞争划分上,它的节点集是相应的划分的各个划分集,弧表示两个划分集之间的直接相关关系;同一个划分集中的节点是当前时段的竞争同一种资源的任务;超任务序列HTS是超任务网的最佳序列化,描述任务的当前最佳分配次序;核共享图CM描述当前任务到多源多核系统的映射关系;核共享图有两种:任务节点和核节点,相应的有两种弧任务节点到核节点的弧和核节点之间的弧;如果任务T分配在核C上,则T到C有弧,弧权为T的完成所需剩余时间;如果核C1当前执行的任务需要等待到核C2当前执行的任务的完成,则C1到C2有弧,弧权为等待时间;虚拟核的构造,当存在空闲核是直接分配空闲核,并且将所分配的核加入到核共享图,否则,从共享图选择核共享。
4.权利2所述的核心操作,包括TW-Constrution(T, TR, TW)、HTW-Constrution(TW,TR, HTW)、HTS-Constrution(HTW, HTS)、HTS-Load(HTS,MSMC)、RT-Load(h,MSMC)、CSM-Add(t,c,MSMC)、CSM-Select(t,MSMC);其中,TW-Constrution(T, TR, TW)是由任务集与任务关联图TR生成任务网TW;HTW-Constrution(TW, TR, HTW)是有任务网与任务关联图TR生成最佳超任务网;HTS-Constrution(HTW, HTS)是对超任务网HTW进行序列化,生成任务的最佳分配序列HTS;HTS-Load(HTS,MSMC)是将HTS映射到多源多核系统,使多源多核系统达到最佳共享;RT-Load(h,MSMC)、CSM-Add(t,c,MSMC)、CSM-Select(t,MSMC)是上述操作需要调用的子操作;对任务集T的一个完整分配过程TW-Constrution(T, TR, TW)、HTW-Constrution(TW, TR, HTW)、 HTS-Constrution(HTW, HTS)、HTS-Load(HTS,MSMC)的依次执行。
5.权利3所述的最佳超任务网与最佳超任务序列的获取,基于空行度进行;空行度用于描述一个相关任务集中,各个任务之间的因为相关性而造成的总的等待时间;一个任务集分配到物理核后,空行度就表示空载度,最佳核共享基于空载度获取。
6.权利1所述的虚拟核构造,是指根据一个任务子集中任务的相关关系,基于多源多核系统为对应任务的运行生成一个虚拟核;虚拟核是物理核的一个调度器,负责为任务从多源多核系统中分配一个物理核,并将任务加载到所分配的核上运行;为任务T分配物理核的方法是,当当前存在空闲物理核时,按照既定的选择策略选择一个空闲物理核;当当前没有空闲物理核时,进行共享分配,分为等待、窃取、借用与剥夺四种方式;等待方式是暂不分配物理核,将任务T挂起一段时间后再进入共享分配;窃取方式是按照既定的选择策略选择一个处在空载状态的核,将该核分配给任务T,该核一旦结束空载,则立即自动归还,同时挂起T;借用方式是按照既定的选择策略选择一个正在运行任务的核,将其任务挂起,将它的核分配给任务T一个既定时段,时间到后立即归还,并恢复被中断的任务,同时将任务T挂起;剥夺方式是按照既定的选择策略选择一个正在运行任务的核,挂起该任务,将该核分配给任务T,直到任务T完成后才恢复所挂起的任务;被挂起的任务,加入到挂起队列,接受任务的再分配。
7.权利4所述的核选择CSM-Select(t,MSMC),是指在多源多核系统中基于核共享图选择空闲核、空载核或者运行核;选择的目的是使所选的核可用率最高;如果一个核当前为空闲,则其可用率为最高值1,否则,可用率为(t1*(1-s)/t),这里,t是核上的当前任务所需的总时间,t1是已经完成的时间,s是核上任务与当前任务的相关度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710026904.5A CN107329822B (zh) | 2017-01-15 | 2017-01-15 | 面向多源多核系统的基于超任务网的多核调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710026904.5A CN107329822B (zh) | 2017-01-15 | 2017-01-15 | 面向多源多核系统的基于超任务网的多核调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329822A true CN107329822A (zh) | 2017-11-07 |
CN107329822B CN107329822B (zh) | 2022-01-28 |
Family
ID=60192917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710026904.5A Expired - Fee Related CN107329822B (zh) | 2017-01-15 | 2017-01-15 | 面向多源多核系统的基于超任务网的多核调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329822B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063949A (zh) * | 2018-06-12 | 2018-12-21 | 中国科学技术大学 | 一种基于超网络的化工园区集中区域应急物资调配方法 |
CN109144720A (zh) * | 2018-07-13 | 2019-01-04 | 哈尔滨工程大学 | 一种基于共享资源敏感的多核处理器任务调度选择方法 |
CN110554644A (zh) * | 2019-08-20 | 2019-12-10 | 华南理工大学 | 一种泛在对象即插即用的统一接入系统及第三方接入方法 |
CN111352724A (zh) * | 2018-12-24 | 2020-06-30 | 中国电信股份有限公司 | 安全资源选取实现方法和装置 |
CN113780295A (zh) * | 2021-09-13 | 2021-12-10 | 东北大学 | 一种基于lac-floss算法和ier算法的时间序列分割方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222522A (zh) * | 2008-01-17 | 2008-07-16 | 武汉理工大学 | 一种考虑网格任务重要性和时间紧迫性的网格任务调度方法 |
CN101408850A (zh) * | 2008-11-27 | 2009-04-15 | 中国人民解放军信息工程大学 | 任务流计算模型 |
CN101727351A (zh) * | 2009-12-14 | 2010-06-09 | 北京航空航天大学 | 面向多核平台的虚拟机监控器非对称调度器及其调度方法 |
US20110154353A1 (en) * | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN103488540A (zh) * | 2013-09-30 | 2014-01-01 | 华南理工大学 | 面向异构云数据中心的能耗优化资源调度方法 |
US20140137133A1 (en) * | 2011-11-04 | 2014-05-15 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
CN103885842A (zh) * | 2014-03-19 | 2014-06-25 | 浙江大学 | 一种带加速节点的片上网络的优化整体的任务映射方法 |
CN104281495A (zh) * | 2014-10-13 | 2015-01-14 | 湖南农业大学 | 多核处理器共享高速缓存任务调度方法 |
US20160070603A1 (en) * | 2013-05-14 | 2016-03-10 | Huawei Technologies Co., Ltd. | Task allocation method, task allocation apparatus, and network-on-chip |
-
2017
- 2017-01-15 CN CN201710026904.5A patent/CN107329822B/zh not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222522A (zh) * | 2008-01-17 | 2008-07-16 | 武汉理工大学 | 一种考虑网格任务重要性和时间紧迫性的网格任务调度方法 |
CN101408850A (zh) * | 2008-11-27 | 2009-04-15 | 中国人民解放军信息工程大学 | 任务流计算模型 |
CN101727351A (zh) * | 2009-12-14 | 2010-06-09 | 北京航空航天大学 | 面向多核平台的虚拟机监控器非对称调度器及其调度方法 |
US20110154353A1 (en) * | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
US20140137133A1 (en) * | 2011-11-04 | 2014-05-15 | Mark Henrik Sandstrom | Maximizing Throughput of Multi-user Parallel Data Processing Systems |
CN102831011A (zh) * | 2012-08-10 | 2012-12-19 | 上海交通大学 | 一种基于众核系统的任务调度方法及装置 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
US20160070603A1 (en) * | 2013-05-14 | 2016-03-10 | Huawei Technologies Co., Ltd. | Task allocation method, task allocation apparatus, and network-on-chip |
CN103473134A (zh) * | 2013-09-23 | 2013-12-25 | 哈尔滨工程大学 | 一种异构多核处理器的依赖任务调度方法 |
CN103488540A (zh) * | 2013-09-30 | 2014-01-01 | 华南理工大学 | 面向异构云数据中心的能耗优化资源调度方法 |
CN103885842A (zh) * | 2014-03-19 | 2014-06-25 | 浙江大学 | 一种带加速节点的片上网络的优化整体的任务映射方法 |
CN104281495A (zh) * | 2014-10-13 | 2015-01-14 | 湖南农业大学 | 多核处理器共享高速缓存任务调度方法 |
Non-Patent Citations (5)
Title |
---|
H. TOPCUOGLU ET AL: "Performance-effective and low-complexity task scheduling for heterogeneous computing", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
KALLIA CHRONAKI ET AL: "Task Scheduling Techniques for Asymmetric Multi-Core Systems", 《IEEE》 * |
NAQIN ZHOU ET AL: "A list scheduing asgorithm for heterogeneous systems based on a critical node cost table and pessimistic cost table", 《HTTPS://DOI.ORG/10.1002/CPE.3944》 * |
张惠娟等: "多处理器系统的实时调度算法研究", 《计算机工程与设计》 * |
曹越等: "一种面向多核系统的Linux任务调度算法", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063949A (zh) * | 2018-06-12 | 2018-12-21 | 中国科学技术大学 | 一种基于超网络的化工园区集中区域应急物资调配方法 |
CN109063949B (zh) * | 2018-06-12 | 2022-05-17 | 中国科学技术大学 | 一种基于超网络的化工园区集中区域应急物资调配方法 |
CN109144720A (zh) * | 2018-07-13 | 2019-01-04 | 哈尔滨工程大学 | 一种基于共享资源敏感的多核处理器任务调度选择方法 |
CN111352724A (zh) * | 2018-12-24 | 2020-06-30 | 中国电信股份有限公司 | 安全资源选取实现方法和装置 |
CN110554644A (zh) * | 2019-08-20 | 2019-12-10 | 华南理工大学 | 一种泛在对象即插即用的统一接入系统及第三方接入方法 |
CN110554644B (zh) * | 2019-08-20 | 2022-04-22 | 华南理工大学 | 一种泛在对象即插即用的统一接入系统及第三方接入方法 |
CN113780295A (zh) * | 2021-09-13 | 2021-12-10 | 东北大学 | 一种基于lac-floss算法和ier算法的时间序列分割方法 |
CN113780295B (zh) * | 2021-09-13 | 2024-02-20 | 东北大学 | 一种基于lac-floss算法和ier算法的时间序列分割方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107329822B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110619595B (zh) | 一种基于多fpga加速器互联的图计算优化方法 | |
CN107329822A (zh) | 面向多源多核系统的基于超任务网的多核调度方法 | |
CN105159762B (zh) | 基于贪心策略的启发式云计算任务调度方法 | |
US5202987A (en) | High flow-rate synchronizer/scheduler apparatus and method for multiprocessors | |
CN102831011B (zh) | 一种基于众核系统的任务调度方法及装置 | |
CN102541640B (zh) | 一种集群gpu资源调度系统和方法 | |
US7647590B2 (en) | Parallel computing system using coordinator and master nodes for load balancing and distributing work | |
CN103279390B (zh) | 一种面向小作业优化的并行处理系统 | |
CN103034614B (zh) | 基于关键路径和任务复制的单任务多核调度方法 | |
CN103970580A (zh) | 一种面向多核集群的数据流编译优化方法 | |
Attiya et al. | Two phase algorithm for load balancing in heterogeneous distributed systems | |
CN111158790B (zh) | 面向云端深度学习推理的fpga虚拟化方法 | |
CN101655828B (zh) | 基于任务数据流驱动的高效能超级计算系统的设计方法 | |
CN110297661A (zh) | 基于amp构架dsp操作系统的并行计算方法、系统及介质 | |
CN105005503A (zh) | 基于元胞自动机的云计算负载均衡任务调度方法 | |
Wang et al. | Communication contention aware scheduling of multiple deep learning training jobs | |
Fizzano et al. | Job scheduling in rings | |
Zhang et al. | An effective 2-dimension graph partitioning for work stealing assisted graph processing on multi-FPGAs | |
Singla et al. | Task Scheduling Algorithms for Grid Computing with Static Jobs: A Review | |
Iliakis et al. | Decoupled mapreduce for shared-memory multi-core architectures | |
Sun et al. | T2FA: A heuristic algorithm for deadline-constrained workflow scheduling in cloud with multicore resource | |
Masko | Program graph scheduling for dynamic SMP clusters with communication on the fly | |
Dabah et al. | Multi and many-core parallel B&B approaches for the blocking job shop scheduling problem | |
Navarro et al. | Adaptive partitioning strategies for loop parallelism in heterogeneous architectures | |
Doe | Load balancing strategies in parallel computing: Short survey |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |