CN112764903A - 异构环境下带有特殊任务的任务调度方法、系统及应用 - Google Patents
异构环境下带有特殊任务的任务调度方法、系统及应用 Download PDFInfo
- Publication number
- CN112764903A CN112764903A CN202110086055.9A CN202110086055A CN112764903A CN 112764903 A CN112764903 A CN 112764903A CN 202110086055 A CN202110086055 A CN 202110086055A CN 112764903 A CN112764903 A CN 112764903A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- processor
- special
- tasks
- 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 32
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 17
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 15
- 238000004904 shortening Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 34
- 230000000694 effects Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 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
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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
技术领域
本发明属于任务调度技术领域,尤其涉及一种异构环境下带有特殊任务的任务调度方法、系统及应用。
背景技术
目前:随着计算机体系结构的发展和高性能计算的广泛使用,很多新的处理器架构被提出和应用于处理器设计中,如FPGA,GPU,DSP等计算资源,丰富多样的计算资源提供了一种新的计算环境-异构计算环境,在异构计算环境下,可以执行大量的并发式任务。在异构计算环境下包含着许多计算能力以及适用场景都各不相同的资源,因此调度问题始终处于至关重要的问题,调度算法关系着运行成本的高低,资源的利用效率以及整个处理流程的实际完成时间等。
表调度算法是最经典的DAG(有向无环图)调度算法。表调度算法一般包含两种步骤,任务优先级确定和处理器选择。任务优先级确定是结合某种优先级决定策略决定任务之间的优先级并且构造一个调度列表,然后按照调度列表中优先级自高向低的顺序为任务分配处理器,具有较低的时间复杂度和空间复杂度。常见的表调度算法有HEFT,CPOP等。
HEFT算法:HEFT算法是针对单DAG的表调度算法,该算法的目标是满足整个任务调度最小跨度的同时,将任务集中的每个任务映射到资源集中的每个计算资源上。任务集中每个任务的优先级由向上排序值ranku(从任务节点到出口节点的关键路径长度)确定,即任务的ranku值越大,优先级越高,反之,则优先级越低;在任务调度过程中,先找到具有最早完成时间的处理机节点,然后将任务分配此节点上执。HEFT算法总体上分为任务排序和任务调度两个阶段。在任务排序阶段,即计算所有任务的优先级并按从高到低的顺序降序排列;在任务调度阶段,从已排好序的任务队列中,选择优先级最高的任务,然后找出能使此任务完成时间最早的处理机节点。
CPOP算法将向上排序值ranku和向下排序值rankd(从入口节点到被调度任务的关键路径长度)的值相加,作为计算所有任务的优先级的参数,CPOP算法与HEFT算法类似,算法先根据ranku+rankd的值确定所有任务的优先级,然后在确定优先级的基础上将任务调度到相应的处理机。CPOP算法确定任务优先级的方法以及选择合适的处理机策略与HEFT算法不完全相同。
常见的调度算法通常没有考虑不同的硬件处理器使用于不同类型的任务,且像FPGA这样需提前加载处理算法的处理资源,在一定时间内对应的功能是无法改变的,相对能处理的任务是有限制的,因此调度算法不能随意分配资源,需要将这些特殊任务区别对待。
通过上述分析,现有技术存在的问题及缺陷为:现有的调度方法没有考虑不同的硬件处理器使用不同类型的任务,不能随意分配资源,资源利用率低,且调度结果不佳。
解决以上问题及缺陷的难度为:现有的表调度算法一般分为两个步骤,并没有考虑对任务进行分析,导致任务调度阶段无法确定特殊任务是否存在。
解决以上问题及缺陷的意义为:在设计计算任务优先级之前,先对调度任务进行分析,确定特殊任务集合。同时采取任务优先级两级计算方式,生成更合理的任务优先级列表。最后,设计任务处理器选择算法,提高调度算法在实际工程中的使用意义,使算法更加匹配真实调度场景。且在最大程度的缩短整体任务的调度时间长度。
发明内容
针对现有技术存在的问题,本发明提供了一种异构环境下带有特殊任务的任务调度方法、系统及应用。
本发明是这样实现的,一种异构环境下带有特殊任务的任务调度方法,所述异构环境下带有特殊任务的任务调度方法包括:通过在任务优先级确认之前,根据任务性质以及当前所使用的处理器情况,判断任务的性质,生成特殊任务列表,然后根据任务优先级的确认方式生成任务调度列表,最后根据任务调度列表以及特殊任务列表进行任务以及处理器匹配关系,完成整体的任务调度。
进一步,所述异构环境下带有特殊任务的任务调度方法包括以下步骤:
步骤一,初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);
步骤二,初始化生成特殊任务集合SP(i);计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
步骤三,判断当前调度队列是否为空,若空则调度结束,若非空则选取调度列表中的第一个任务i即本次循环中所调度任务;
步骤四,判断此次选中的任务是否为入口任务及关键任务,若是则执行步骤五;若不是,则执行步骤六;
步骤五,将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间;更新任务队列,返回步骤三;
步骤六,计算任务的最早完成时间,选取使目标函数值最小的任务与处理器组合;
步骤七,更新任务调度队列,返回步骤三。
进一步,步骤二中,所述任务的优先级rankvalue计算公式如下:
rankvalue(i)=TP(i,j)+maxi∈succ(i)(DAG(i,j)+rankvalue(j));
其中:TP(i,j)表示任务i在处理器j上的计算开销;DAG(i,j)表示任务i与任务j的依赖关系及权重。
进一步,步骤四中,所述判断此次选中的任务是否为入口任务及关键任务包括:
若此次任务为入口任务,则est=avail;
其中:
est(Ti,Pk)=max{avail(Pk),maxTi∈pred(Ti){aft(Tj)+DAG(i,j)}};
avail(Pk)=maxtp(Ti)=Pkaft(Tj);
式中,T表示任务集合;P表示处理器集合;est表示任务最早开始时间;eft表示任务最早结束时间;aft表示任务实际结束时间。
进一步,步骤五中,所述将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间包括:
(1)依据公式tp(i)=minj∈p(TP(i,j)),选择合适的处理器进行组合;其中,tp表示任务与处理器映射;
(2)根据tp(Ti)计算任务实际开始时间ast(i),任务实际结束时间aft(i)以及avail(i),其中:
ast(Ti)=est(Ti,tp(Ti))
aft(Ti)=eft(Ti,tp(Ti))
avail(Pk)=maxtp(Tj)=Pkaft(Tj)。
进一步,步骤六中,所述选取使目标函数值最小的任务与处理器组合包括:
依据公式OPT(i,j)=eft(i,j),计算当前任务在每个处理器的目标函数值,选择值最小的那个组合,更新tp;其中,OPT表示目标优化函数。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:判断任务性质,基于任务性质选择任务处理器,确定任务调度列表,进行任务调度。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:判断任务性质,基于任务性质选择任务处理器,确定任务调度列表,进行任务调度。
本发明的另一目的在于提供一种实施所述异构环境下带有特殊任务的任务调度方法的异构环境下带有特殊任务的任务调度系统,所述异构环境下带有特殊任务的任务调度系统包括:
初始化模块,用于初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);初始化生成特殊任务集合SP(i);
任务调度列表生成模块,用于计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
计算调度模块,用于基于任务调度列表进行任务调度;
更新模块,用于基于任务调度结果更新任务调度队列。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的异构环境下带有特殊任务的任务调度方法解决了在处理资源异构下的任务调度问题,不仅有效利用当前环境下所包含的计算资源,还降低了整个任务处理流程的最终完成时间,而且在此基础上增加了对特殊任务(适用于一些特定处理器上任务,如FPGA,GPU等)的调度,实现了对异构环境下不同类型处理器的充分使用,提升了资源的整体利用率。
本发明在进行整体任务调度的同时,会根据任务的性质不同,相应分配对应的处理资源,提升资源的利用效率且缩短整体的完成时间。
本发明在满足整体跨度时间最小的同时考虑到不同处理资源所对应的任务类型不同,像FPGA等资源需提前加载处理算法等问题,加入特殊任务集合,在任务分配时将特殊任务分配至对应处理资源,在提升了异构资源利用率以及缩短了任务的整体处理时间的同时,扩大了调度方法的使用场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的异构环境下带有特殊任务的任务调度方法流程图。
图2是本发明实施例提供的异构环境下带有特殊任务的任务调度系统结构示意图;
图中:1、初始化模块;2、任务调度列表生成模块;3、计算调度模块;4、更新模块。
图3是本发明实施例提供的每个算法在相同场景下的平均相对调度长度比SLR来判断算法调度效果的能力示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种异构环境下带有特殊任务的任务调度方法、系统及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的异构环境下带有特殊任务的任务调度方法包括以下步骤:
S101,初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);
S102,初始化生成特殊任务集合SP(i);计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
S103,判断当前调度队列是否为空,若空则调度结束,若非空则选取调度列表中的第一个任务i即本次循环中所调度任务;
S104,判断此次选中的任务是否为入口任务及关键任务,若是则执行步骤S105;若不是,则执行步骤S106;
S105,将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间;更新任务队列,返回步骤S103;
S106,计算任务的最早完成时间,选取使目标函数值最小的任务与处理器组合;
S107,更新任务调度队列,返回步骤S103。
本发明提供的异构环境下带有特殊任务的任务调度方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的异构环境下带有特殊任务的任务调度方法仅仅是一个具体实施例而已。
步骤S102中,本发明实施例提供的任务的优先级rankvalue计算公式如下:
rankvalue(i)=TP(i,j)+maxi∈succ(i)(DAG(i,j)+r ankvalue(j));
其中:TP(i,j)表示任务i在处理器j上的计算开销;DAG(i,j)表示任务i与任务j的依赖关系及权重。
步骤S104中,本发明实施例提供的判断此次选中的任务是否为入口任务及关键任务包括:
若此次任务为入口任务,则est=avail;
其中:
est(Ti,Pk)=max{avail(Pk),maxTi∈pred(Ti){aft(Tj)+DAG(i,j)}};
avail(Pk)=maxtp(Ti)=Pkaft(Tj);
式中,T表示任务集合;P表示处理器集合;est表示任务最早开始时间;eft表示任务最早结束时间;aft表示任务实际结束时间。
步骤S105中,本发明实施例提供的将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间包括:
(1)依据公式tp(i)=minj∈p(TP(i,j)),选择合适的处理器进行组合;其中,tp表示任务与处理器映射;
(2)根据tp(Ti)计算任务实际开始时间ast(i),任务实际结束时间aft(i)以及avail(i),其中:
ast(Ti)=est(Ti,tp(Ti))
aft(Ti)=eft(Ti,tp(Ti))
avail(Pk)=maxtp(Tj)=Pkaft(Tj)。
步骤S106中,本发明实施例提供的选取使目标函数值最小的任务与处理器组合包括:
依据公式OPT(i,j)=eft(i,j),计算当前任务在每个处理器的目标函数值,选择值最小的那个组合,更新tp;其中,OPT表示目标优化函数。
如图2所示,本发明实施例提供的异构环境下带有特殊任务的任务调度系统包括:
初始化模块1,用于初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);初始化生成特殊任务集合SP(i);
任务调度列表生成模块2,用于计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
计算调度模块3,用于基于任务调度列表进行任务调度;
更新模块4,用于基于任务调度结果更新任务调度队列。
下面结合具体实施例对本发明的技术方案作进一步说明。
本发明实施例设计合理的任务调度列表生成方案,在对任务进行处理器选择之前,要考虑任务的性质也就是该调度任务是否为特殊任务,若为特殊任务则为其分配对应的处理器,若不是特殊任务则选取使目标函数最小的组合方式,技术方案流程如下:
步骤1:初始化生成DAG图,包含任务前后依赖关系及权重
步骤2:初始化生成TP(i,j),TP(i,j)表示任务i在处理器j上的计算开销
步骤3:初始化生成SP(i),SP(i)表示任务i为特殊任务
步骤4:计算每个任务的优先级rankvalue
步骤5:依据每个任务的优先级进行自高向低排序,生成任务调度列表
步骤6:判断当前调度队列是否为空,若空则调度结束,若非空则选取调度列表中的第一个任务i,i为此次循环中所调度任务
步骤7:判断此次选中的任务是否为入口任务及关键任务,若是则执行步骤8-9,若不是则执行步骤10
步骤8:将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间。
步骤9:更新任务队列,转至步骤6进行下一次任务调度
步骤10:计算任务的最早完成时间,选取使目标函数值最小的任务与处理器组合。
步骤11:更新任务调度队列,转至步骤6
实施例2:
附表说明:
表一:英文简写代表意义
下面将结合表一对本发明进一步详细描述
步骤1:初始化生成DAG。
步骤2:初始化生成TP(Ti,Pj),
步骤3:初始化生成SP。
步骤4:依据公式rankvalue(i)=TP(i,j)+maxi∈succ(i)(DAG(i,j)+rankvalue(j))
计算每个任务的优先级rankvalue。
步骤5:依据每个任务的优先级进行自高向低排序,生成priorqueue,如图2所示。
步骤6:判断当前调度队列是否为空,若空则调度结束,若非空则选取调度列表中的第一个任务Ti,Ti为此次循环中所调度任务。
步骤7:判断此次选中的任务是否为入口任务以及关键任务,若是则执行步骤8-9,若不是则执行步骤10,包含如下子步骤。
步骤7.1:若此次任务为入口任务,则est=avail,其中:
est(Ti,Pk)=max{avail(Pk),maxTi∈pred(Ti){aft(Tj)+DAG(i,j)}}
avail(Pk)=maxtp(Ti)=Pkaft(Tj)。
步骤7.2:若此次任务为关键任务,则按照步骤8-9处理。
步骤8:将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间,包括如下子步骤。
步骤8.1:依据公式tp(i)=minj∈p(TP(i,j)),选择合适的处理器进行组合。
步骤8.2:根据tp(Ti)计算ast(i),aft(i)以及avail(i),其中:
ast(Ti)=est(Ti,tp(Ti))
aft(Ti)=eft(Ti,tp(Ti))
avail(Pk)=maxtp(Tj)=Pkaft(Tj)
步骤9:更新任务队列,转至步骤6进行下一次任务调度。
步骤10:计算任务的最早完成时间,选取使目标函数值最小的任务与处理器组合,包含以下子步骤。
步骤10.1:依据公式OPT(i,j)=eft(i,j),计算当前任务在每个处理器的目标函数值,选择值最小的那个组合,更新tp。
步骤11:更新任务队列,转至步骤6。
下面结合仿真对本发明的技术效果作详细的描述。
本实验为了更好的对比本发明所提算法的有效性,通过仿真实验与HEFT算法以及CPOP算法进行效果比对,通过比较每个算法在相同场景下的平均相对调度长度比SLR来判断算法调度效果的能力,如图3所示,其中SLR定义为:
SLR为最终调度算法确定的任务与处理器组合的整体任务最终完成时间与关键路径上每个任务的最小处理时间之和的比值,SLR的值越小,代表调度算法的性能越好。
在图3中可以看出,本发明所提算法在整体性能要优于HEFT算法以及CPOP算法,由于需将特殊任务安排在对应处理器上这一限制条件,也会存在不能达到最佳的调度情况导致SLR的比值略大,但是考虑到实际应用场景,本发明所提算法在总体上性能与实际应用意义都得到了一系列的提升。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种异构环境下带有特殊任务的任务调度方法,其特征在于,所述异构环境下带有特殊任务的任务调度方法包括:通过在任务优先级确认之前,根据任务性质以及当前所使用的处理器情况,判断任务的性质,生成特殊任务列表,然后根据任务优先级的确认方式生成任务调度列表,最后根据任务调度列表以及特殊任务列表进行任务以及处理器匹配关系,完成整体的任务调度。
2.如权利要求1所述异构环境下带有特殊任务的任务调度方法,其特征在于,所述判断任务性质即判断调度任务是否为特殊任务。
3.如权利要求1所述异构环境下带有特殊任务的任务调度方法,其特征在于,所述异构环境下带有特殊任务的任务调度方法包括以下步骤:
步骤一,初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);
步骤二,初始化生成特殊任务集合SP(i);计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
步骤三,判断当前调度队列是否为空,若空则调度结束,若非空则选取调度列表中的第一个任务i即本次循环中所调度任务;
步骤四,判断此次选中的任务是否为入口任务及关键任务,若是则执行步骤五;若不是,则执行步骤六;
步骤五,将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间;更新任务队列,返回步骤三;
步骤六,计算任务的最早完成时间,选取使目标函数值最小的任务与处理器组合;
步骤七,更新任务调度队列,返回步骤三。
4.如权利要求3所述异构环境下带有特殊任务的任务调度方法,其特征在于,步骤二中,所述任务的优先级rankvalue计算公式如下:
rankvalue(i)=TP(i,j)+maxi∈succ(i)(DAG(i,j)+rankvalue(j));
其中:TP(i,j)表示任务i在处理器j上的计算开销;DAG(i,j)表示任务i与任务j的依赖关系及权重。
5.如权利要求3所述异构环境下带有特殊任务的任务调度方法,其特征在于,步骤四中,所述判断此次选中的任务是否为入口任务及关键任务包括:
若此次任务为入口任务,则est=avail;
其中:
est(Ti,Pk)=max{avail(Pk),maxTi∈pred(Ti){aft(Tj)+DAG(i,j)}};
avail(Pk)=maxtp(Ti)=Pkaft(Tj);
式中,T表示任务集合;P表示处理器集合;est表示任务最早开始时间;eft表示任务最早结束时间;aft表示任务实际结束时间。
6.如权利要求3所述异构环境下带有特殊任务的任务调度方法,其特征在于,步骤五中,所述将任务i对应的计算开销最小的处理器j分配给i,更新任务与处理器组合,并更新该任务的实际开始时间以及实际完成时间包括:
(1)依据公式tp(i)=minj∈p(TP(i,j)),选择合适的处理器进行组合;其中,tp表示任务与处理器映射;
(2)根据tp(Ti)计算任务实际开始时间ast(i),任务实际结束时间aft(i)以及avail(i),其中:
ast(Ti)=est(Ti,tp(Ti))
aft(Ti)=eft(Ti,tp(Ti))
avail(Pk)=maxtp(Tj)=Pkaft(Tj)。
7.如权利要求3所述异构环境下带有特殊任务的任务调度方法,其特征在于,步骤六中,所述选取使目标函数值最小的任务与处理器组合包括:依据公式OPT(i,j)=eft(i,j),计算当前任务在每个处理器的目标函数值,选择值最小的那个组合,更新tp;其中,OPT表示目标优化函数。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:判断任务性质,基于任务性质选择任务处理器,确定任务调度列表,进行任务调度。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:判断任务性质,基于任务性质选择任务处理器,确定任务调度列表,进行任务调度。
10.一种实施如权利要求1-7任意一项所述异构环境下带有特殊任务的任务调度方法的异构环境下带有特殊任务的任务调度系统,其特征在于,所述异构环境下带有特殊任务的任务调度系统包括:
初始化模块,用于初始化生成包含任务前后依赖关系及权重的DAG图;初始化生成任务i在处理器j上的计算开销TP(i,j);初始化生成特殊任务集合SP(i);
任务调度列表生成模块,用于计算每个任务的优先级rankvalue;依据每个任务的优先级进行自高向低排序,生成任务调度列表;
计算调度模块,用于基于任务调度列表进行任务调度;
更新模块,用于基于任务调度结果更新任务调度队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086055.9A CN112764903B (zh) | 2021-01-22 | 2021-01-22 | 异构环境下带有特殊任务的任务调度方法、系统及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086055.9A CN112764903B (zh) | 2021-01-22 | 2021-01-22 | 异构环境下带有特殊任务的任务调度方法、系统及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764903A true CN112764903A (zh) | 2021-05-07 |
CN112764903B CN112764903B (zh) | 2024-06-28 |
Family
ID=75702635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110086055.9A Active CN112764903B (zh) | 2021-01-22 | 2021-01-22 | 异构环境下带有特殊任务的任务调度方法、系统及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764903B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880994A (zh) * | 2023-09-07 | 2023-10-13 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009299116A1 (en) * | 2008-10-03 | 2010-04-08 | The University Of Sydney | Scheduling an application for performance on a heterogeneous computing system |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN112199172A (zh) * | 2020-09-25 | 2021-01-08 | 桂林理工大学 | 一种面向异构多核处理器的混合式任务调度方法 |
-
2021
- 2021-01-22 CN CN202110086055.9A patent/CN112764903B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2009299116A1 (en) * | 2008-10-03 | 2010-04-08 | The University Of Sydney | Scheduling an application for performance on a heterogeneous computing system |
US20180300174A1 (en) * | 2017-04-17 | 2018-10-18 | Microsoft Technology Licensing, Llc | Efficient queue management for cluster scheduling |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
CN112199172A (zh) * | 2020-09-25 | 2021-01-08 | 桂林理工大学 | 一种面向异构多核处理器的混合式任务调度方法 |
Non-Patent Citations (2)
Title |
---|
刘钊;于丰;王长涛;溥博文;: "基于DAG图的CPS遗传算法任务调度", 信息技术与信息化, no. 07 * |
王兰;张龙信;满君丰;周立前;李肯立;: "异构计算环境下基于优先队列划分的调度算法", 小型微型计算机系统, no. 02 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116880994A (zh) * | 2023-09-07 | 2023-10-13 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
CN116880994B (zh) * | 2023-09-07 | 2023-12-12 | 之江实验室 | 基于动态dag的多处理器任务调度方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112764903B (zh) | 2024-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bittencourt et al. | Towards the scheduling of multiple workflows on computational grids | |
Huang et al. | A workflow for runtime adaptive task allocation on heterogeneous MPSoCs | |
Arabnejad et al. | Multi-QoS constrained and profit-aware scheduling approach for concurrent workflows on heterogeneous systems | |
CN111367644A (zh) | 一种面向异构融合系统的任务调度方法及装置 | |
Pop et al. | Genetic algorithm for DAG scheduling in grid environments | |
Cho et al. | Scheduling parallel real-time tasks on the minimum number of processors | |
Arif et al. | Parental prioritization-based task scheduling in heterogeneous systems | |
Eswari et al. | Path-based heuristic task scheduling algorithm for heterogeneous distributed computing systems | |
Li et al. | Federated scheduling for stochastic parallel real-time tasks | |
Zhao et al. | List scheduling algorithm based on pre-scheduling for heterogeneous computing | |
Almi'Ani et al. | Partitioning-based workflow scheduling in clouds | |
Zahaf et al. | Preemption-aware allocation, deadline assignment for conditional dags on partitioned edf | |
CN112764903A (zh) | 异构环境下带有特殊任务的任务调度方法、系统及应用 | |
Cho et al. | Conditionally optimal parallelization of real-time DAG tasks for global EDF | |
Wang et al. | A novel heterogeneous scheduling algorithm with improved task priority | |
Sandokji et al. | Dynamic variant rank HEFT task scheduling algorithm toward exascle computing | |
Singh et al. | Critical path based scheduling algorithm for workflow applications in cloud computing | |
Dong et al. | PFAS: a resource-performance-fluctuation-aware workflow scheduling algorithm for grid computing | |
Lee et al. | A non-critical path earliest-finish algorithm for inter-dependent tasks in heterogeneous computing environments | |
CN114860417A (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
CN114880111A (zh) | 基于dag任务拓扑结构的处理器资源分配方法、存储介质 | |
Geng et al. | A Task Scheduling Algorithm for Multi-Core-Cluster Systems. | |
Amalarethinam et al. | Level based task prioritization scheduling for small workflows in cloud environment | |
Hunold et al. | Scheduling dynamic workflows onto clusters of clusters using postponing | |
Jiang et al. | PVBTS: A novel task scheduling algorithm for heterogeneous computing platforms |
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 |