CN104239137B - 基于dag节点最优路径的多模型并行调度方法及装置 - Google Patents
基于dag节点最优路径的多模型并行调度方法及装置 Download PDFInfo
- Publication number
- CN104239137B CN104239137B CN201410415590.4A CN201410415590A CN104239137B CN 104239137 B CN104239137 B CN 104239137B CN 201410415590 A CN201410415590 A CN 201410415590A CN 104239137 B CN104239137 B CN 104239137B
- Authority
- CN
- China
- Prior art keywords
- node
- optimal path
- path
- dag
- optimal
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于DAG节点最优路径的多模型并行调度方法及装置,其中的方法包括:根据各模型之间的关系创建基于各模型关系的DAG图;根据基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合;其中,在调度序列集合中包括多个并行调度的序列;将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵;将第一邻接矩阵映射成邻接表;根据邻接表并行运行调度序列集合中的各个序列。利用本发明提供的基于DAG节点最优路径的多模型并行调度方法及装置,能够解决现有拆分方法中复杂度高、运行时间长的问题;还能够充分利用系统资源,有效缩短多模型的调度运行时间。
Description
技术领域
本发明涉及模型调度技术领域,更为具体地,涉及一种基于DAG节点最优路径的多模型并行调度方法及装置。
背景技术
复杂产品的设计和运行过程中,往往涉及不同种类、不同复杂度、相互关联的多种模型,多模型的调度方法直接影响产品运行的可行性和时效性。多模型调度方法主要是利用DAG图(Directed Acyclic Graph,有向无环图)描述模型间的前驱后继关系,在DAG图中,DAG的节点代表模型,DAG的边代表模型间的依赖关系。
图1为模型系统的DAG图,由图1可以看出,DAG图描述了多个模型及其相互间的依赖关系。其中,圆形左侧数据代表节点序号,1~10代表参与调度的10个模型,圆形右侧的数据代表模型执行时间,有向线段代表模型间的依赖关系,后继节点必须在其前驱节点执行完成后才可以执行。
在通常的多模型调度方法中,模型是串行执行的,调度周期长,不能充分发挥多核处理器和分布式环境下的并行优势,浪费系统资源。
为了实现多模型的并行调度,一般将DAG图拆分为可并行调度的序列。现有的被广泛使用的DAG图拆分方法是In-tree方法,即根据DAG图中各个节点的出度和入度,将DAG图转换成In-tree结构,然后分析In-tree结构中包含的所有路径,找到可并行调度的序列。但是,该In-tree方法需要对所有节点、In-tree所有路径进行分析,计算复杂度高、运行时间长,严重影响系统的运行效率。
因此,需要一种全新的基于DAG节点最优路径的多模型并行调度方法,以充分发挥多核处理器和分布式环境下的并行优势,避免浪费系统资源,提高系统的运行效率。
发明内容
鉴于上述问题,本发明的目的是提供一种基于DAG节点最优路径的多模型并行调度方法及装置,以解决现有的多模型并行调度方法中,调度周期长,不能充分发挥多核处理器和分布式环境下的并行优势,浪费系统资源的问题。
本发明提供的基于DAG节点最优路径的多模型并行调度方法,包括:
根据各模型之间的关系创建基于各模型关系的DAG图;
根据基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合;其中,在调度序列集合中包括多个并行调度的序列;
将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵;
将第一邻接矩阵映射成邻接表;
根据邻接表并行运行调度序列集合中的各个序列。
本发明提供的基于DAG节点最优路径的多模型并行调度装置,包括:
DAG图创建单元,用于根据各模型之间的关系创建基于各模型关系的DAG图;
DAG图拆分单元,用于根据基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合;其中,在调度序列集合中包括多个并行调度的序列;
序列存储单元,用于将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵;
矩阵映射单元,用于将第一邻接矩阵映射成邻接表;
序列运行单元,用于根据邻接表并行运行调度序列集合中的各个序列。
利用上述根据本发明提供的基于DAG节点最优路径的多模型并行调度方法及装置,能够将DAG图拆分可并行调度的序列,解决现有拆分方法中复杂度高、运行时间长的问题;同时针对现有最优路径分析方法的不足,提出一种基于路径探测的最优路径分析算法;另外,根据子路径判断的实际需求,提出了一种基于统一存储的路径子路径判断方法,结合上述两个方面能够充分利用系统资源,并且有效缩短多模型的调度运行时间。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:
图1为模型系统的DAG图;
图2为根据本发明实施例的基于DAG节点最优路径的多模型并行调度方法的流程示意图;
图3为根据本发明实施例的基于节点最优路径的DAG图拆分方法的流程示意图;
图4为根据本发明实施例的基于路径探测的最优路径分析算法的流程示意图;
图5为根据本发明实施例的子路径判断方法流程示意图;
图6为根据本发明实施例的基于DAG节点最短路径并行调度结果图;
图7为根据本发明实施例的基于DAG节点最优路径的多模型并行调度装置的结构示意图;
图8为根据本发明实施例的基于DAG节点最优路径的多模型并行调度装置的一个具体实施方式的结构示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。
针对现有的多模型调度方法中DAG图拆分方法复杂度高、运行时间长,系统运行效率低的问题,本发明提出一种基于DAG节点最优路径的多模型并行调度解决方案,采用基于路径探测的最优路径分析算法将DAG图拆分可并行调度的序列,再将可并行调度的序列存储为邻接矩阵的形式,对邻接矩阵进行映射转化成邻接表,最后将可并行调度的序列以邻接表的形式并行运行各个序列。
需要说明的是,上述节点的最优路径指的是起始节点到该节点的最短路径。
以下将结合附图对本发明的具体实施例进行详细描述。
图2示出了根据本发明实施例的基于DAG节点最优路径的多模型并行调度方法的流程。
如图2所示,本发明实施例提供的基于DAG节点最优路径的多模型并行调度方法,包括:
步骤S201:根据各模型之间的关系创建基于各模型关系的DAG图。
其中,DAG图是有向无环图,用来描述各个模型间的前驱后继关系,DAG图中的第一个节点为起始节点,最后一个节点为终止节点,起始节点和终止节点间的节点为中间节点,以图1为例,如果当前节点为节点2,则节点1为节点2的前驱节点,节点3、节点4、节点5、节点6为节点2的后继节点,其它节点的前驱节点和后继节点同理。
步骤S202:根据基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合;其中,在调度序列集合中包括多个并行调度的序列。
根据基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合具体的过程为:采用最优路径分析算法按照从终止节点到起始节点的顺序查找每个中间节点的最优路径,并将每个中间节点的最优路径加入调度序列集合;每个中间节点的最优路径分别对应一个序列,多个并行调度的序列至少包括两个序列。
其中,在采用基于路径探测的最优路径分析算法查找每个中间节点的最优路径的过程中,对起始节点与每个中间节点间的路径进行双向探测,过滤掉起始节点与每个中间节点之间不存在通路的节点,并保留起始节点和每个中间节点间之间最短的路径作为每个中间节点的最优路径加入到调度序列集合中。
作为一个具体实施方式,在将每个中间节点的最优路径加入调度序列集合之前,判断每个中间节点的最优路径是否为调度序列集合中最优路径的子路径;如果是,此中间节点的最优路径不加入所述调度序列集合;如果否,将此中间节点的最优路径加入所述调度序列集合。
需要说明的是,调度序列集合为一个大的空间,用来存储可并行调度的序列,因此,在拆分DAG图的过程中,将DAG图拆分为一个调度序列集合,下文中提到的其它集合也为一个。
步骤S203:将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵。
由于多个并行调度的序列分别对应一个中间节点的最优路径,将多个并行调度的序列存储为第一邻接矩阵就是将多个中间节点的最优路径以邻接矩阵的形式存储。
步骤S204:将第一邻接矩阵映射成邻接表。
最终以邻接表的形式存储多个中间节点的最优路径,有利于系统的运行。
步骤S205:根据邻接表并行运行调度序列集合中的各个序列。
实际上运行的是与各个序列相对应的最优路径,也就是可并行调度的最优路径。
上述步骤为实现本发明实施例提供的基于DAG节点最优路径的多模型并行调度方法所采取的数据处理步骤,其中,本发明实施的主要细节在于DAG图的拆分方法和拆分DAG图用到的最优路径分析算法,以及在拆分过程中涉及到的子路径判断方法,下面分别对这三个方面进行详细地说明。
一、DAG图的拆分方法
为了解决现有的DAG图拆分方法中计算复杂度高、运行时间长,系统运行效率低的问题,本发明实施例采用最优路径分析算法将DAG图拆分为调度序列集合,也就是将DAG图拆分为多个可并行调度的序列,每个序列为一个中间节点的最优路径,最后执行的就是可并行调度的多个中间节点的最优路径。
图3示出了根据本发明实施例的基于节点最优路径的DAG图拆分方法的流程,如图3所示,本发明实施例提供的基于节点最优路径的DAG图拆分方法包括:
步骤S301:初始化当前节点集合、已完成节点集合与调度序列集合。
初始化当前节点集合的目的是为了在内存中创建一个空间用来存储将要进行最优路径计算的节点,初始化已完成节点集合的目的同样是为了在内存中创建一个空间,用来存储经过计算的最优路径的节点;而初始化调度序列集合的目的则是为了在内存中创建一个存储节点的最优路径的空间。
步骤S302:输入DAG图。
在创建DAG图后,将DAG图输入到内存中,用于对DAG图进行拆分DAG图内存中可以用多种形式存储,例如列表或矩阵等等。
步骤S303:将终止节点加入当前节点集合。
在本发明的实施例中,采用从终止节点向起始节点的顺序计算每个中间节点的最优路径,由于在计算每个中间节点的最优路径的过程中,需要对每个中间节点的最优路径进行是否存在子路径的判断,也就是说一个中间节点的最优路径是否为其后继节点的最优路径的子路径,如果是,该中间节点的最优路径是不需要加入调度序列集合的,此时只需要将该中间节点的后继节点的最优路径加入调度序列集合即可,由于按照从起始节点到终止节点的顺序不能判断出一个中间节点的最优路径是否为其后继节点的最优路径的子路径,此时需要计算所有到达该后继节点的路径,比较所有到达该后继节点的路径后才能获得该后继节点的最优路径,这样会增大计算量和复杂度,而采用从终止节点到起始节点的顺序计算每个中间节点的最优路径时,在计算出一个中间节点的后继节点的最优路径后自然而然的能却确定出该中间节点的最优路径是否为其后继节点的最优路径的子路径,能够避免不必要的计算,降低计算量和复杂度。
步骤S304:采用基于路径探测的最优路径分析算法查找当前节点集合中节点的所有前驱节点的最优路径。
最优路径分析算法将在下文做详细说明,在计算节点的所有前驱节点的最优路径的过程中,是依次对每个前驱节点计算最优路径,其计算的顺序可以是随机的,也可以是根据每个模型的编号按照一定的顺序进行计算。
从此步骤S304到步骤S307为一个while循环,满足该循环的条件为当前节点集合中节点有前驱节点,如果当前节点集合汇总节点没有前驱节点,则跳出该循环。
步骤S305:判断从步骤S304中计算出的最优路径是否为调度序列集合中的某个节点的最优路径的子路径,如果是,执行步骤S307;如果否,执行步骤S306。
判断子路径的方法将在下文做详细说明。
步骤S306:将从步骤S304中计算出的最优路径加入调度序列集合。
其中,每一条最优路径相当于一个可并行调度的序列。
步骤S307:将当前节点集合中的节点移至已完成节点集合,并将节点的前驱节点加入当前节点集合。
步骤S308:获得调度序列集合。
调度序列集合中包括多个可并行调度的最优路径。
为了更清楚的说明上述流程,结合图1,首先将终止节点10加入当前节点集合,查找终止节点10的所有前驱节点的最优路径(也就是节点7、8、9的最优路径),将终止节点10加入已完成节点集合,并将终止节点10的前驱节点7、8、9加入当前节点集合,再查找节点7、8、9的前驱节点的最优路径(也就是节点3、4、5、6的最优路径)一直循环到起始节点1位置,由于节点1没有前驱节点,跳出该循环,最后得到一个调度序列集合。
另外,由于在查找到所有中间节点的最优路径后自然而然的能确定出终止节点的最优路径,因此本发明实施例中没有查找终止节点的最优路径。
二、最优路径分析算法
Dijkstra算法是目前已知理论上最完善的算法,也是多数系统解决最短路径问题采用的理论基础。然而,在实际应用中,使用Dijkstra算法求解最短路径将会耗费大量的存储空间和计算时间,因此必须根据具体的应用对其进行优化。
综合分析种种对Dijkstra算法的优化方法,可将其归为两大类:对存储空间的优化和对计算时间的优化。在存储空间方面出现了链表数组、最大邻接点数等优化的存储结构。在计算时间方面主要有限制搜索区域、启发式搜索、双向搜索、分层搜索等方法。然而这些方法的核心思想仍然是穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。
为了解决上述问题,本发明提供一种基于路径探测的最优路径分析算法,用探测程序对起点和终点间的节点和路段进行双向探测,过滤掉与起始节点和终止节点间不存在通路的节点,在探测的过程中实时更新最优路径集合,最终输出最优路径,该算法通过探测舍去了不必要的计算,提高了算法的运行效率。
图4示出了根据本发明实施例的基于路径探测的最优路径分析算法的流程,如图4所示,本发明实施例提供的基于路径探测的最优路径分析算法包括:
步骤S401:初始化起始节点集合、终止节点集合与最优路径集合。
目的是分别建立三个空间,分别用于存储起始节点、终止节点与最优路径。
步骤S402:输入DAG图。
在创建完DAG图后,将DAG图输入到内存。
步骤S403:将起始节点加入起始节点集合、终止节点加入终止节点集合。
步骤S404:探测起始节点集合中节点的后继节点与终止节点集合中节点的前驱节点间的路径是否存在通路,如果存在,执行步骤S405;如果不存在,执行步骤S406。
其中,如果起始节点集合中节点包括多个后继节点,终止节点集合的中节点包括多个前驱节点,则将每个前驱节点分别作为终止节点,依次探测与起始节点的后续节点间是否存在通路。
步骤S405:保留距离最短的路径,更新最优路径集合,并将该前驱节点加入终止节点集合,后续节点加入起始节点集合。
其中,保留距离最短的路径为每个终止节点与起始节点的后续节点间最短的路径,将其作为每个终止节点的最优路径加入最优路径集合。
步骤S406:过滤掉与起点节点和终止节点间不存在通路的节点。
步骤S407:判断起始节点是否为终止节点,如果是,执行步骤S408;如果否,返回步骤S404。
如果起始节点和终止节点为同一节点,也就是一个节点既是后继节点又是前驱节点,则认为起始节点为终止节点,结合图1,节点3既是节点2的后继节点又是节点8的前驱节点,在探测节点3的最优路径时,将节点3作为新的起始节点,同时节点3又作为新的终止节点,所以起始节点为终止节点。
还有另外一种情况,如果图1中的节点10不是终止节点,节点10还有一个后续节点,这种情况下,节点3是节点8的前驱节点,节点8是节点3的后继节点,由于节点3和节点8之间没有节点,节点3和节点8之间的路径距离是确定的,因此再将节点3作为起始节点、节点8作为终止节点时可以认为起始节点3为终止节点8。
步骤S408:获得最优路径集合。
获得的最优路径集合包括各个中间节点最优路径。
由步骤S401~步骤S408可以看出,在探测一个中间节点的最优路径的过程中,会探测到其所有前驱节点的最优路径,这些前驱节点的最优路径需要进行子路径的判断,如果前驱节点的最优路径不为调度序列集合中任一条最优路径的子路径,则将这些前驱节点的最优路径加入到调度序列集合中,从实质上来说,最优路径集合相当于调度序列集合,每一条最优路径相当于可并行调度的序列,多条最优路径加入到最优路径集合就是多个可并行调度的序列加入到调度序列集合。
三、子路径判断方法
在将每个中间节点的最优路径加入到最优路径集合(也就是调度序列集合)之前,需要判断是否为最优路径集合中任一条最优路径的子路径,在判断某一条最优路径是否为最优路径集合中某一条最优路径的子路径的过程中,由于最优路径集合中可能包含多个最优路径,未加入最优路径集合的最优路径需要与最优路径集合中所有最优路径进行对比分析,效率较低。为了解决该问题,本发明实施例提出一种统一存储的方式,将最优路径集合中的最优路径存入邻接矩阵,最优路径中所有存在通路的两节点存1,不存在通路的两个节点存0,同理,非最优路径集合内的最优路径存入另一邻接矩阵。如果非最优路径集合内的最优路径的邻接矩阵是最优路径集合中的邻接矩阵的子矩阵,那么该最优路径是其中某一条最优路径的子路径。
图5示出了根据本发明实施例的子路径判断方法流程,如图5所示,本发明实施例提供的子路径判断方法包括:
步骤S501:输入最优路径集合与非最优路径集合内的最优路径。
在将某个中间节点的最优路径加入最优路径集合之前,判断此中间节点的最优路径是否为最优路径集合中某个最优路径的子路径,此时需要将最优路径集合与该中间节点的最优路径输入到内存中用于判断。
步骤S502:对最优路径集合进行统一存储,存入第三邻接矩阵,再将非最优路径集合内的最优路径存入第二邻接矩阵。
再将最优路径集合存入第三邻接矩阵时,最优路径中所有存在通路的两节点存1,不存在通路的两个节点存0,非最优路径集合内的最优路径同理存入第二邻接矩阵。
步骤S503:判断第二邻接矩阵是否为第三邻接矩阵的子矩阵;如果是,执行步骤S504;如果否,执行步骤S505。
步骤S504:非最优路径集合内的最优路径为最优路径集合中某个最优路径的子路径。
步骤S505:非最优路径集合内的最优路径不为最优路径集合中某个最优路径的子路径。
在判断出非最优路径集合内的最优路径不为最优路径集合中某个最优路径的子路径后,将非最优路径集合内的最优路径加入最优路径集合也就是调度序列集合。
上述方法和流程详细说明了本发明实施例提供的基于DAG节点最优路径的多模型并行调度方法,以图1为例,执行上述流程得到可并行执行的序列如表1所示:
表1可并行调度的序列
由表1可以看出,由于先探测节点8的最优路径,而节点3的最优路径为节点8的最优路径的子路径,不加入调度序列集合,同理节点4的最优路径和节点6的最优路径分别为节点7的最优路径的子路径和节点9的最优路径的子路径,不加入调度序列集合,唯独节点5的最优路径不是其后继节点7、8、9的最优路径的子路径,可以加入调度序列集合,因此,可并行调度的序列为节点1到5号节点的最优路径、节点1到7号节点的最优路径、节点1到8号节点的最优路径和节点1到9号节点的最优路径。
为了更直观地说明可并行调度的序列,图6示出了根据本发明实施例的基于DAG节点最短路径并行调度的结果,如图6所示,图中序列的并行度为4,其中横轴代表时间,P0、P1、P2、P3代表处理线程,方框的编号与节点编号对应,方框的宽度代表运行时间,按照本发明实施例提供的基于DAG节点最优路径的多模型并行调度方法,总的调度时间为26秒,即系统的最小运行时间。
与上述方法相对应,本发明还提供一种基于DAG节点最优路径的多模型并行调度装置。图7示出了根据本发明实施例的基于DAG节点最优路径的多模型并行调度装置的结构。
如图7所示,本发明提供的本发明实施例提供的基于DAG节点最优路径的多模型并行调度装置,包括DAG图创建单元710、DAG图拆分单元720、序列存储单元730、矩阵映射单元740、序列运行单元750。
其中,DAG图创建单元710用于根据各模型之间的关系创建基于各模型关系的DAG图。
DAG图拆分单元720用于采用基于路径探测的最优路径分析算法将DAG图拆分为调度序列集合;其中,在调度序列集合中包括多个并行调度的序列。
序列存储单元730用于将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵。
矩阵映射单元740用于将第一邻接矩阵映射成邻接表。
序列运行单元750用于根据邻接表并行运行调度序列集合中的各个序列。
其中,上述DAG图包括起始节点、终止节点和至少两个中间节点。
图8示出了根据本发明实施例的基于DAG节点最优路径的多模型并行调度装置一个具体实施方式,在如图8所示的具体实施方式中,DAG图拆分单元720包括最优路径查找模块721和最优路径加入模块722。
其中,最优路径查找模块721用于采用基于路径探测的最优路径分析算法按照从终止节点到起始节点的顺序查找每个中间节点的最优路径。
最优路径加入模块722用于将每个中间节点的最优路径加入调度序列集合;其中,每个中间节点的最优路径分别对应一个序列。
其中,在根据基于路径探测的最优路径分析算法查找每个中间节点的最优路径的过程中,最优路径查找模块721对起始节点与每个中间节点间的路径进行双向探测,过滤掉起始节点与每个中间节点之间不存在通路的节点,并保留起始节点和每个中间节点间之间最短的路径作为每个中间节点的最优路径加入调度序列集合。
其中,该装置还包括子路径判断单元760,子路径判断单元760用于在将每个中间节点的最优路径加入调度序列集合之前,判断每个中间节点的最优路径是否为调度序列集合中最优路径的子路径;如果是,此中间节点的最优路径不加入调度序列集合;如果否,将此中间节点的最优路径加入调度序列集合。
子路径判断单元760进一步包括第二邻接矩阵存入模块761、第三邻接矩阵存入模块762和子矩阵判断模块763。
其中,第二邻接矩阵存入模块761用于将每个中间节点的最优路径分别存入第二邻接矩阵。
第三邻接矩阵存入模块762用于将调度序列集合中的所有最优路径存入第三邻接矩阵。
子矩阵判断模块763用于判断第二邻接矩阵是否为第三邻接矩阵的子矩阵;如果是,子路径判断单元760判断第二邻接矩阵中的最优路径为调度序列集合中最优路径的子路径;如果否,子路径判断单元760判断第二邻接矩阵中的最优路径不为调度序列集合中最优路径的子路径。
上述详细地描述了本发明提供的基于DAG节点最优路径的多模型并行调度方法及装置,将DAG图拆分可并行调度的序列,解决现有拆分方法中复杂度高、运行时间长的问题;同时针对现有最优路径分析方法的不足,提出一种基于路径探测的最优路径分析算法;另外,根据子路径判断的实际需求,提出了一种基于统一存储的路径子路径判断方法,结合上述两个方面能够充分利用系统资源,并且有效缩短多模型的调度运行时间。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种基于DAG节点最优路径的多模型并行调度方法,包括:
根据各模型之间的关系创建基于各模型关系的DAG图,所述DAG图包括起始节点、终止节点和至少两个中间节点;
根据基于路径探测的最优路径分析算法将所述DAG图拆分为调度序列集合;其中,在所述调度序列集合中包括多个并行调度的序列;
将所述调度序列集合中的所有并行调度的序列存储为第一邻接矩阵;
将所述第一邻接矩阵映射成邻接表;
根据所述邻接表并行运行所述调度序列集合中的各个序列;
其中,在根据基于路径探测的最优路径分析算法将所述DAG图拆分为调度序列集合的过程中,采用最优路径分析算法按照从所述终止节点到所述起始节点的顺序查找每个中间节点的最优路径,并将每个中间节点的最优路径加入所述调度序列集合;其中,每个中间节点的最优路径分别对应一个序列。
2.如权利要求1所述的基于DAG节点最优路径的多模型并行调度方法,其中,在根据基于路径探测的最优路径分析算法查找每个中间节点的最优路径的过程中,
对所述起始节点与每个中间节点间的路径进行双向探测,过滤掉所述起始节点与每个中间节点之间不存在通路的节点,并保留所述起始节点和每个中间节点间之间最短的路径作为每个中间节点的最优路径加入所述调度序列集合。
3.如权利要求2所述的基于DAG节点最优路径的多模型并行调度方法,其中,在将每个中间节点的最优路径加入所述调度序列集合之前,
判断每个中间节点的最优路径是否为所述调度序列集合中最优路径的子路径;如果是,此中间节点的最优路径不加入所述调度序列集合;如果否,将此中间节点的最优路径加入所述调度序列集合。
4.如权利要求3所述的基于DAG节点最优路径的多模型并行调度方法,其中,在判断每个中间节点的最优路径是否为所述调度序列集合中最优路径的子路径的过程中,
将每个中间节点的最优路径分别存入第二邻接矩阵,再将所述调度序列集合中的所有最优路径存入第三邻接矩阵,判断所述第二邻接矩阵是否为所述第三邻接矩阵的子矩阵;如果是,存入所述第二邻接矩阵中的中间节点的最优路径为所述调度序列集合中最优路径的子路径;如果否,存入所述第二邻接矩阵中的中间节点的最优路径不为所述调度序列集合中最优路径的子路径。
5.一种基于DAG节点最优路径的多模型并行调度装置,包括:
DAG图创建单元,用于根据各模型之间的关系创建基于各模型关系的DAG图,所述DAG图包括起始节点、终止节点和至少两个中间节点;
DAG图拆分单元,用于根据基于路径探测的最优路径分析算法将所述DAG图拆分为调度序列集合;其中,在所述调度序列集合中包括多个并行调度的序列;
序列存储单元,用于将调度序列集合中的所有并行调度的序列存储为第一邻接矩阵;
矩阵映射单元,用于将所述第一邻接矩阵映射成邻接表;
序列运行单元,用于根据所述邻接表并行运行所述调度序列集合中的各个序列;
其中,所述DAG图拆分单元包括:
最优路径查找模块,用于采用基于路径探测的最优路径分析算法按照从所述终止节点到所述起始节点的顺序查找每个中间节点的最优路径;
最优路径加入模块,用于将每个中间节点的最优路径加入所述调度序列集合;其中,每个中间节点的最优路径分别对应一个序列。
6.如权利要求5所述的基于DAG节点最优路径的多模型并行调度装置,其中,在根据基于路径探测的最优路径分析算法查找每个中间节点的最优路径的过程中,
所述最优路径查找模块对所述起始节点与每个中间节点间的路径进行双向探测,过滤掉所述起始节点与每个中间节点之间不存在通路的节点,并保留所述起始节点和每个中间节点间之间最短的路径作为每个中间节点的最优路径加入所述调度序列集合。
7.如权利要求6所述的基于DAG节点最优路径的多模型并行调度装置,其中,
所述装置进一步包括子路径判断单元,用于在将每个中间节点的最优路径加入所述调度序列集合之前,判断每个中间节点的最优路径是否为所述调度序列集合中最优路径的子路径;如果是,此中间节点的最优路径不加入所述调度序列集合;如果否,将此中间节点的最优路径加入所述调度序列集合。
8.如权利要求7所述的基于DAG节点最优路径的多模型并行调度装置,其中,在所述子路径判断单元包括:
第二邻接矩阵存入模块,用于将每个中间节点的最优路径分别存入第二邻接矩阵;
第三邻接矩阵存入模块,用于将所述调度序列集合中的所有最优路径存入第三邻接矩阵;
子矩阵判断模块,用于判断所述第二邻接矩阵是否为所述第三邻接矩阵的子矩阵;如果是,所述子路径判断单元判断存入所述第二邻接矩阵中的中间节点的最优路径为所述调度序列集合中最优路径的子路径;如果否,所述子路径判断单元判断存入所述第二邻接矩阵中的中间节点的最优路径不为所述调度序列集合中最优路径的子路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410415590.4A CN104239137B (zh) | 2014-08-21 | 2014-08-21 | 基于dag节点最优路径的多模型并行调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410415590.4A CN104239137B (zh) | 2014-08-21 | 2014-08-21 | 基于dag节点最优路径的多模型并行调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239137A CN104239137A (zh) | 2014-12-24 |
CN104239137B true CN104239137B (zh) | 2017-12-08 |
Family
ID=52227268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410415590.4A Active CN104239137B (zh) | 2014-08-21 | 2014-08-21 | 基于dag节点最优路径的多模型并行调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239137B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579958B (zh) * | 2014-12-25 | 2018-07-13 | 东软集团股份有限公司 | 基于gpsr协议的路由优化方法及装置 |
CN105404690B (zh) * | 2015-12-16 | 2019-06-21 | 华为技术服务有限公司 | 查询数据库的方法和装置 |
CN107229815A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据分析方法及装置 |
CN109814986B (zh) * | 2017-11-20 | 2021-01-05 | 上海寒武纪信息科技有限公司 | 任务并行处理方法、存储介质、计算机设备、装置和系统 |
WO2019095873A1 (zh) | 2017-11-20 | 2019-05-23 | 上海寒武纪信息科技有限公司 | 任务并行处理方法、装置、系统、存储介质及计算机设备 |
CN108170717B (zh) * | 2017-12-05 | 2020-12-04 | 东软集团股份有限公司 | 数据探索模式的转换方法、装置、存储介质和电子设备 |
CN108197152A (zh) * | 2017-12-07 | 2018-06-22 | 深圳市华力特电气有限公司 | 一种基于领域模型的数据解析系统和方法 |
US20220043688A1 (en) * | 2018-09-11 | 2022-02-10 | Huawei Technologies Co., Ltd. | Heterogeneous Scheduling for Sequential Compute Dag |
CN109547347B (zh) * | 2018-10-15 | 2020-12-25 | 浙江工业大学 | 一种多径通信网络化控制系统的路径调度与控制器协同设计方法 |
CN109963316B (zh) * | 2019-01-29 | 2021-07-30 | 北京航空航天大学 | 用于移动卫星网络的多径路由方法及设备 |
CN110377340B (zh) * | 2019-07-24 | 2021-06-01 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN111223001B (zh) * | 2019-12-18 | 2023-08-01 | 中国科学院软件研究所 | 一种基于多种流程模型的资源调度方法和系统 |
CN111968255A (zh) * | 2020-06-30 | 2020-11-20 | 北京小石科技有限公司 | 一种高速公路收费路径的拟合方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707559A (zh) * | 2009-10-30 | 2010-05-12 | 北京邮电大学 | 一种诊断和定量保障端到端服务质量的系统和方法 |
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
CN103778001A (zh) * | 2014-01-26 | 2014-05-07 | 北京仿真中心 | 一种基于dag图的仿真任务并行度分析方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908163B2 (en) * | 2005-07-15 | 2011-03-15 | The Board Of Trustees Of The University Of Alabama | Method and system for parallel scheduling of complex dags under uncertainty |
US8260768B2 (en) * | 2010-01-29 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | Transformation of directed acyclic graph query plans to linear query plans |
-
2014
- 2014-08-21 CN CN201410415590.4A patent/CN104239137B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707559A (zh) * | 2009-10-30 | 2010-05-12 | 北京邮电大学 | 一种诊断和定量保障端到端服务质量的系统和方法 |
CN102360246A (zh) * | 2011-10-14 | 2012-02-22 | 武汉理工大学 | 一种异构分布式系统中基于自适应阈值的节能调度方法 |
CN103235742A (zh) * | 2013-04-07 | 2013-08-07 | 山东大学 | 多核集群服务器上基于依赖度的并行任务分组调度方法 |
CN103778001A (zh) * | 2014-01-26 | 2014-05-07 | 北京仿真中心 | 一种基于dag图的仿真任务并行度分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104239137A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239137B (zh) | 基于dag节点最优路径的多模型并行调度方法及装置 | |
CN103886137B (zh) | 一种实现现场可编程门阵列快速布局布线的方法 | |
Rashid et al. | A review on assembly sequence planning and assembly line balancing optimisation using soft computing approaches | |
CN110319845A (zh) | 用于确定两点之间的可达路径的方法、装置和系统 | |
CN103576698A (zh) | 协调多个运载器工作分配的任务重新安排 | |
CN104266656A (zh) | 用于道路网的最短路径搜索方法及装置 | |
CN102523155B (zh) | 一种基于Boost库的K则最短路径搜索方法和系统 | |
CN113703472A (zh) | 多无人机与车辆协同巡检的路径优化方法和装置 | |
CN107121146A (zh) | 基于路链深度的最优路径规划方法 | |
CN115755954B (zh) | 巡检路径规划方法、系统、计算机设备及存储介质 | |
CN102982389A (zh) | 使用基于MapReduce的蚁群优化技术求解组合优化问题的方法 | |
CN106033442A (zh) | 一种基于共享内存体系结构的并行广度优先搜索方法 | |
CN110689174A (zh) | 基于公共交通的人员路线规划方法及装置 | |
Gunawan et al. | Well-tuned ILS for extended team orienteering problem with time windows | |
CN106658570A (zh) | 基于二次栅格划分的移动sink信息收集路径构建方法 | |
CN113282797A (zh) | 一种采用并行排序构建水库调度网络节点拓扑关系的方法 | |
CN117215789A (zh) | 数据处理任务的资源配置方法、装置和计算机设备 | |
CN115130791B (zh) | 面向车载智能机场的无人机与车辆协同调度方法及装置 | |
CN106354633A (zh) | 基于算法插件的任务调度表生成方法 | |
CN110097076A (zh) | 一种基于gpu架构的矢量道路网络匹配并行计算方法及装置 | |
CN113485848B (zh) | 深度神经网络部署方法、装置、计算机设备和存储介质 | |
CN111652552B (zh) | 一种用于物流订单运输规划方法、系统及装置 | |
Steiner et al. | Solving the biobjective minimum spanning tree problem using a k-best algorithm | |
Ru-tao et al. | A Machine learning pipeline generation approach for data analysis | |
Li et al. | An efficient multicore based parallel computing approach for TSP problems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |