CN103034614A - 基于关键路径和任务复制的单任务多核调度方法 - Google Patents
基于关键路径和任务复制的单任务多核调度方法 Download PDFInfo
- Publication number
- CN103034614A CN103034614A CN2012105541705A CN201210554170A CN103034614A CN 103034614 A CN103034614 A CN 103034614A CN 2012105541705 A CN2012105541705 A CN 2012105541705A CN 201210554170 A CN201210554170 A CN 201210554170A CN 103034614 A CN103034614 A CN 103034614A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- scheduling
- sequence
- critical path
- 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
Images
Landscapes
- Multi Processors (AREA)
Abstract
基于关键路径和任务复制的单任务多核调度方法。目前多核任务调度算法,在处理器内核不足时无法进行有效调度。
本发明方法包括:
DAG
任务图处理模块,采用任务复制的方法,将
DAG
任务图中的
fork
节点复制给其后继任务节点,形成
join
结构任务图,再进一步将
join
图转换为产品加工树;任务节点调度分配模块,引入综合调度中关键路径思想,查找产品加工树的关键路径,并优先调度关键路径上节点,尽量提前关键路径上节点开始执行时间;调度序列调整优化模块,采用合并相似度最大的调度序列的方式,将调度序列合并以使调度序列数不大于处理器内核数,实现处理器内核充分并行处理。本发明用于基于片上互连的同构多核处理器单任务多核调度。
Description
技术领域:
本发明涉及一种基于关键路径和任务复制的单任务多核调度方法。
背景技术:
多核处理器是当今以及未来处理器发展的主要趋势,单个处理器中所集成的核的数量已经由两个发展到四个、八个甚至更多。微机上使用的多核处理器都使用了片上多核处理器架构,片上多核处理器(Chip Multi-Processor,CMP)是将多个处理器内核集成在一个处理器芯片中,从而提高计算能力。CMP可根据计算内核的对等与否分为同构多核和异构多核,现在Inter和AMD主推的多核处理器,就是同构的多核处理器。
高效的通信机制是CMP处理器高性能的重要保障,目前比较主流的片上通信机制主要有两种,一种是基于总线共享cache结构,一种是基于片上互连结构。总线共享cache结构是指每个CPU内核拥有共享的二级或三级cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。这种系统的优点是结构简单,通信速度较高,缺点是基于总线结构的可扩展性较差;基于片上互连结构是指每个CPU核心具有独立的处理单元和cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起,各个CPU核心间通过消息通信。这种结构的优点是可扩展性好,数据带宽有保证,缺点是硬件结构复杂,且软件的改动较大。
在基于片上互连的同构多核结构中,一个程序可以看成是一个任务集,这些任务在满足它们之间存在的优先约束和次序约束关系的前提下,可以并行或串行的执行。多核调度技术就是如何在满足一定的性能指标和约束关系的前提下,将任务分配到各工作核上有序并行地执行,使任务执行总时间得以缩短成为任务调度的主要目标。
任务调度需要通过任务调度算法来实现,而任务调度算法是NP完全的。目前较为具有代表性的多核任务调度算法主要有基于任务复制(Task-Duplication-Base,TDB)方式的DSH,BTDH,PY,CPFD,TDMSCL,ETDS,PPA,IREA等。由于采用任务复制的方式将加权有向无环图(Directed Acyclic Graph, DAG)转换为只含有join节点的任务图后,join任务图与树状结构工艺图可以相互转换;又由于对产品加工树采用关键路径法调度,可以通过优先加工关键路径上的工序缩短产品完成时间,而以往算法没有考虑任务图可以转换为与之对应的产品加工树形式,并通过优先调度关键路径上的任务节点的方式缩短任务执行总时间,因此在任务完成时间上会有所延迟,同时由于不能根据处理器内核多少调整调度序列,因此在处理器内核不足时无法进行有效的调度。
发明内容:
本发明的目的是提供一种基于关键路径和任务复制的单任务多核调度方法,提高了基于片上互连的同构多核处理器的效率,使任务图中每个节点都能得到充分调度,使任务完成时间得以提前,使处理器内核充分并行,使内核间通信时间得到较好控制,提升了同构多核处理器的性能。
上述的目的通过以下的技术方案实现:
一种基于关键路径和任务复制的单任务多核调度方法,该方法主要包括如下步骤:DAG任务图处理模块,采用任务复制的方法,将DAG任务图中的fork节点复制给其后继任务节点,形成join结构任务图,再进一步将join图转换为产品加工树;任务节点调度分配模块,引入综合调度中关键路径思想,查找产品加工树的关键路径,并优先调度关键路径上节点,尽量提前关键路径上节点开始执行时间;调度序列调整优化模块,采用合并相似度最大的调度序列的方式,将调度序列合并以使调度序列数不大于处理器内核数,实现处理器内核充分并行处理。
所述的基于关键路径和任务复制的单任务多核调度方法,所述的调度方法具体实施步骤如下:
步骤1:遍历DAG任务图,并将任务图中fork节点复制给它的后继任务节点,形成只含有join节点的任务图;
步骤2:将join任务图转换为与之对应的产品加工树;
步骤3:在产品加工树中计算由根节点到各叶节点的路径长度,找到路径最长的,作为关键路径,如路径长度相同,则找到包含节点数最多的,作为关键路径;
步骤4:将关键路径由第一个节点起,依次加入队列;
步骤5:判断队列是否为空,如不为空继续向下执行,否则跳转至步骤14;
步骤6:取队列中第一个任务节点,判断该节点入度是否大于1,并从队列中删除该节点,如该任务节点入度不大于1,继续向下执行,否则跳转至步骤8;
步骤7:与紧前节点序列形成调度序列,跳转到步骤5;
步骤8:判断不在关键路径上的紧前节点序列是否已形成调度序列,如已形成调度序列跳转至步骤11;否则继续向下执行;
步骤9:判断该序列中是否含有入度大于1的节点,如果含有入度大于1的节点继续向下执行,否则跳转至步骤11;
步骤10:将紧前节点序列虚拟为一棵产品加工树,跳转至步骤3;
步骤11:拟合并紧前节点序列,如果合并后使得该节点开始时间延迟,继续向下执行;否则跳转至步骤13;
步骤12:将关键紧前节点序列与非关键紧前节点序列分别形成调度序列,并将节点分配到使其最早开始执行的序列上,跳转到步骤5;
步骤13:合并紧前节点序列形成调度序列,跳转到步骤5;
步骤14:判断产品加工树中是否还有未调度节点,如果有,将该节点虚拟为一棵产品加工树并跳转到步骤3;否则继续向下执行;
步骤15:判断调度序列数是否大于处理器内核数,如果是,继续向下执行;否则跳转到步骤20;
步骤16:将调度序列分别加入队列;
步骤17:依次计算队列之间的相似度;
步骤18:查找相似度最大的队列;
步骤19:合并相似度最大的队列,跳转到步骤15;
步骤20:为每个调度序列分配内核;
步骤21:输出调度结果甘特图。
所述的基于关键路径和任务复制的单任务多核调度方法,所述的根节点到各叶节点的路径长度是路径上各工序加工时间和节点间通信时间总和。
所述的基于关键路径和任务复制的单任务多核调度方法,所述的任务节点调度分配模块中引入综合调度中关键路径策略,并且采用紧前节点组尽早调度策略进行关键路径上节点调度。
所述的基于关键路径和任务复制的单任务多核调度方法,所述的调度序列调整优化模块中采用合并相似度最大策略,根据处理器内核数对调度序列数进行调整。
有益效果:
1. 本发明通过任务复制的方式将DAG任务图转化为与之相对应的产品加工树;再在产品加工树中采取使关键路径上节点的紧前节点尽早调度的方式,使关键路径上节点尽早开始执行,以缩短任务执行总时间;并采用合并相似度最大的调度序列的方式,使调度序列数不多于处理器内核数,实现处理器内核充分并行处理。
2. 本发明减少处理器内核间通信,在基于片上互连的同构多核处理器中执行一个任务时,一个任务节点执行完毕后将生成的数据或控制以消息的方式发给它的后继任务节点,任务节点必须等待它的所有前驱任务节点执行完成后才能够执行。如任务节点与其后继任务节点不在同一内核上则需要进行核间通信,采用任务复制方式对任务图进行处理后,使得fork节点与其后继节点可以分配到同一内核上执行,进而可以减少处理器内核间的通信。
3. 本发明对任务图处理更为充分:首次将综合调度中的产品加工树引入多核调度任务图的处理中,产品加工树是一种呈树状结构只是边的方向与树相反的任务图,在这种任务图中每个任务节点都可以被虚拟为一棵单独的产品加工树。便于对每个节点进行单独分析和充分处理,以找到每个节点的最优调度方式。
4. 本发明方法通过任务复制减少处理器内核间的通信时间;通过将任务图转换为产品加工树以找到关键路径。关键路径上的任务节点的完成时间决定了任务完成总时间,节点必须等待其紧前节点序列执行完后才能开始执行。而有些关键路径上节点有多个紧前节点序列,这些序列经过任务复制处理后可能会被拟分配到不同处理器内核上执行,本技术通过最大限度合并这种被分配到不同内核上的调度序列到同一内核上执行的方式来进一步减少通信时间,提前关键路径上节点完成时间,以使任务完成总时间得以缩短。
5. 本发明方法处理器充分并行处理,通过合并相似度最大的调度序列的方式,使调度序列数不多于多核处理器内核数,每个调度序列都能够分配到相应的内核上处理。解决了当处理器内核个数不充足时,传统调度算法无法进行合理的任务调度的问题,是对传统调度算法的优化。
6. 本发明方法首先采用任务复制的方法将DAG任务图转换为join结构任务图,再通过引入综合调度中产品加工树的方式将join结构任务图转换为产品加工树,并找到关键路径,然后采用紧前任务节点组尽早完成的处理方式,使关键路径上节点尽早开始执行,缩短任务总的执行时间,并根据内核数对调度序列进行调整,实现多核的充分并行。
附图说明:
附图1是本发明的任务调度实施结构图。
附图2是本发明的DAG任务图处理模块过程图。
附图3是本发明的任务节点调度分配模块过程图。
附图4是本发明的序列调整优化模块过程图。
附图5是本发明的单任务DAG任务图图例。
附图6是本发明采用任务复制方式处理的join结构任务图例。
附图7是本发明将join结构任务图转换成的产品加工树图例。
附图8是本发明针对附图5所示任务图的调度结果甘特图。
附图9是现有技术对附图5所示任务图的调度结果甘特图。
具体实施方式:
实施例1:
一种基于关键路径和任务复制的单任务多核调度方法,其特征是:该方法主要包括如下步骤:DAG任务图处理模块,采用任务复制的方法,将DAG任务图中的fork节点复制给其后继任务节点,形成join结构任务图,再进一步将join图转换为产品加工树;任务节点调度分配模块,引入综合调度中关键路径思想,查找产品加工树的关键路径,并优先调度关键路径上节点,尽量提前关键路径上节点开始执行时间;调度序列调整优化模块,采用合并相似度最大的调度序列的方式,将调度序列合并以使调度序列数不大于处理器内核数,实现处理器内核充分并行处理。
实施例2:
上述的基于关键路径和任务复制的单任务多核调度方法,所述的调度方法具体实施步骤如下:
步骤1:遍历DAG任务图,并将任务图中fork节点复制给它的后继任务节点,形成只含有join节点的任务图;
步骤2:将join任务图转换为与之对应的产品加工树;
步骤3:在产品加工树中计算由根节点到各叶节点的路径长度,找到路径最长的,作为关键路径,如路径长度相同,则找到包含节点数最多的,作为关键路径;
步骤4:将关键路径由第一个节点起,依次加入队列;
步骤5:判断队列是否为空,如不为空继续向下执行,否则跳转至步骤14;
步骤6:取队列中第一个任务节点,判断该节点入度是否大于1,并从队列中删除该节点,如该任务节点入度不大于1,继续向下执行,否则跳转至步骤8;
步骤7:与紧前节点序列形成调度序列,跳转到步骤5;
步骤8:判断不在关键路径上的紧前节点序列是否已形成调度序列,如已形成调度序列跳转至步骤11;否则继续向下执行;
步骤9:判断该序列中是否含有入度大于1的节点,如果含有入度大于1的节点继续向下执行,否则跳转至步骤11;
步骤10:将紧前节点序列虚拟为一棵产品加工树,跳转至步骤3;
步骤11:拟合并紧前节点序列,如果合并后使得该节点开始时间延迟,继续向下执行;否则跳转至步骤13;
步骤12:将关键紧前节点序列与非关键紧前节点序列分别形成调度序列,并将节点分配到使其最早开始执行的序列上,跳转到步骤5;
步骤13:合并紧前节点序列形成调度序列,跳转到步骤5;
步骤14:判断产品加工树中是否还有未调度节点,如果有,将该节点虚拟为一棵产品加工树并跳转到步骤3;否则继续向下执行;
步骤15:判断调度序列数是否大于处理器内核数,如果是,继续向下执行;否则跳转到步骤20;
步骤16:将调度序列分别加入队列;
步骤17:依次计算队列之间的相似度;
步骤18:查找相似度最大的队列;
步骤19:合并相似度最大的队列,跳转到步骤15;
步骤20:为每个调度序列分配内核;
步骤21:输出调度结果甘特图。
实施例3:
上述的基于关键路径和任务复制的单任务多核调度方法,所述的根节点到各叶节点的路径长度是路径上各工序加工时间和节点间通信时间总和。
上述的基于关键路径和任务复制的单任务多核调度方法,所述的任务节点调度分配模块中引入综合调度中关键路径策略,并且采用紧前节点组尽早调度策略进行关键路径上节点调度。
上述的基于关键路径和任务复制的单任务多核调度方法,所述的调度序列调整优化模块中采用合并相似度最大策略,根据处理器内核数对调度序列数进行调整。
实施例4:
上述的基于关键路径和任务复制的单任务多核调度方法,基于任务复制的DAG任务图处理模块:
单任务模型通常采用DAG图来表示,单任务由多个任务节点组成,DAG图可以很好的表示任务节点之间的关系。fork图和join图是DAG任务图中两种最基本、最重要的结构图。在DAG任务图处理模块中本发明采用任务复制的处理方式,将任务图中的fork节点复制给其后继任务节点形成join结构任务图,并将join图进一步转换为综合调度中的产品加工树,为后续任务调度提供保障。
实施例5:
上述的基于关键路径和任务复制的单任务多核调度方法,基于综合调度中关键路径和紧前任务节点组尽早完成的任务节点调度分配模块
关键路径上节点的完成时间对任务执行总时间起决定作用,可以通过优先加工关键路径上的任务节点缩短产品完成时间。故本发明在设计任务节点调度分配模块时,采用综合调度中查找并优先调度关键路径上节点的方式进行处理,而在处理过程中会发现某些关键路径上节点紧前节点序列不唯一,此时本发明将采用紧前任务节点组尽早完成策略进行调度,以得到初始调度序列。
在任务节点调度分配过程中,首先在产品加工树中找出关键路径,并自关键路径上第一个节点起将关键路径上节点加入队列。在调度过程中如果队列非空,则取队列中第一个任务节点。如任务节点入度为0,则形成只含自身的调度序列;如任务节点入度为1,则将该节点分配到其紧前节点形成调度序列上。如任务节点入度大于1,则取其不属于关键路径的紧前节点序列(以下简称“非关键紧前序列”),如序列中含有入度大于1的节点,则将该序列虚拟为一棵产品加工树进行调度;如序列中不含有入度大于1的节点,则判断序列与属于关键路径上的紧前节点序列(以下简称“关键紧前序列”)合并后是否能使该任务节点开始时间提前,如果合并后能使得该任务节点开始执行时间提前或保持不变,则合并两序列,以提前任务结束时间,减少处理器内核消耗;如合并后使得该任务节点开始执行时间延迟,则将该两节点的紧前节点分别形成调度序列,并将该任务节点分配到能使其最早开始的调度序列上,完成该任务节点的分配调度。重复以上步骤直到队列为空,此时如果还有未调度节点则将该节点序列虚拟为一棵产品加工树进行调度。递归执行以上调度过程直到所有任务调度完成。
实施例6:
上述的基于关键路径和任务复制的单任务多核调度方法,基于合并相似度最大序列的调度序列调整优化模块
当今比较主流的多核处理器内核个数一般为四个或八个,当采用传统调度技术处理任务调度时,难免会出现调度序列数多于处理器内核数的情况,本发明针对这一状况设置了基于合并相似度最大序列的调度序列调整优化模块。
在调度序列调整优化中,当内核数少于执行序列个数时,因为有些节点任务被复制到不同的执行序列中,执行序列间会出现相同的节点任务,找出相同节点任务最多的两个执行序列,将其合并,最大限度地减少合并后序列的执行时间。通过合并的方式就可以减少执行序列的数量以适应内核需要。当内核数多于执行序列数时,直接为每个执行序列分配一个内核。整个单任务的完成时间就是调度到内核上具有最长完成时间的执行序列的执行时间。
实施例7:
上述的基于关键路径和任务复制的单任务多核调度方法,本技术主要针对基于片上互连的同构多核处理器下的单任务模型,单任务模型通常采用DAG任务图来表示,单任务由多个任务节点组成,DAG图可以很好的表示任务节点之间的关系。DAG图可以表示为G=(T,E),其中T表示图中节点的集合{Ti},节点T用来表示任务节点,Ti表示第i个任务节点。节点的权值表示任务节点的计算时间。E是有向边的集合{Eij},连接节点Ti和节点Tj的有向边Eij∈E表示从任务节点Ti到任务节点Tj存在通信关系,边的权值表示任务节点间的通信时间。
整个任务图从起始节点(没有前驱的节点)开始到终止节点(没有后继的节点)结束。一个任务节点执行完毕后将生成的数据或控制以消息的方式发给它的后继任务节点,图中的任务节点必须等待它的所有前驱任务节点执行完成后才能够执行。在同一内核上执行的任务节点间的通信开销可以忽略不计,不同内核上的任务节点之间要有较长的通信时间。任务节点以非抢占方式执行,内核上一旦执行某个任务节点,则直到该任务节点执行完毕后,这个内核才能执行其他任务节点。
实施例8:
上述的基于关键路径和任务复制的单任务多核调度方法,如附图5所示,即为一个单任务模型的DAG任务图,图中矩形框内T用来表示任务节点,节点的权值表示任务节点的计算时间。有向边表示从任务节点Ti到任务节点Tj存在通信关系,边的权值表示任务节点间的通信时间。不失一般性其他含有多个开始节点、多个终止节点的DAG任务图可以通过添加虚拟开始和终止节点的方式转换成与图1对应的任务图。
以下将结合附图5中的DAG图来对本技术的具体执行流程进行说明,设处理器内核数为4,首先将任务图中fork任务节点分别复制给各自的后继任务节点,通过任务节点复制的方式将DAG任务图变成join结构任务图,得到如附图6所示的join结构任务图。
实施例9:
上述的基于关键路径和任务复制的单任务多核调度方法,下面再将join结构任务图转换为如附图7所示的产品加工树,在加工树中可得到由叶节点到根节点的路径如表1所示。
表1 路径列表
路径 | 路径长度 |
(T1,T2,T6,T9) | 25 |
(T1,T2,T7,T9) | 36 |
(T1,T3,T7,T9) | 33 |
(T1,T2,T8,T9) | 27 |
(T1,T3,T8,T9) | 22 |
(T1,T4,T8,T9) | 26 |
(T1,T5,T8,T9) | 33 |
进而可得到关键路径为(T1,T2,T7,T9),长度为36。下面由关键路径上第一个节点开始将关键路径上节点加入队列,进行调度:
从队列中取出当前首节点T1,入度为0,则其调度序列为(T1),执行时间为2。
队列非空,从队列中取出当前首节点T2,入度为1,其关键紧前序列为(T1),则其调度序列为(T1,T2),执行时间为5。
队列非空,从队列取出当前首节点T7,入度为2,其关键紧前序列为(T1,T2),其非关键紧前序列未形成调度序列,且其中不含有入度大于1的节点,故该非关键紧前序列可形成调度序列(T1,T3);考虑是否可将(T1,T2),(T1)两个调度序列合并,如不合并两序列则T7最早开始时间为17,将两序列合并成(T1,T2,T3)后T7最早开始时间为8,故合并两序列形成T7的调度序列为(T1,T2,T3,T7),执行时间为12。
队列非空,从队列中取出当前首节点T9,其入度为3。T9节点关键紧前序列即为T7的调度序列(T1,T2,T3,T7)。其非关键紧前序列有两个,且都没有形成调度序列。分别对两序列进行分析和调度。
T6节点分支中不含有入度大于1的节点故可形成调度序列(T1,T2,T6),执行时间为9。
T8为节点分支中含有入度为4的节点T8,故将该分支虚拟为一棵产品加工树,以T8为根节点,该加工树中关键路径为(T1,T5,T8),得到T8的调度序列为{(T1,T3),(T1,T4),(T1,T5,T2,T8)},执行时间为14。
在不合并紧前节点调度序列时T9最早开始时间为22,而将T7和T8的调度序列合并形成调度序列{(T1,T4),(T1,T2,T3,T7,T5,T8)}后T9的开始时间为21,进而合并T7和T8的调度序列并形成T9的调度序列{(T1,T2,T6),(T1,T4), (T1,T2,T3, T7,T5,T8,T9)},执行时间为22。
此时队列为空,产品加工树中不含有未调度节点,任务节点非配结束,形成调度序列数为3,小于处理器内核数4,不需进行调度序列合并处理。
调度过程结束,将得到的调度序列分配到相应的内核上执行。调度结果如附图8的甘特图所示。附图8中阴影部分表示不在同一内核上的任务节点之间的通信时间。
实施例10:
上述的基于关键路径和任务复制的单任务多核调度方法,实例对比:
下面将本发明调度技术与现有的较为优秀的多核调度技术进行实例对比。
附图9为采用现有的较为优秀的多核调度技术对附图1所示的图例进行调度的结果甘特图,图中阴影部分为不在同一内核上的任务节点之间的通信时间。通过对比附图8和附图9可以看出,所发明的调度技术采用紧前任务节点组尽早完成策略,通过节点T7和T8的调度序列合并,使T9节点分配到相应的核上提前开始执行,进而使任务执行总时间得以缩短,同时也减少了处理器内核之间的通信和内核个数的消耗。
因此,本发明提出的调度技术是对目前多核调度技术的优化。
Claims (5)
1.一种基于关键路径和任务复制的单任务多核调度方法,其特征是:该方法主要包括如下步骤:DAG任务图处理模块,采用任务复制的方法,将DAG任务图中的fork节点复制给其后继任务节点,形成join结构任务图,再进一步将join图转换为产品加工树;任务节点调度分配模块,引入综合调度中关键路径思想,查找产品加工树的关键路径,并优先调度关键路径上节点,提前关键路径上节点开始执行时间;调度序列调整优化模块,采用合并相似度最大的调度序列的方式,将调度序列合并以使调度序列数不大于处理器内核数,实现处理器内核充分并行处理。
2.根据权利要求1所述的基于关键路径和任务复制的单任务多核调度方法,其特征是:所述的调度方法具体实施步骤如下:
步骤1:遍历DAG任务图,并将任务图中fork节点复制给它的后继任务节点,形成只含有join节点的任务图;
步骤2:将join任务图转换为与之对应的产品加工树;
步骤3:在产品加工树中计算由根节点到各叶节点的路径长度,找到路径最长的,作为关键路径,如路径长度相同,则找到包含节点数最多的,作为关键路径;
步骤4:将关键路径由第一个节点起,依次加入队列;
步骤5:判断队列是否为空,如不为空继续向下执行,否则跳转至步骤14;
步骤6:取队列中第一个任务节点,判断该节点入度是否大于1,并从队列中删除该节点,如该任务节点入度不大于1,继续向下执行,否则跳转至步骤8;
步骤7:与紧前节点序列形成调度序列,跳转到步骤5;
步骤8:判断不在关键路径上的紧前节点序列是否已形成调度序列,如已形成调度序列跳转至步骤11;否则继续向下执行;
步骤9:判断该序列中是否含有有入度大于1的节点,如果含有入度大于1的节点继续向下执行,否则跳转至步骤11;
步骤10:将紧前节点序列虚拟为一棵产品加工树,跳转至步骤3;
步骤11:拟合并紧前节点序列,如果合并后使得该节点开始时间延迟,继续向下执行;否则跳转至步骤13;
步骤12:将关键紧前节点序列与非关键紧前节点序列分别形成调度序列,并将节点分配到使其最早开始执行的序列上,跳转到步骤5;
步骤13:合并紧前节点序列形成调度序列,跳转到步骤5;
步骤14:判断产品加工树中是否还有未调度节点,如果有,将该节点虚拟为一棵产品加工树并跳转到步骤3;否则继续向下执行;
步骤15:判断调度序列数是否大于处理器内核数,如果是,继续向下执行;否则跳转到步骤20;
步骤16:将调度序列分别加入队列;
步骤17:依次计算队列之间的相似度;
步骤18:查找相似度最大的队列;
步骤19:合并相似度最大的队列,跳转到步骤15;
步骤20:为每个调度序列分配内核;
步骤21:输出调度结果甘特图。
3.根据权利要求1或2所述的基于关键路径和任务复制的单任务多核调度方法,其特征是:所述的根节点到各叶节点的路径长度是路径上各工序加工时间和节点间通信时间总和。
4.根据权利要求1或2或3所述的基于关键路径和任务复制的单任务多核调度方法,其特征是:所述的任务节点调度分配模块中引入综合调度中关键路径策略,并且采用紧前节点组尽早调度策略进行关键路径上节点调度。
5.根据权利要求1或2或3或4所述的基于关键路径和任务复制的单任务多核调度方法,其特征是:所述的调度序列调整优化模块中采用合并相似度最大策略,根据处理器内核数对调度序列数进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210554170.5A CN103034614B (zh) | 2012-12-19 | 2012-12-19 | 基于关键路径和任务复制的单任务多核调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210554170.5A CN103034614B (zh) | 2012-12-19 | 2012-12-19 | 基于关键路径和任务复制的单任务多核调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034614A true CN103034614A (zh) | 2013-04-10 |
CN103034614B CN103034614B (zh) | 2016-12-28 |
Family
ID=48021519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210554170.5A Active CN103034614B (zh) | 2012-12-19 | 2012-12-19 | 基于关键路径和任务复制的单任务多核调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034614B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336723A (zh) * | 2013-07-21 | 2013-10-02 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN103699939A (zh) * | 2013-11-15 | 2014-04-02 | 中国空间技术研究院 | 一种宇航用元器件应用验证流程建立方法 |
CN104636204A (zh) * | 2014-12-04 | 2015-05-20 | 中国联合网络通信集团有限公司 | 一种任务调度方法与装置 |
CN104915251A (zh) * | 2015-06-05 | 2015-09-16 | 北京京东尚科信息技术有限公司 | 任务调度方法及装置 |
WO2015149350A1 (zh) * | 2014-04-04 | 2015-10-08 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN105117281A (zh) * | 2015-08-24 | 2015-12-02 | 哈尔滨工程大学 | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 |
CN105279598A (zh) * | 2015-05-18 | 2016-01-27 | 哈尔滨理工大学 | 基于动态关键路径法的兄弟工序成组综合调度方法 |
CN105511432A (zh) * | 2015-12-09 | 2016-04-20 | 哈尔滨理工大学 | 基于路径长度的工序串综合调度方法 |
US10152349B1 (en) | 2016-09-27 | 2018-12-11 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
CN109857532A (zh) * | 2019-01-22 | 2019-06-07 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN113359648A (zh) * | 2021-07-01 | 2021-09-07 | 哈尔滨理工大学 | 相同设备上虚拟调整时长的综合调度算法 |
CN114385337A (zh) * | 2022-01-10 | 2022-04-22 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114706689A (zh) * | 2022-05-17 | 2022-07-05 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的多核处理器任务调度方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138244A1 (en) * | 2003-12-23 | 2005-06-23 | Futurewei Technologies, Inc. | Lower bound algorithm for operation scheduling |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN102799475A (zh) * | 2012-06-29 | 2012-11-28 | 东南大学 | 一种基于任务复制的多复本容错并行任务调度方法 |
-
2012
- 2012-12-19 CN CN201210554170.5A patent/CN103034614B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138244A1 (en) * | 2003-12-23 | 2005-06-23 | Futurewei Technologies, Inc. | Lower bound algorithm for operation scheduling |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN102779075A (zh) * | 2012-06-28 | 2012-11-14 | 华为技术有限公司 | 一种在多处理器核系统中进行调度的方法、装置及系统 |
CN102799475A (zh) * | 2012-06-29 | 2012-11-28 | 东南大学 | 一种基于任务复制的多复本容错并行任务调度方法 |
Non-Patent Citations (2)
Title |
---|
周双娥等: "基于任务复制的处理器预分配算法", 《计算机学报》 * |
谢志强等: "基于工序集的动态关键路径多产品制造调度算法", 《计算机学报》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336723B (zh) * | 2013-07-21 | 2017-03-29 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN103336723A (zh) * | 2013-07-21 | 2013-10-02 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN103699939A (zh) * | 2013-11-15 | 2014-04-02 | 中国空间技术研究院 | 一种宇航用元器件应用验证流程建立方法 |
WO2015149350A1 (zh) * | 2014-04-04 | 2015-10-08 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN105210059B (zh) * | 2014-04-04 | 2018-12-07 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN105210059A (zh) * | 2014-04-04 | 2015-12-30 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN104636204A (zh) * | 2014-12-04 | 2015-05-20 | 中国联合网络通信集团有限公司 | 一种任务调度方法与装置 |
CN104636204B (zh) * | 2014-12-04 | 2018-06-01 | 中国联合网络通信集团有限公司 | 一种任务调度方法与装置 |
CN105279598A (zh) * | 2015-05-18 | 2016-01-27 | 哈尔滨理工大学 | 基于动态关键路径法的兄弟工序成组综合调度方法 |
CN104915251B (zh) * | 2015-06-05 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 任务调度方法及装置 |
CN104915251A (zh) * | 2015-06-05 | 2015-09-16 | 北京京东尚科信息技术有限公司 | 任务调度方法及装置 |
CN105117281A (zh) * | 2015-08-24 | 2015-12-02 | 哈尔滨工程大学 | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 |
CN105117281B (zh) * | 2015-08-24 | 2019-01-15 | 哈尔滨工程大学 | 一种基于任务申请信号和处理器内核执行代价值的任务调度方法 |
CN105511432A (zh) * | 2015-12-09 | 2016-04-20 | 哈尔滨理工大学 | 基于路径长度的工序串综合调度方法 |
US10748067B2 (en) | 2016-09-27 | 2020-08-18 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
US10152349B1 (en) | 2016-09-27 | 2018-12-11 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
CN109857532A (zh) * | 2019-01-22 | 2019-06-07 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN109857532B (zh) * | 2019-01-22 | 2020-11-17 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN113359648A (zh) * | 2021-07-01 | 2021-09-07 | 哈尔滨理工大学 | 相同设备上虚拟调整时长的综合调度算法 |
CN113359648B (zh) * | 2021-07-01 | 2022-12-09 | 哈尔滨理工大学 | 相同设备上虚拟调整时长的综合调度方法 |
CN114385337A (zh) * | 2022-01-10 | 2022-04-22 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114385337B (zh) * | 2022-01-10 | 2023-10-20 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114706689A (zh) * | 2022-05-17 | 2022-07-05 | 中诚华隆计算机技术有限公司 | 一种基于子任务特性的多核处理器任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103034614B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034614A (zh) | 基于关键路径和任务复制的单任务多核调度方法 | |
CN112465129B (zh) | 片内异构人工智能处理器 | |
CN102193826B (zh) | 一种异构多核处理器高效任务调度方法 | |
CN102360309B (zh) | 片上多核异构系统的调度系统与调度执行方法 | |
US8881158B2 (en) | Schedule decision device, parallel execution device, schedule decision method, and program | |
CN100576177C (zh) | 基于QoS约束的双向分级网格资源调度方法 | |
Qiu et al. | Loop parallelism maximization for multimedia data processing in mobile vehicular clouds | |
US20070143759A1 (en) | Scheduling and partitioning tasks via architecture-aware feedback information | |
Liu et al. | Minimizing cost of scheduling tasks on heterogeneous multicore embedded systems | |
CN103336723A (zh) | 基于关键路径的适应处理器内核紧缺调度方法 | |
CN101366004A (zh) | 用于带有专用线程管理的多核处理的方法和设备 | |
CN103970580A (zh) | 一种面向多核集群的数据流编译优化方法 | |
CN102855153B (zh) | 面向片式多核处理器的流编译优化方法 | |
CN103500119B (zh) | 一种基于预调度的任务分配方法 | |
CN105700941A (zh) | 三维调度器模型及其调度算法 | |
CN102364447A (zh) | 一种优化多任务间通信能耗的作业调度方法 | |
CN107329822B (zh) | 面向多源多核系统的基于超任务网的多核调度方法 | |
CN116401055B (zh) | 面向资源效率优化的服务器无感知计算工作流编排方法 | |
CN111404818B (zh) | 一种面向通用多核网络处理器的路由协议优化方法 | |
CN110990154A (zh) | 一种大数据应用优化方法、装置及存储介质 | |
CN110222007B (zh) | 一种基于申威众核处理器的加速运行方法 | |
CN114371933A (zh) | 一种动态调度多核融合计算处理器的方法及其系统 | |
CN102012844A (zh) | 一种面向cmp系统的线程调度方法 | |
CN101996105A (zh) | 可重构计算平台上的静态软硬件任务划分与调度方法 | |
Yang et al. | Study on static task scheduling based on heterogeneous multi-core processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |