一种在任务流方式下求解复杂问题的方法转让专利

申请号 : CN200810231111.8

文献号 : CN101408850B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庞建民黄建华罗军勇姚远

申请人 : 中国人民解放军信息工程大学

摘要 :

本发明公开了一种适用于可重构高效能计算机系统的在任务流方式下求解复杂问题的方法。以一个五元组{T,R,SC,EC,TS}的形式表述了在任务流的方式下求解问题的途径,其中T是任务的有穷集合,R是任务之间的关系集合,SC是任务的启动条件集合,EC是任务的终止条件集合,TS是任务的有穷序列集合。在不受资源等因素制约的前提下,力求以求解问题的最佳方案为牵引,合理划分软、硬任务的粒度,根据问题和任务的需求重构系统,达到高效费比、高利用率。本发明将任务作为一个基本单元来处理,给出了任务流的定义,任务的划分原则,任务流的各种形式。该模型可用于不同粒度并行性的刻画,为准确清晰地划分任务和描述面向任务流的可重构高效能计算奠定基础。

权利要求 :

1.一种在任务流方式下求解复杂问题的方法,以一个五元组{T,R,SC,EC,TS}的形式表述在任务流方式下求解复杂问题的计算模型,在系统可重构的前提下解决软硬任务的划分、任务颗粒度的确定原则、任务调度与优化、任务的激活与运转、任务的并行与协同执行、任务流的分离和重组问题;

所述五元组中,

1)T是任务及其属性的有穷集合,

将对复杂问题的求解过程描述为应用程序,通过程序代码把复杂问题的求解过程表达为一组消耗并产生任务流的处理过程,在考虑到系统可重构的前提下,给出软、硬任务划分原则和任务颗粒度的确定原则,在软、硬任务划分原则和任务颗粒度的确定原则指导下,将待解问题按照其最佳解决方法分解为多个软、硬任务,并给出任务的具体编号和相关属性;

2)R是任务之间的关系集合,

依照问题求解思路,将与之相适应的任务之间的串行、自循环、并行、独占式选择、鉴别式选择、抄送、发散、同步聚合、简单聚合、多重聚合运转方式加以描述,形成任务之间的关系集合R,为任务之间的运转方式提供支持;

3)SC是任务的启动条件集合,

4)EC是任务的终止条件集合,

根据实际问题的要求及其对系统各种资源的需求相关因素,构造任务的启动和停止条件,形成任务的启动条件集合SC和终止条件集合EC;对系统的重构、任务的启动和停止、任务的调度与优化提供支持;

5)TS是任务的有穷序列的集合,

在软、硬任务划分原则和任务颗粒度的确定原则指导下,针对实际问题将问题求解方案与过程按照任务流的方式进行组织,从起始任务到终止任务的相关路径构成一个有向图,形成任务的有穷序列集合TS;

任务的有穷序列集合TS,根据任务流的特征、依赖关系特征、协同关系特征,给出具体问题的求解方案与过程,并根据任务的特性进行映射,根据计算任务的并行性和协同性,对它所涉及的存储和通信进行封装;

所述在任务流方式下求解复杂问题的方法,根据任务的能效比分析和资源利用率的不同以及任务本身的算法特点,包括计算量、访存要求、被调用次数,将那些在处理器单元上运行能效比高的任务即“软任务”分配到处理器单元上运行,而将那些适合可重构逻辑单元中运行且能效比高的任务即“硬任务”,分配到可重构逻辑单元上运行;按照任务本身的算法特点,即执行任务的能效比和资源的利用率,将任务划分成若干个子任务的集合,父任务和子任务具有大小不同的颗粒度大小;父任务的划分及相关子任务的划分与合并原则根据任务本身的算法特点来确定。

2.根据权利要求1所述的在任务流方式下求解复杂问题的方法,其特征在于:所述的任务及其属性的有穷集合T中的元素是以二元序偶的形式给出的,第一元给出对任务的编号,第二元给出相关属性,表示为{,…,},其中t表示任务,ai表示相对应的任务的属性,其中i为从1到n的自然数,任务本身的特点和属性包括起点任务、终点任务、普通任务,在任务划分时,主要以任务自身固有的特点为依据,先不考虑资源的限制情况。

3.根据权利要求1或2所述的在任务流方式下求解复杂问题的方法,其特征在于:所述的任务的启动条件集合SC中的元素既有任务编号也有该任务的启动条件,任务的启动条件包含对各种资源的要求、前驱任务完成情况的要求,任务必须先满足启动条件才能被启动执行;任务的启动条件具体表示为一个整数值,通过素数分解来具体确定各个资源的需求情况,即给出资源与部分小素数的一一对应关系,通过数值在素因子分解中相应素数的幂次来表示对其资源的具体需求量。

4.根据权利要求3所述的在任务流方式下求解复杂问题的方法,其特征在于:启动条件包括人工激活、定时或限时激活、其它任务激活多种方式,为系统的重构提供依据,并指导任务的调度。

5.根据权利要求1或2所述的在任务流方式下求解复杂问题的方法,其特征在于:所述的任务的终止条件集合EC中的元素既有任务编号也有该任务的终止条件,任务流中每个任务的停止时机由其终止条件所决定,终止条件包括正常完成、暂停和异常终止三种情况;当终止条件满足时,任务将根据上述三种情况实施正常停止、暂停或报告异常。

说明书 :

一种在任务流方式下求解复杂问题的方法

一、技术领域:

[0001] 本发明涉及一种计算模型,特别是涉及一种适合于可重构高性能计算机系统使用的在任务流方式下求解复杂问题的方法。二、背景技术:
[0002] 随着高性能计算技术的发展,新型的计算模型已成为未来高性能计算机设计所必须首先考虑的问题。预计,未来可重构高效能超级计算系统体系结构将展现出更为丰富的多态性,它可在一个计算系统结构内集成多种不同结构的处理器核与可重构部件。对于不同的任务,可用不同类型的处理器核进行并行处理,同时由于可重构部件建立在可编程逻辑器件基础之上,可以通过硬件编程实时地适应计算任务要求的变化,因而体现出高效性和灵活性的统一。为可重构高效能超级计算系统提供新型高效的计算模型,充分利用可重构高效能超级计算系统结构中各种资源加速程序运行,最大程度发挥其结构优势,是需要迫切解决的问题。现有的涉及高性能计算方面的实用计算模型主要包括;消息传递的MPI、共享内存的OpenMP、以及MPI+OpenMP混合模型等,涉及办公自动化和管理方面的有工作流模型等,这些模型虽然在相关领域取得了重要作用,但当可重构和高效能并行作为重要考虑因素时,上述模型在编程结构、执行效率、扩展能力等方面对未来高性能计算机设计失去了指导意义。而现有的任务分配和调度模型及算法,由于首先考虑了系统的固有结构和资源等因素,并没有把系统看成是可重构的,因此可借鉴的程度也受到了较大影响。三、发明内容:
[0003] 本发明所要解决的技术问题:
[0004] 为解决或改善现有的高性能计算系统在支持可重构、高效能方面的不足,提供一种在任务流方式下求解复杂问题的方法,旨在解决系统可重构前提下软硬任务的划分、任务颗粒度的确定原则、任务调度与优化、任务的激活与运转、任务的并行与协同执行、任务流的分离和重组等方面的一系列重要问题。
[0005] 本发明所采用的技术方案:
[0006] 1、一种在任务流方式下求解复杂问题的方法,以一个五元组{T,R,SC,EC,TS}的形式表述了在任务流的方式下求解复杂问题的途径,在系统可重构的前提下实现软硬任务的划分、任务颗粒度的确定原则、任务调度与优化、任务的激活与运转、任务的并行与协同执行、任务流的分离和重组等问题;
[0007] 所述五元组中,
[0008] 1)T是任务及其属性的有穷集合,
[0009] 将对复杂问题的求解过程描述为应用程序,通过程序代码把复杂问题的求解过程表达为一组消耗并产生任务流的处理过程,在考虑到系统可重构的前提下,给出软、硬任务划分原则和任务颗粒度的确定原则,在软、硬任务划分原则和任务颗粒度的确定原则指导下,将待解问题按照其最佳解决方法分解为多个软、硬任务,并给出任务的具体编号和相关属性;
[0010] 2)R是任务之间的关系集合,
[0011] 依照问题求解思路,将与之相适应的任务之间的串行、自循环、并行、独占式选择、鉴别式选择、抄送、发散、同步聚合、简单聚合、多重聚合运转方式加以描述,形成任务之间的关系集合R,为任务之间的运转方式提供支持;
[0012] 3)SC是任务的启动条件集合,
[0013] 4)EC是任务的终止条件集合,
[0014] 根据实际问题的要求及其对系统各种资源的需求相关因素,构造任务的启动和停止条件,形成任务的启动条件集合SC和终止条件集合EC;对系统的重构、任务的启动和停止、任务的调度与优化提供支持;
[0015] 5)TS是任务的有穷序列的集合,
[0016] 在软、硬任务划分原则和任务颗粒度的确定原则指导下,针对实际问题将问题求解方案与过程按照任务流的方式进行组织,从起始任务到终止任务的相关路径构成一个有向图,形成任务的有穷序列集合TS;任务的有穷序列集合TS,反映了流的特征、依赖关系特征、协同关系特征,反映了具体问题的求解方案与过程,根据任务的特性进行映射,根据计算任务的并行性和协同性,对它所涉及的存储和通信进行封装。
[0017] 上述五元组,也可以用扩充的“与或图”来表示。
[0018] 所述的在任务流方式下求解复杂问题的方法,根据任务的能效比分析和资源利用率的不同以及任务本身的算法特点,包括计算量、访存要求、被调用次数,将那些在处理器单元上运行能效比高的任务即“软任务”分配到处理器单元上运行,而将那些适合可重构逻辑单元中运行且能效比高的任务即“硬任务”,分配到可重构逻辑单元上运行;按照任务本身的算法特点,即执行任务的能效比和资源的利用率,将任务划分成若干个子任务的集合,父任务和子任务具有大小不同的颗粒度大小;父任务的划分及相关子任务的划分与合并原则根据任务本身的算法特点来确定。
[0019] 所述的在任务流方式下求解复杂问题的方法,任务及其属性的有穷集合T中的元素是以二元序偶的形式给出的,第一元给出对任务的编号,第二元给出相关属性,表示为{,…,},其中t表示任务,ai表示相对应的任务的属性,其中i为从1到n的自然数,任务本身的特点和属性包括起点任务、终点任务、普通任务,在任务划分时,主要以任务自身固有的特点为依据,先不考虑资源的限制情况。
[0020] 事实上,基于任务流的可重构计算模型是一种基于函数的计算模型,在函数内部是基于数据流的,是固定的,不可调度的;函数之间是控制流的,是可以调度的。而函数的确定是在任务划分后实施的,因此任务的划分极为重要。
[0021] 所述的在任务流方式下求解复杂问题的方法,任务的启动条件集合SC中的元素既有任务编号也有该任务的启动条件,任务的启动条件包含对各种资源的要求、前驱任务完成情况的要求,任务必须先满足启动条件才能被启动执行;任务的启动条件具体表示为一个整数值,通过素数分解来具体确定各个资源的需求情况,即给出资源与部分小素数(从2开始依次选取小素数)的一一对应关系,通过数值在素因子分解中相应素数的幂次来表示对其资源的具体需求量。
[0022] 所述的在任务流方式下求解复杂问题的方法,启动条件包括人工激活、定时或限时激活、其它任务激活多种方式,为系统的重构提供依据,并指导任务的调度。
[0023] 所述的在任务流方式下求解复杂问题的方法,任务的终止条件集合EC中的元素既有任务编号也有该任务的终止条件,任务流中每个任务的停止时机由其终止条件所决定,终止条件包括正常完成、暂停和异常终止三种情况;当终止条件满足时,任务将根据上述三种情况实施正常停止、暂停或报告异常。它是系统重构和任务调度的重要依据,是影响系统性能的重要因素之一。
[0024] 任务的有穷序列集合TS,根据任务的特性进行映射,根据计算任务的并行性和协同性,对它所涉及的存储和通信进行封装,反映了流的特征、依赖关系特征、协同关系特征,反映了具体问题的求解方案与过程。这些都是系统重构和任务调度的重要依据,对系统的动态配置组成和效能有重要影响。
[0025] 本发明的积极有益效果:
[0026] 1、由于本发明采用了元组和集合的表示方式,使得模型的表述更加精确,对问题求解方案和过程的刻画更加深入,可用于不同粒度并行性的刻画,为准确清晰地划分任务和描述面向任务流的可重构高效能计算奠定基础,为有效阐述、设计和实现基于任务流的张量扩展柔性可重构高效能系统奠定了基础。
[0027] 2、本发明以一个五元组的形式表述了在任务流的方式下求解问题的途径,在不受资源等因素制约的前提下,力求以求解问题的最佳方案为牵引,合理划分软/硬任务的粒度,根据问题和任务的需求重构系统,达到高效费比、高利用率。
[0028] 3、本发明将任务的运转方式给出了精确刻画,并对任务的启动和停止条件、资源的需求情况进行了详细描述,这就为任务的调度、配置提供了有力的支持。该模型将任务作为一个基本单元来处理,给出了任务流的定义,任务的划分原则,任务流的各种形式。由于给出了任务流的精确刻画,因此对基于任务流的编程、编译、运行等各个方面都提供了帮助和支撑。
[0029] 4、本发明将任务区分为软任务和硬任务,根据硬任务的要求重构FPGA,可以得到高效能,软任务则较为灵活,软硬任务协调好从而达到高效能和较灵活的重构性。该模型以提高系统的整体效能为目标,在任务划分时,主要以任务自身固有的特点为依据,先不考虑资源的限制情况,这是与目前大多数现有的任务划分原则的不同点之一。四、附图说明:
[0030] 图1为本发明的示意图;
[0031] 图2-1为本发明中任务之间的串行运转方式示意图;
[0032] 图2-2为本发明中任务之间的自循环运转方式示意图;
[0033] 图2-3为本发明中任务之间的并行运转方式示意图;
[0034] 图2-4为本发明中任务之间的独占式选择运转方式示意图;
[0035] 图2-5为本发明中任务之间的鉴别式选择运转方式示意图;
[0036] 图2-6为本发明中任务之间的抄送运转方式示意图;
[0037] 图2-7为本发明中任务之间的发散运转方式示意图;
[0038] 图2-8为本发明中任务之间的同步聚合运转方式示意图;
[0039] 图2-9为本发明中任务之间的简单聚合运转方式示意图;
[0040] 图2-10为本发明中任务之间的多重聚合运转方式示意图;
[0041] 图2-11为本发明中任务之间的鉴别式聚合运转方式示意图。五、具体实施方式:
[0042] 实施例一:参见图1、图2-1~图2-11。
[0043] 如图1所示,本发明在任务流方式下求解复杂问题的方法,一个任务流由一组任务、任务之间的相互关系、任务的启动和终止条件组成。用一个五元组{T,R,SC,EC,TS}表示在任务流方式下求解复杂问题的计算模型,其中T是任务的有穷集合,R是任务之间的关系集合,SC是任务的启动条件集合,EC是任务的终止条件集合,TS是任务的有穷序列(反映了流的特征)的集合。
[0044] 首先,在软、硬任务的划分原则和任务颗粒度确定原则的指导下,将待解问题按照其最佳解决方法分解为多个软、硬任务,并给出任务的具体编号和相关属性。
[0045] 其次,根据问题及其求解特点,在上述任务编号及属性确定的基础上,给出任务之间的关系表述,形成任务之间关系的集合。任务之间关系为任务的串行、自循环、并行、独占式选择、鉴别式选择、抄送、发散、同步聚合、简单聚合、多重聚合、鉴别式聚合等运转方式提供支持。图2-1~图2-11分别表示了任务间的各种运转方式。图中ti表示相对应的任务,其中i为从1到n的自然数。任务之间的串行运转是指任务按照预定的顺序,有序地执行,表示为ti Seqtj,如图2-1所示;任务之间的自循环运转是指同一个任务被重复执行多次,是否继续重复执行该任务可由人为选择或通过相应规则控制,表示为ti Cir ti,如图2-2所示;任务之间的并行运转是指在执行完一个任务之后,因为某种原因,产生了两个并发执行的分支,这两个分支之间是对等的,也是并行执行的,表示为ti Par tj,如图2-3所示;任务的独占式选择是指当一个任务处理完后,原则上可以允许走多个分支流程(如:t1,...,tn),但只允许选择其中某一个分支(如:ti)独占式地执行,表示为(t1,...,tn)Mon ti。此时的选择往往是人为的,不是依靠某种预先设定的规则来选择的,如图2-4所示;任务的鉴别式选择是指当一个任务处理完后,原则上可以允许走多个分支流程(如:t1,...,tn),但只允许选择其中某一个分支(如:ti)执行,表示为(t1,...,tn)Dis ti。此时的选择是依靠某种预先设定的规则来进行的,满足规则条件的分支将被选定,如图2-5所示;任务的抄送运转是指在任务t1处理完之后,会继续执行主流程中的下一个预定任务t2,但同时还会激活另一任务t3的执行,不过任务t3以及其后的后续流程不会对主流程运转造成影响,表示为t1 Cop(t2,t3),如图2-6所示;任务的发散运转与并行运转相似,区别之处在于并行运转的多个分支流程之后需要重新聚合成一个主流程,而发散运转中拆分出的分支流程最终未必聚合,表示为t Sca(t1,...,tn),如图2-7所示;任务的聚合运转首先需要在前期有一个“发散”,这时根据聚合的情况不同,会有多种不同种类的聚合:任务的同步聚合运转是指聚合时有一个同步机制,同步好之后才激活后续流程,表示为(t1,...,tn)SynCon t,如图2-8所示;任务的简单聚合运转是指在聚合时采用类似“先进先出”的原则,哪一个分支先达到聚合点,则由其最先激活后续流程的运行,其它的分支则到此就会终止,表示为(t1,...,tn)SimCon t,如图2-9所示;任务的多重聚合运转与简单聚合的不同之处在于,任何一个分支在到达聚合点时,都会激活后续流程的运转,表示为(t1,...,tn)MulCon t,如图
2-10所示;任务的鉴别式聚合不同于多重聚合和简单聚合之处在于,分支到达聚合点时,由一个鉴别器按照某种规则决定是否以及何时激活后续流程,表示为(t1,...,tn)DisCon t,如图2-11所示。不难看出,多重聚合、简单聚合和同步聚合都是鉴别式聚合的特例。
[0046] 然后,对应每个任务,在考虑它与其它任务关系的基础上,给出其启动条件,并按照其对资源的需求,采用素因子合成的方法得到相关整数值,从而形成任务的启动条件集合。同时,对应每个任务,给出其终止条件,从而形成任务的终止条件集合。最后,按照问题求解方案,将任务组织成任务流的方式,形成任务流集合。
[0047] 基于上述任务及任务流,结合可重构资源的最大值约束条件,对系统进行重构,并建立(TS,RS)与(PT,PR)之间的映射,这里TS表示一组任务(或任务流),RS表示任务之间关系的集合;PT表示一组任务处理单元,PR表示任务处理单元间的互联结构。这反映了如下流程:任务模型→系统重构后的结构模型→任务分配和调度算法→任务映射图。
[0048] 实施例二:参见图1。本实施例在任务流方式下求解复杂问题的方法,仍用一个五元组{T,R,SC,EC,TS}表示在任务流方式下求解复杂问题的计算模型,首先,将对复杂问题的求解过程描述为应用程序,通过程序代码把复杂问题的求解过程表达为一组消耗并产生任务流的处理过程,在考虑到系统可重构的前提下,给出软、硬任务划分原则和任务颗粒度的确定原则,在软、硬任务划分原则和任务颗粒度的确定原则指导下,针对实际问题给出任务及其属性的有穷集合T;其中“软硬件任务”分别指的是运行于处理器单元(CPU)上的任务或者运行于可重构逻辑单元(RLU)上的任务。其划分原则是根据任务能效比和资源利用率以及任务本身的算法特点(包括计算量、访存要求、被调用次数等),某些任务在处理器单元上运行能效比高,而某些任务适合可重构逻辑单元中运行能效比高,按照对起能效比的分析,将其分配到不同的单元上运行。
[0049] 所述任务颗粒度,即某个可以被完整执行的任务的程序片段。按照任务本身的算法特点,任务可以被划分成若干个子任务的集合,父任务和子任务具有大小不同的颗粒度大小。父任务的划分及相关子任务的划分与合并原则,也是根据任务本身的算法特点(即其执行任务的效费比和资源的利用率)来确定的。
[0050] 任务及其属性的有穷集合T中的元素是以二元序偶的形式给出的,第一元给出对任务的编号,第二元给出相关属性,表示为{,…,},其中t表示任务,ai表示相对应的任务的属性,其中i为从1到n的自然数,任务本身的特点和属性包括起点任务、终点任务、普通任务,在任务划分时,主要以任务自身固有的特点为依据,先不考虑资源的限制情况。
[0051] 其次,依照问题求解思路,将与之相适应的任务之间的串行、自循环、并行、独占式选择、鉴别式选择、抄送、发散、同步聚合、简单聚合、多重聚合运转方式加以描述,形成任务之间的关系集合R,为任务之间的运转方式提供支持;
[0052] 第三,根据实际问题的要求及其对系统各种资源的需求相关因素,构造任务的启动和停止条件,形成任务的启动条件集合SC和终止条件集合EC;对系统的重构、任务的启动和停止、任务的调度与优化提供支持;
[0053] 任务的启动条件集合SC中的元素既有任务编号也有该任务的启动条件,任务的启动条件包含对各种资源的要求、前驱任务完成情况的要求,任务必须先满足启动条件才能被启动执行;任务的启动条件具体表示为一个整数值,通过素数分解来具体确定各个资源的需求情况,即给出资源与部分小素数的一一对应关系,通过数值在素因子分解中相应素数的幂次来表示对其资源的具体需求量。启动条件包括人工激活、定时或限时激活、其它任务激活多种方式,为系统的重构提供依据,并指导任务的调度。
[0054] 任务的终止条件集合EC中的元素既有任务编号也有该任务的终止条件,任务流中每个任务的停止时机由其终止条件所决定,终止条件包括正常完成、暂停和异常终止三种情况;当终止条件满足时,任务将根据上述三种情况实施正常停止、暂停或报告异常。
[0055] 第四,在软、硬任务划分原则和任务颗粒度的确定原则指导下,针对实际问题将问题求解方案与过程按照任务流的方式进行组织,从起始任务到终止任务的相关路径构成一个有向图,形成任务的有穷序列集合TS。任务的有穷序列集合TS,反映了流的特征、依赖关系特征、协同关系特征,反映了具体问题的求解方案与过程,根据任务的特性进行映射,根据计算任务的并行性和协同性,对它所涉及的存储和通信进行封装。
[0056] 本领域的技术人员在不脱离本发明原理的基础上,可以作出各种无实质差别的修改或者变换。应当指出,凡是依据本发明申请的权利要求书及说明书内容所作的简单、等效变化与修饰,都属于本发明的权利要求保护范围。