CN111158890A - 控制任务集中的任务并行的系统及其方法 - Google Patents
控制任务集中的任务并行的系统及其方法 Download PDFInfo
- Publication number
- CN111158890A CN111158890A CN202010065550.7A CN202010065550A CN111158890A CN 111158890 A CN111158890 A CN 111158890A CN 202010065550 A CN202010065550 A CN 202010065550A CN 111158890 A CN111158890 A CN 111158890A
- Authority
- CN
- China
- Prior art keywords
- critical section
- task
- critical
- section
- sections
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000012544 monitoring process Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004458 analytical method Methods 0.000 claims abstract description 21
- 230000007717 exclusion Effects 0.000 claims abstract description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012549 training Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种控制任务集中的任务并行的系统,包括:临界区分析组件,用于分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系;以及临界区监控组件,其位于每个任务实例数据处理路径中,用于对于多个被执行的任务实例,基于临界区标记关系图表,允许执行存在互斥关系中一对临界区中的先到达的一个临界区而使得另一个临界区处于等待执行状态。
Description
技术领域
本公开涉及一种数据处理技术,更具体地说,本公开涉及一种用于控制任务集中的任务并行的系统及其方法。
背景技术
大数据的处理意向复杂的数据处理技术。为了提高数据处理的效率,通常将一个数据处理工作分成多项任务,并在集成计算架构中分别由CPU、与CPU相连的GPU来承担计算任务,这些计算任务会根据彼此之间的时序关系被进行并行计算。但是有时候,很多任务之间存在彼此的依赖关系,例如第一任务的计算所需的某些数据也会被第二任务的计算所使用;或者第一任务的计算所产生的某些数据会被第二任务的计算所使用。因此,在两者之间存在数据使用冲突过程中,必然导致第一任务执行时,第二任务不能执行,导致一种停机现象。反之亦然。因此,任务并行只能在不相关的任务执行,这将导致的不能并行的任务之间的切换以任务整体为单位进行,这在大数据处理或深度学习这种数据处理过程中,以任务整体为单位的这种切换,这种任务切换的成本就是所有计算设备的同步开销。当计算设备的数目达到1024甚至更高的时候,任务切换点会成为整个计算系统的巨大瓶颈,因为所有数据同步的时候,几乎所有的计算操作将无法进行,这个过程需要花费巨大的时间。因此,以任务为单位的这种同步以及任务的切换会不可避免的带来开销,而且这个开销随着集成的计算设备(例如CPU和GPU)的增多而开销会是指数级增长的,这将导致计算资源得不到充分地利用,也降低了数据处理的效率。
因此,人们期望获得一种控制任务集中的任务并行的系统,其能够消除上述现有技术中的一种或多种技术问题,提高任务并行程度。
发明内容
本发明的目的在于解决至少上述问题之一,具体而言,本公开提供一种控制任务集中的任务并行的系统,包括:临界区分析组件,用于分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系;以及临界区监控组件,其位于每个任务实例数据处理路径中,用于对于多个被执行的任务实例,基于临界区标记关系图表,允许执行存在互斥关系中一对临界区中的先到达的一个临界区而使得另一个临界区处于等待执行状态。
根据本公开的控制任务集中的任务并行的系统,其中所述临界区监控组件将第一任务实例中的可立即或正在执行的第一临界区的临界区标记排列第一临界区监控队列中以及将第二任务实例的不能与第一临界区同时执行的第二临界区的临界区标记排列在第二临界区监控队列中,以及监控第一临界区的执行操作是否完成,以便在第一临界区的执行操作完成后,将第一临界区的临界区标记移出第一临界区监控队列,并将第二临界区的临界区标记从第二临界区监控队列移动到第一临界区监控队列中。
根据本公开的控制任务集中的任务并行的系统,其中所述临界区标记包括临界区ID及源节点和汇节点。
根据本公开的控制任务集中的任务并行的系统,其中所述临界区监控组件通过从第一临界区的所述汇节点接收到消息来监控第一临界区被执行操作完成状态,并在从所述汇节点接收到消息后向第二任务实例的临界区的源节点发出消息。
根据本公开的控制任务集中的任务并行的系统,其中所述临界区为输入临界区、输出临界区或主体临界区。
根据本公开的另一个方面,提供了一种控制任务集中的任务并行的方法,包括:任务分析步骤,通过临界区分析组件分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系;以及临界区监控步骤,通过临界区监控组件,针对每个任务实例数据处理路径,对于多个被执行的任务实例,基于临界区标记关系图表,允许执行存在互斥关系中一对临界区中的先到达的一个临界区而使得另一个临界区处于等待执行状态。
根据本公开的控制任务集中的任务并行的方法,其中所述临界区监控步骤将第一任务实例中的可立即或正在执行的第一临界区的临界区标记排列第一临界区监控队列中以及将第二任务实例的不能与第一临界区同时执行的第二临界区的临界区标记排列在第二临界区监控队列中,以及监控第一临界区的执行操作是否完成,以便在第一临界区的执行操作完成后,将第一临界区的临界区标记移出第一临界区监控队列,并将第二临界区的临界区标记从第二临界区监控队列移动到第一临界区监控队列中。
根据本公开的控制任务集中的任务并行的方法,其中所述临界区标记包括临界区ID及源节点和汇节点。
根据本公开的控制任务集中的任务并行的方法,其中所述临界区监控步骤通过从第一临界区的所述汇节点接收到消息来监控第一任务实例的临界区被执行操作完成状态,并在从所述汇节点接收到消息后向第二任务实例的临界区的源节点发出消息。
根据本公开的控制任务集中的任务并行的方法,其中所述临界区为输入临界区、输出临界区或主体临界区。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1所示的是根据本公开的控制任务集中的任务并行的方法的第一实施例的示意图。
图2为所示的是根据本公开的控制任务集中的任务并行的方法的第二实施的例示意图。
图3为所示的是根据本公开的控制任务集中的任务并行的系统的示意图。
具体实施方式
下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能设备之一可以被称为第一任务实例也可以被称为第二任务实例,类似地,两个可能设备的另一个可以被称为第二任务实例也可以被称为第一任务实例。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
在多任务数据处理中,通常任务实例之间极有可能存在彼此共用的数据,这些数据会存储在计算系统的内存中,因此,两个任务之间会存在共用内存的情形,也就是在任务的某一执行阶段会存在共用内存中某些数据的情形。例如,在带规模的数据训练过程中,不同任务在执行过程中会使用同一训练模型的情形,或者在深度学习或大数据处理过程中,也会存在验证任务使用训练任务的生产数据的情形。在这种情形下,现有技术的数据处理系统会整体地切换任务,即,暂停其中一个任务,以保证被切换任务的执行,直到被切换任务被执行完成为止,因此,现有技术中,彼此存在数据使用互斥情形的任务之间不能进行并行执行,这在深度学习以及大数据计算存在数量繁多的互斥任务的情形下,任务之间并行将难以实现。
图1所示的是根据本公开的控制任务集中的任务并行的方法的第一实施例的示意图。如图1所示,显示了三个任务J0、J1以及J2,三者构成了一个任务集。尽管为了描述方便,图1中仅仅显示了三个任务,但是一个任务集中可以包括任意数量任务。如图1所示,第一任务J0和第二任务J1之间存在彼此共享内存的区段M01,即第一任务J0的区段和第二任务J1的区段,因此,区段是第一任务J0和第二任务J1之间属于第一任务J0的第一临界区C0,而区段是第一任务J0和第二任务J1之间属于第二任务J1的第二临界区C1,这也就是说,临界区C0与临界区C1在执行过程中存在冲突的情形,因此,两者不能并行,为此,在实现第一任务J0和第二任务J1之间尽可能并行的基础上,要考虑到临界区C0与临界区C1之间的串行,以便保证整个第一任务J0和第二任务J1执行的正确性。为此,需要控制临界区C0与临界区C1之间进行切换以保证第一任务J0和第二任务J1执行之间除了临界区之外的部分能够实现并行,从而实现了一个任务集中的多任务之间最大可能的并行。在任务集的任务实例循环执行过程中,第一临界区会被称为第二临界区,而第二临界区会称为第一临界区。
同样,如图1所示,第一任务J0和第三任务J2之间存在彼此共享内存的区段M02,即第一任务J0的区段和第三任务J2的区段,因此,区段是第一任务J0和第三任务J2之间属于第一任务J0的临界区C2,而区段是第一任务J0和第三任务J2之间属于第三任务J2的临界区C3,这也就是说,临界区C2与临界区C3在执行过程中存在冲突的情形,因此,两者不能并行,为此,在实现第一任务J0和第三任务J2之间尽可能并行的基础上,要考虑到临界区C2与临界区C3之间的串行,以便保证整个第一任务J0和第三任务J2执行的正确性。为此,需要控制临界区C2与临界区C3之间进行切换以保证第一任务J0和第三任务J2执行之间除了临界区之外的部分能够实现并行,从而实现了一个任务集中的多任务之间最大可能的并行。
尽管上面仅仅列举了第一任务J0和第二任务J1之间仅仅存在一对临界区,但是在有些实际情况下,两个任务之间可能会存在多对临界区。为了简化描述过程,再次仅仅列出一对互斥的临界区。为了方便描述,在此仅仅按照顺序第临界区进行编号,作为临界区的ID。临界区通常主要包括三大类临界区,例如输入(INPUT)临界区、输出(OUTPUT)临界区以及主体(BODY)临界区。首先,每个人物都会有输入部分,输入部分都会有参数列表,参数列表部分通常会被其他任务所使用,因此参数列表部分通常是输入临界区。并且每个任务也都会输出相应的数据部分,因此输出数据通常会被其他任务所使用,因此输出数据部分在任务中通常为输出临界区。因此,作为一种实施方式,可以直接指定每个任务的输入部分以及输出部分为临界区。
举例而言,在任意两个任务之间,例如上述第一任务J0和第二任务J1之间,存在上述各种临界区时,第一任务J0和第二任务J1之间可以在非临界区部分并行执行,当第一任务J0之间先被执行到临界区C0时,与具有相对应临界区C1的第二任务J1可以此时在其其他非临界区与第一任务J0并行持续执行,直到第二任务J1被执行到对应临界区C1的为止。当第二任务J1被执行到对应临界区C1时,如果第一任务J0的临界区C0时还为被执行完毕,则第二任务J1的临界区C1的执行将处于暂停状态直到第一任务J0的临界区C0被执行完毕为止。反之亦然。同样,对于第一任务J0和第三任务J2之间的并行情况也是如此,仅仅在第一任务J0的临界区C2和第三任务J2的临界区C3,之间进行错时进行,并不影响其他部分的并行。
图2所示的是根据本公开的控制任务集中的任务并行的方法的第二实施例的示意图。与图1所示不同的是,任务集中包含了五个任务J0、J1以及J2,其中包含了三个任务J0,这意味着在这个任务集中,第一任务J0将会迭代三次。举例而言,在一种深度学习和大数据计算过程中,通常会每执行多次训练任务之后执行一次验证任务。在流式数据处理系统中,对于相同的迭代任务,彼此之间不存在冲突情形,也就不存在临界区。在第三次迭代的第一任务J0才会与其他任务J1或J2存在临界区,例如第三次迭代的第一任务J0和第二任务J1之间存在彼此共享内存的区段M01,即第三次迭代的第一任务J0的区段和第二任务J1的区段,因此,区段是第三次迭代的第一任务J0和第二任务J1之间属于第三次迭代的第一任务J0的临界区C0,而区段是第三次迭代的第一任务J0和第二任务J1之间属于第二任务J1的临界区C1,这也就是说,临界区C0与临界区C1在执行过程中存在冲突的情形,因此,两者不能并行,为此,在实现第三次迭代的第一任务J0和第二任务J1之间尽可能并行的基础上,要考虑到临界区C0与临界区C1之间的串行,以便保证整个第三次迭代的第一任务J0和第二任务J1执行的正确性。为此,需要控制临界区C0与临界区C1之间进行切换以保证第三次迭代的第一任务J0和第二任务J1执行之间除了临界区之外的部分能够实现并行,从而实现了一个任务集中的多任务之间最大可能的并行。
同样,如图1所示,第三次迭代的第一任务J0和第三任务J2之间存在彼此共享内存的区段M02,即第三次迭代的第一任务J0的区段和第三任务J2的区段,因此,区段是第三次迭代的第一任务J0和第三任务J2之间属于第三次迭代的第一任务J0的临界区C2,而区段是第三次迭代的第一任务J0和第三任务J2之间属于第三任务J2的临界区C3,这也就是说,临界区C2与临界区C3在执行过程中存在冲突的情形,因此,两者不能并行,为此,在实现第三次迭代的第一任务J0和第三任务J2之间尽可能并行的基础上,要考虑到临界区C2与临界区C3之间的串行,以便保证整个第三次迭代的第一任务J0和第三任务J2执行的正确性。为此,需要控制临界区C2与临界区C3之间进行切换以保证第三次迭代的第一任务J0和第三任务J2执行之间除了临界区之外的部分能够实现并行,从而实现了一个任务集中的多任务之间最大可能的并行。
图3为所示的是根据本公开的控制任务集中的任务并行的系统100的示意图。如图3所示,任务集中的任务并行的控制系统100包括临界区分析组件110,临界区分析组件,用于分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系。通常每个任务包含多个任务节点,例如任务J0、J1、J2、J3…Jn,每个包含任务节点N0、N1、N2、N3…,在图3中通过虚线将这些任务节点串联起来,形成一条静态数据处理路径。尽管在图3中仅仅显示为一条单一的串联路径,但是其实由于任意任务之间存在彼此的关联关系,彼此的任务节点之间也会存在连接部分,例如前面和后面都提到的临界区部分。而且数据处理路径也不是单一简单线条状处理路径,而是有很多各种分支路径。每个任务节点含有自身的节点属性,这些属性显示了节点的在当前任务中的上下游关系以及其所消费的上游节点输出关系或生产关系。结合图1和2所示,临界区分析组件110对任务集中的所有任务进行比较分析,分析构成每个任务的任务节点的上下游消费逻辑关系以及任务节点的内存资源。如上所述,在彼此相关的两个任务之间,两者之间通过任务节点产生关联,例如第一任务的某些任务节点与第二任务的某些任务节点会通用某一内存中的数据或模型数据或者第一任务的某些任务节点会消费第二任务的某些任务节点所生成的某些数据或模型数据。为此,这些共享的内存资源或所生产的被第一任务的某些节点所需要的数据在被第一任务使用之前,第二任务的某些任务节点不能执行任务改变这些共享内存资源中的数据,以防止出现错误。基于任意两个任务之间的某些任务节点之间是否存在共享内存的情形,可以将各个任务的这些存在共享内存情形的任务节点区段确定为这两个任务之间的临界区,并对这些临界区进行编号给出临界区ID。这些临界区的编号尽管在本申请中采用C0、C1、C2……Cn来表达,但是在实际引用中,可以采用其他方式来标记,例如采用任务的ID以及临界区的源节点ID和汇节点ID结合起来标记。每个临界区都包括其起始任务节点和结束任务节点,分别表示临界区的源节点和汇节点。因此,每个临界区编号包含了任务ID、源节点ID以及汇节点ID的信息。
临界区分析组件110针对任意两个任务的分析结果,形成一张记载任意两个任务之间的临界区标记表。如图3所示,在任意两个任务之间存在彼此互斥的临界区时,两个任务之间的互斥临界区采用逻辑数字“1”来标记,否则采用逻辑值“0”标记。因此,临界区标记表实际上记载的是任意两个任务之间存在彼此冲突的临界区的具体情形,或者说,彼此之间不能并行的临界区的具体情形。尽管此处图示的临界区标记表显示任意两个任务之间可能存在两组标记临界区的标记,但是在有些情况下,一对任务之间可能存在多对临界区,因此可以在一张标记表中为一对任务标记三对或三对以上的临界区。可选择地,当任意两个任务之间的两对临界区相距比较近时,可以将两对临界区合并为一对临界区。此处“相距比较近”表示前一临界区的汇节点与后一临界区的源节点之间的不超过十个任务节点,或者前一临界区的汇节点与后一临界区的源节点之间所有任务节点之间总执行时长不超过预定的时间长度,例如一个任务执行总时间长度的百分之一到百分之三之间。
随后,在数据处理系统中部署有临界区监控组件120。在数据处理系统接收到具体的任务实例并执行具体的任务实例时,随着任务实例的进行,在进入任务实例的临界区的源节点之前都会经过临界区监控组件120,也就是说,临界区监控组件120位于每个任务实例数据处理路径中。如图3所示,所有具有临界区的任务J0、J1、J2、J3…Jn,的数据处理路径都经过该临界区监控组件120。该临界区监控组件120与任务集中的所有临界区的源节点相连,因此能够基于临界区ID获知每个任务实例是否开始进行临界区操作,由此将正在执行临界区操作的临界区标记排列在第一临界区监控队列Q0中,同时,基于临界区分析组件110分析获得的临界区标记关系图表,将与正在执行操作的临界区相冲突的另一个任务实例的临界区标记排列在第二临界区监控队列Q1中。
举例而言,当临界区监控组件120监控到第一任务实例J0进入临界区C0的源节点时,就将第二任务实例J2中与临界区冲突的临界区C1排列到第二临界区监控队列Q1中,使其处于等待执行状态。此处的等待执行状态并不表示第二任务实例J2一定已经执行到临界区C1的源节点,只是表示当第二任务实例J2在执行到临界区C1的源节点的时候,如果临界区监控组件120还没有收到第一任务实例J0的临界区C0的汇节点反馈的消息时,临界区C1的执行将处于等待状态。反之亦然。通过这种方式,临界区监控组件120在一对彼此冲突的临界区中的临界区处于操作执行状态时,通知与其冲突的另一个临界区不能执行操作。
如图3所示,任务集中的所有临界区的汇节点都与临界区监控组件120。当任何任务实例的任意临界区的汇节点执行完毕之后都将向临界区监控组件120返回执行完毕的消息。举例而言,当临界区监控组件120接收到第一任务实例J0的临界区C0的汇节点反馈的消息时,临界区监控组件120会将临界区C0的标识从第一临界区监控队列Q0中移出,并将第二临界区监控队列Q1中的临界区C1标识移动到第一临界区监控队列Q0中。通过这种方式,通知第二任务实例J2中的临界区C1中的源节点,在其执行时序到来时可以立即开始对临界区C1操作。
临界区监控组件120通过上述控制方式,使得彼此冲突的临界区之间串行操作,而使得任意两个任务之间的非临界区部分(也称之为“可重叠部分”)之间可以进行并行操作。这样,任意两个任务之间,仅仅在临界区部分进行同步,执行串行,而任务的其他非临界区部分或可重叠部分各自在自己的数据处理路径上异步执行。这样,在多个计算设备之间需要同步(通常存在数量巨大的任务之间的数据同步或存在根据本发明的数据量的临界区)的情况下,通过临界区分析组件110预先分析任意任务之间的存在并行冲突的状态,也就是分析获得两者之间的临界区,使得任意两个任务在各自的临界区执行时保持正确,并通过临界区监控组件120控制彼此冲突的临界区的执行顺序或者控制临界区的执行的切换,从而能够准地以临界区为单位去切换任务的执行。由于在一个任务中,临界区仅仅占据任务极小的一部分,因此通过对临界区执行的控制能够极大地降低数据同步的力度或者切换的力度,从而能够极大地减低目前现有技术中任务切换带来的巨大开销。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种控制任务集中的任务并行的系统,包括:
临界区分析组件,用于分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系;以及
临界区监控组件,其位于每个任务实例数据处理路径中,用于对于多个被执行的任务实例,基于临界区标记关系图表,允许执行存在互斥关系中一对临界区中的先到达的一个临界区而使得另一个临界区处于等待执行状态。
2.根据权利要求1所述的控制任务集中的任务并行的系统,其中所述临界区监控组件将第一任务实例中的可立即或正在执行的第一临界区的临界区标记排列第一临界区监控队列中以及将第二任务实例的不能与第一临界区同时执行的第二临界区的临界区标记排列在第二临界区监控队列中,以及监控第一临界区的执行操作是否完成,以便在第一临界区的执行操作完成后,将第一临界区的临界区标记移出第一临界区监控队列,并将第二临界区的临界区标记从第二临界区监控队列移动到第一临界区监控队列中。
3.根据权利要求1或2所述的控制任务集中的任务并行的系统,其中所述临界区标记包括临界区ID及源节点和汇节点。
4.根据权利要求3所述的控制任务集中的任务并行的系统,其中所述临界区监控组件通过从第一临界区的所述汇节点接收到消息来监控第一临界区被执行操作完成状态,并在从所述汇节点接收到消息后向第二任务实例的临界区的源节点发出消息。
5.根据权利要求4所述的控制任务集中的任务并行的系统,其中所述临界区为输入临界区、输出临界区或主体临界区。
6. 一种控制任务集中的任务并行的方法,包括:
任务分析步骤,通过临界区分析组件分析一个任务集中的任意两个任务之间临界区,并为分析获得的所述临界区赋予预定临界区标记,形成所述任务集中的临界区标记关系图表,所述临界区是所述任意两个任务之间的内存共享部分,所述临界区标记关系图表记载任意两个临界区的互斥关系;以及
临界区监控步骤,通过临界区监控组件,针对每个任务实例数据处理路径,对于多个被执行的任务实例,基于临界区标记关系图表,允许执行存在互斥关系中一对临界区中的先到达的一个临界区而使得另一个临界区处于等待执行状态。
7.根据权利要求6所述的控制任务集中的任务并行的方法,其中所述临界区监控步骤将第一任务实例中的可立即或正在执行的第一临界区的临界区标记排列第一临界区监控队列中以及将第二任务实例的不能与第一临界区同时执行的第二临界区的临界区标记排列在第二临界区监控队列中,以及监控第一临界区的执行操作是否完成,以便在第一临界区的执行操作完成后,将第一临界区的临界区标记移出第一临界区监控队列,并将第二临界区的临界区标记从第二临界区监控队列移动到第一临界区监控队列中。
8.根据权利要求6或7所述的控制任务集中的任务并行的方法,其中所述临界区标记包括临界区ID及源节点和汇节点。
9.根据权利要求8所述的控制任务集中的任务并行的方法,其中所述临界区监控步骤通过从第一临界区的所述汇节点接收到消息来监控第一任务实例的临界区被执行操作完成状态,并在从所述汇节点接收到消息后向第二任务实例的临界区的源节点发出消息。
10.根据权利要求9所述的控制任务集中的任务并行的方法,其中所述临界区为输入临界区、输出临界区或主体临界区。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065550.7A CN111158890A (zh) | 2020-01-20 | 2020-01-20 | 控制任务集中的任务并行的系统及其方法 |
PCT/CN2021/072788 WO2021147878A1 (zh) | 2020-01-20 | 2021-01-20 | 控制任务集中的任务并行的系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065550.7A CN111158890A (zh) | 2020-01-20 | 2020-01-20 | 控制任务集中的任务并行的系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111158890A true CN111158890A (zh) | 2020-05-15 |
Family
ID=70564736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010065550.7A Pending CN111158890A (zh) | 2020-01-20 | 2020-01-20 | 控制任务集中的任务并行的系统及其方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111158890A (zh) |
WO (1) | WO2021147878A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147878A1 (zh) * | 2020-01-20 | 2021-07-29 | 北京一流科技有限公司 | 控制任务集中的任务并行的系统及其方法 |
WO2022002021A1 (zh) * | 2020-06-29 | 2022-01-06 | 北京一流科技有限公司 | 静态网络中的内存空间预配系统及其方法 |
CN114035968A (zh) * | 2022-01-10 | 2022-02-11 | 北京一流科技有限公司 | 用于多流并行的冲突处理系统及其方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118838A1 (en) * | 2005-11-24 | 2007-05-24 | Masaaki Tsujino | Task execution controller, task execution control method, and program |
CN102929711A (zh) * | 2012-09-24 | 2013-02-13 | 浙江大学 | 一种软件实时事务内存的实现方法 |
CN103699363A (zh) * | 2013-12-13 | 2014-04-02 | 华中科技大学 | 一种用于在多核平台下优化关键临界区的方法 |
CN103699437A (zh) * | 2013-12-20 | 2014-04-02 | 华为技术有限公司 | 一种资源调度方法及设备 |
CN109558241A (zh) * | 2018-11-13 | 2019-04-02 | 锐捷网络股份有限公司 | 一种获取自旋锁的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832068B2 (en) * | 2012-12-17 | 2017-11-28 | Microsoft Technology Licensing, Llc | Reachability-based coordination for cyclic dataflow |
CN111158890A (zh) * | 2020-01-20 | 2020-05-15 | 北京一流科技有限公司 | 控制任务集中的任务并行的系统及其方法 |
-
2020
- 2020-01-20 CN CN202010065550.7A patent/CN111158890A/zh active Pending
-
2021
- 2021-01-20 WO PCT/CN2021/072788 patent/WO2021147878A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070118838A1 (en) * | 2005-11-24 | 2007-05-24 | Masaaki Tsujino | Task execution controller, task execution control method, and program |
CN102929711A (zh) * | 2012-09-24 | 2013-02-13 | 浙江大学 | 一种软件实时事务内存的实现方法 |
CN103699363A (zh) * | 2013-12-13 | 2014-04-02 | 华中科技大学 | 一种用于在多核平台下优化关键临界区的方法 |
CN103699437A (zh) * | 2013-12-20 | 2014-04-02 | 华为技术有限公司 | 一种资源调度方法及设备 |
CN109558241A (zh) * | 2018-11-13 | 2019-04-02 | 锐捷网络股份有限公司 | 一种获取自旋锁的方法及装置 |
Non-Patent Citations (2)
Title |
---|
LUI SHA: "Priority Inheritance Protocols: An Approach to Real-Time Synchronization", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
ZBIGNIEW J.CZECH: "《Introduction to Parallel Computing》", 31 December 2016 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021147878A1 (zh) * | 2020-01-20 | 2021-07-29 | 北京一流科技有限公司 | 控制任务集中的任务并行的系统及其方法 |
WO2022002021A1 (zh) * | 2020-06-29 | 2022-01-06 | 北京一流科技有限公司 | 静态网络中的内存空间预配系统及其方法 |
CN114035968A (zh) * | 2022-01-10 | 2022-02-11 | 北京一流科技有限公司 | 用于多流并行的冲突处理系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021147878A1 (zh) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158890A (zh) | 控制任务集中的任务并行的系统及其方法 | |
JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
US20120324454A1 (en) | Control Flow Graph Driven Operating System | |
Bala et al. | Efficient instruction scheduling using finite state automata | |
CN105164639A (zh) | 控制由计算系统执行的任务 | |
CN102609296A (zh) | 虚拟机分支和并行执行 | |
US20140372983A1 (en) | Identifying the introduction of a software failure | |
JPH01194033A (ja) | 並列化コンパイル方法 | |
CN105144104B (zh) | 关键实时系统中执行任务的方法 | |
Lai et al. | Merak: An efficient distributed dnn training framework with automated 3d parallelism for giant foundation models | |
US9720793B2 (en) | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads | |
Xu et al. | Automatic cross-replica sharding of weight update in data-parallel training | |
CN110928696B (zh) | 用户级线程控制系统及其方法 | |
US20080244592A1 (en) | Multitask processing device and method | |
WO2023082575A1 (zh) | 一种面向神经网络模型计算的图执行流水并行方法和装置 | |
CN110362315A (zh) | 基于dag的软件系统调度方法及装置 | |
US20230342198A1 (en) | Method for reproducible parallel simulation at electronic system level implemented by means of a multi-core discrete-event simulation computer system | |
US20220164507A1 (en) | Electronic system-level reproducible parallel simulation method implemented by way of a discrete event simulation multicore computing system | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
WO2015165385A1 (en) | System and Method for Out of Order Multiple Query Execution within Stored Procedure | |
Chen et al. | Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus | |
Fu et al. | Run-time compilation for parallel sparse matrix computations | |
CN110289043B (zh) | 存储设备测试方法、装置、电子设备 | |
JP3675623B2 (ja) | プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体 | |
WO2013165460A1 (en) | Control flow graph driven operating system |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200515 |