CN110083441B - 一种分布式计算系统及分布式计算方法 - Google Patents
一种分布式计算系统及分布式计算方法 Download PDFInfo
- Publication number
- CN110083441B CN110083441B CN201810076940.7A CN201810076940A CN110083441B CN 110083441 B CN110083441 B CN 110083441B CN 201810076940 A CN201810076940 A CN 201810076940A CN 110083441 B CN110083441 B CN 110083441B
- Authority
- CN
- China
- Prior art keywords
- computing
- calculation
- stage
- partition
- computation
- 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
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
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及分布式技术领域,公开了一种分布式计算系统及分布式计算方法。分布式计算系统,包括:任务切分模块及资源调度模块;所述任务切分模块用于将接收到的计算任务切分成若干个计算阶段,并将每个所述计算阶段分成若干个计算分区;所述资源调度模块用于为当前待启动的计算阶段中的计算分区分配资源,以启动所述计算分区,并用于在当前已启动的计算分区中任意一个完成计算,且下一个计算阶段能与当前已启动的计算阶段同时运行时,为所述下一个计算阶段的至少一个计算分区分配资源,以启动所述至少一个计算分区。本发明实施方式相对于现有技术而言,提高了对空闲资源的利用率,减小了整个计算任务的执行时长,提升了执行效率。
Description
技术领域
本发明实施例涉及分布式技术领域,特别涉及一种分布式计算系统及分布式计算方法。
背景技术
分布式计算系统在当代社会得到了大量应用,在目前的分布式系统中,会将一个计算任务(Job)切换成若干个计算阶段(stage),各计算阶段之间按照依赖关系顺序执行。分布式系统中,单个计算阶段是分给多个计算分区(partition)来执行的,每一个计算分区执行分配给它的计算数据(data_split)。单个计算分区执行完自己的计算数据后,会等待其他计算分区完成各自的计算,这个过程一般称为同步,同步完成后,再开始执行下一个计算阶段,直到整个计算任务执行完成。
这种需要一个计算阶段的所有计算分区都执行完毕才能执行下一个计算阶段的同步逻辑,相当于给计算任务的执行过程加上了一个全局阻塞(barrier),不仅增加了整个计算任务的执行时长,还使空闲资源得不到及时的利用,造成对服务器资源的浪费。
发明内容
本发明实施方式的目的在于提供一种分布式计算系统及分布式计算方法,提高对空闲资源的利用率,并减小整个计算任务的执行时长,提升执行效率。
为解决上述技术问题,本发明的实施方式提供了一种分布式计算系统,包括:任务切分模块及资源调度模块;所述任务切分模块用于将接收到的计算任务切分成若干个计算阶段,并将每个所述计算阶段分成若干个计算分区;所述资源调度模块用于为当前待启动的计算阶段中的计算分区分配资源,以启动所述计算分区,并用于在当前已启动的计算分区中任意一个完成计算,且下一个计算阶段能与当前已启动的计算阶段同时运行时,为所述下一个计算阶段的至少一个计算分区分配资源,以启动所述至少一个计算分区;其中,所述下一个计算阶段与所述完成计算的计算分区所在的计算阶段具有关联关系;所述至少一个计算分区将所述完成计算的计算分区的计算结果作为计算数据。
本发明的实施方式还提供了一种分布式计算方法,包括:将接收到计算任务切分成若干个计算阶段,并将每个所述计算阶段分成若干个计算分区来执行;为当前待启动的计算阶段中的计算分区分配资源,以启动所述计算分区;在当前已启动的计算分区中存在完成计算的计算分区,且下一个计算阶段能与当前已启动的计算阶段同时运行时,为下一个计算阶段的至少一个计算分区分配资源,以启动所述至少一个计算分区;其中,所述下一个计算阶段与所述完成计算的计算分区所在的计算阶段具有关联关系;所述至少一个计算分区将所述完成计算的计算分区的计算结果作为计算数据。
本发明实施方式相对于现有技术而言,在当前已启动的计算阶段中的任意一个计算分区完成计算,且下一个计算阶段能与当前已启动的计算阶段同时运行时,直接为下一个计算阶段的至少一个计算分区分配资源,从而使得多个计算阶段并行执行。这种做法有利于降低现有技术中因计算阶段的同步逻辑造成的全局阻塞对执行时长的影响,减少了整个计算任务的执行时长,同时也提高了对空闲资源的利用效率,有助于提升整个计算任务的执行效率。此外,在为下一个计算阶段的计算分区分配资源之前,先判断该下一个计算阶段能否与当前已启动的计算阶段同时执行,也保证了执行结果的正确性和安全性。
另外,所述分布式计算系统还包括:先行条件判断模块;所述先行条件判断模块用于在所述下一个计算阶段与所述当前已启动的计算阶段同时运行不会影响整体运行结果时,判定所述下一个计算阶段能与当前已启动的计算阶段同时运行。提供一种判断两个计算阶段能否同时执行的方法。在两个计算阶段同时执行不会影响整体运行结果的情况下,才使这两个计算阶段同时执行,有利于保持执行结果的正确性和安全性。
另外,所述分布式计算系统还包括:计算完毕判断模块;所述计算完毕判断模块用于判断当前已启动的计算分区是否完成计算,并在判定完成计算时,通知所述资源调度模块释放完成计算的所述计算分区所占用的资源。及时释放完成计算的计算分区占用的资源,使得资源调度模块可及时将该释放出的资源分配给未启动的计算分区,有利于提高空闲资源的利用率。
另外,所述计算完毕判断模块具体用于在当前已启动的计算分区完成对现有计算数据的计算后,判断为所述当前已启动的计算分区提供计算数据的各计算分区是否完成计算,并在判定所述各计算分区均完成计算时,判定所述当前已启动的计算分区完成计算。提供一种判断计算分区是否完成计算的方法,这种方法有利于提高判断的准确性。
另外,所述任务切分模块还用于根据各个计算阶段之间的数据传输关系,构建各个计算阶段之间的所述关联关系,以建立存在所述关联关系的计算阶段的计算分区之间的数据传输关系。确定不同计算阶段的计算分区之间的数据传输关系,有利于保证数据传输的准确性,从而提高执行结果的正确性和安全性。
另外,当前已启动的计算分区在计算过程中,还会接收前置计算阶段中与所述当前已启动的计算分区所在的计算阶段存在所述关联关系的计算阶段的计算分区的计算结果,并将接收的所述计算结果作为计算数据,加入到本身的计算中。计算分区在计算过程中能够持续接收前置的计算阶段传来的数据并加入计算,进一步保证不同的计算阶段可以并行执行,极大的提高了整个计算任务的执行效率。
另外,所述资源调度模块还用于在当前已启动的计算分区中任意一个完成计算,且所述完成计算的计算分区所在的计算阶段还存在未启动的计算分区时,为所述完成计算的计算分区所在的计算阶段中未启动的计算分区分配资源。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的分布式计算系统的结构示意图;
图2是根据本发明第二实施方式的分布式计算方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种分布式计算系统。如图1所示,该分布式计算系统包括任务切分模块1、资源调度模块2、计算分区执行模块3、执行完毕判断模块4及先行条件判断模块5。
其中,任务切分模块1可将接收到的计算任务切分成若干个计算阶段,并将每个计算阶段分若干个计算分区来执行。具体地,任务切分模块1在接收到计算任务时,可先根据该计算任务的特点和逻辑,将计算任务切分成若干个计算阶段,并根据各个计算阶段之间的数据传输关系,建立起各个计算阶段之间的关联关系。此后,任务切分模块1还可根据每个计算阶段的任务设置,将单个计算阶段划分为若干个计算分区来执行,并根据各个计算阶段之间的关联关系,确定存在关联关系的计算阶段的计算分区之间的数据传输关系。
例1,一个计算任务为:从数据库中提取数据,对提取的数据进行某种运算,再根据运算结果做某种处理,得到处理结果。根据这一计算任务的特点和逻辑,任务切分模块1可将该计算任务切分成三个计算阶段。计算阶段A为:从数据库中提取数据;计算阶段B为:对提取的数据进行某种运算;计算阶段C为:根据运算结果做某种处理。显然,计算阶段B的计算数据来源于计算阶段A,而计算阶段C的计算数据来源于计算阶段B。根据这一数据传输关系可知,计算阶段A与B之间,以及计算阶段B与C之间都存在关联关系。
若计算阶段A需要从数据库中提取出上千个数据,则可将该上千个数据分组,并将计算阶段A划分为多个计算分区,使每个计算分区提取一组数据。同样的,任务切分模块1也可根据计算阶段B与C的任务设置,将其划分为若干个计算分区来执行。假设计算阶段A、B与C均被分成三个计算分区去执行,由于计算阶段A与B之间,以及计算阶段B与C之间都存在关联关系,那么也就建立了计算阶段A的三个计算分区到计算阶段B的三个计算分区的数据传输关系,以及计算阶段B的三个计算分区到计算阶段C的三个计算分区的数据传输关系。
例2,如果计算任务为:分别提取第一表格及第二表格中的数据,使提取出的第一表格及第二表格中的数据同时进行某种运算,获取运算结果。根据这一计算任务的特点和逻辑,可将该计算任务切分成三个计算阶段。此时,计算阶段A为:提取第一表格中的数据;计算阶段B为:提取第二表格中的数据;计算阶段C为:使提取出的第一表格及第二表格中的数据同时进行某种运算。显然,计算阶段C的计算数据来源于计算阶段A与B。在建立计算阶段C与计算阶段A的关联关系,以及计算阶段C与计算阶段B的关联关系时,也就确定了计算阶段A的所有计算分区到计算阶段C的所有计算分区的数据传输关系,以及计算阶段B的所有计算分区到计算阶段C的所有计算分区的数据传输关系。
在确定好各计算阶段的关联关系,以及存在关联关系的计算阶段的计算分区之间的数据传输关系后,就可开始执行该计算任务。此时,资源调度模块2会为当前待启动的计算阶段(即首先要启动的计算阶段)的各计算分区分配资源(如CPU、内存等),以启动这些计算分区。每个计算分区会对应一个计算分区执行模块3。计算分区执行模块3在所对应的计算分区启动后,就会获取该计算分区的计算数据进行计算。计算完毕判断模块4会判断当前已启动的计算分区是否完成计算。在判定任意一个已启动的计算分区完成计算时,计算完毕判断模块4就会通知资源调度模块2释放该完成计算的计算分区所占用的资源。
如上述例1,在开始执行计算任务后,资源调度模块2会为计算阶段A的三个计算分区分配资源,启动这三个计算分区。此时每个计算分区对应的计算分区执行模块3,就会获取相应的计算分区的计算数据进行计算。当其中某个计算分区执行模块3完成对现有数据的计算时,计算完毕判断模块4就会判断该计算分区执行模块3所对应的计算分区是否真的完成了自己的计算工作。若判定已完成,计算完毕判断模块4就会通知资源调度模块2释放该完成计算的计算分区所占用的资源。
值得一提的是,在实际应用中,计算完毕判断模块4在某个已启动的计算分区完成对现有计算数据的计算后,可通过判断为该计算分区提供计算数据的各计算分区是否完成计算,来判断该计算分区是否真的完成了计算。当判定为该计算分区提供计算数据的各计算分区都完成计算时,计算完毕判断模块4才判定该计算分区完成计算。特别地,对于初始启动的计算分区(如例1中的计算阶段A),由于不存在为其提供计算数据的计算分区,因此,当该初始启动的计算分区完成对现有数据的计算时,就可判定该计算分区完成计算。
先行条件判断模块5可在当前已启动的计算分区中任意一个完成计算后,或在资源调度模块2释放完成计算的计算分区所占用的资源后,判断下一个计算阶段是否能与当前已启动的计算阶段同时运行,并在判定能够同时运行时,通知资源调度模块2为该下一个计算阶段的至少一个计算分区分配资源,以启动该至少一个计算分区。其中,该下一个计算阶段应与完成计算的计算分区所在的计算阶段具有关联关系,该至少一个计算分区在启动后,可将该完成计算的计算分区的计算结果作为自己的计算数据进行计算。在实际应用中,先行条件判断模块5可通过判断该下一个计算阶段与当前已启动的计算阶段同时运行时,是否会影响整体运行结果,来判断两者能否同时运行。若不会影响,则判定下一个计算阶段能与当前已启动的计算阶段同时运行。
如上述例1,当判定计算阶段A中的任意一个计算分区完成计算时,先行条件判断模块5就可判断计算阶段B是否能与计算阶段A同时运行。假设计算阶段B对计算阶段A提取的数据进行单独处理,这样在计算阶段A提取数据的过程中就启动计算阶段B,是不会影响最终的处理结果的,就可判定计算阶段B能与计算阶段A同时运行。假设计算阶段B需要在计算阶段A提取出所有的数据后,对所有的数据进行某种关联系处理,计算阶段B就必需在计算阶段A运行完毕后才启动,否则会影响最终的处理结果。
在判定下一个计算阶段能与当前已启动的计算阶段同时运行,资源调度模块2就可视当前空闲资源的状况,为该下一个计算阶段的至少一个计算分区分配资源。该下一个计算阶段的至少一个计算分区在启动后,其对应的计算分区执行模块3就可获取该完成计算的计算分区的计算结果,并将该计算结果作为计算数据进行计算。在计算过程上,已启动的计算分区还会持续接收前置计算阶段中与该已启动的计算分区所在的计算阶段存在关联关系的计算阶段的计算分区的计算结果,并将接收的计算结果作为计算数据,加入到本身的计算中,直到完成计算。
如上述例1,假设计算阶段B能与计算阶段A同时运行,当计算阶段A中的任意一个计算分区完成计算时,资源调度模块2就可视当前空闲资源的状况,启动计算阶段B一个或多少计算分区,并将计算阶段A中完成计算的计算分区的计算结果,提供给计算阶段B中启动的计算分区进行计算。计算阶段B中被启动的计算分区在计算过程中,还会持续接收计算阶段A中其它计算分区的计算结果,并加入到自己的计算中。当计算阶段B中被启动的计算分区完成现有的计算数据的计算后,且判定计算阶段A所有的计算分区都完成计算时,就可判定该被启动的计算分区完成计算。
已启动的计算分区在完成计算后,若该完成计算的计算分区所在的计算阶段还存在未启动的计算分区,资源调度模块2也可为该完成计算的计算分区所在的计算阶段中未启动的计算分区分配资源。
如上述例1,如果计算阶段B中只有一个计算分区启动,当启动的这一个计算分区完成计算时,资源调度模块2可视空闲资源的多少,为计算阶段B中剩下的计算分区分配资源。当然,如果计算阶段C可与计算阶段B同时运行,此时,资源调度模块2也可视空闲资源的状况,启动计算阶段C中的至少一个计算分区。
本实施方式相对于现有技术而言,在当前已启动的计算阶段中的任意一个计算分区完成计算,且下一个计算阶段能与当前已启动的计算阶段同时运行时,直接为下一个计算阶段的至少一个计算分区分配资源,从而使得多个计算阶段并行执行。这种做法有利于降低现有技术中因计算阶段的同步逻辑造成的全局阻塞对执行时长的影响,减少了整个计算任务的执行时长,同时也提高了对空闲资源的利用效率,有助于提升整个计算任务的执行效率。此外,在为下一个计算阶段的计算分区分配资源之前,先判断该下一个计算阶段能否与当前已启动的计算阶段同时执行,也保证了执行结果的正确性和安全性。
本发明的第二实施方式涉及一种分布式计算方法。具体流程如图2所示。
步骤201:将接收到计算任务切分成若干个计算阶段,并将每个计算阶段分成若干个计算分区来执行。
本步骤中,任务切分模块可根据该计算任务的特点和逻辑,将计算任务切分成若干个计算阶段,并根据各个计算阶段之间的数据传输关系,建立起各个计算阶段之间的关联关系。
之后,任务切分模块还可根据每个计算阶段的任务设置,将单个计算阶段划分为若干个计算分区来执行,并根据之前建立的各个计算阶段之间的关联关系,确定存在关联关系的计算阶段的计算分区之间的数据传输关系。
步骤202:为当前待启动的计算阶段中的计算分区分配资源,以启动该待启动的计算阶段中的计算分区。
本步骤中,该待启动的计算阶段为任务开始后首先启动的计算阶段。资源调度模块会为该待启动的计算阶段的各计算分区分配资源,启动这些计算分区。
步骤203:启动的计算分区进行计算。
每个计算分区对应的计算分区执行模块在所对应的计算分区启动后,就会获取该计算分区的计算数据进行计算。对于首先启动的计算阶段的计算分区来说,其计算数据可直接分配得到。而对于后续启动的其他计算阶段的计算分区来说,通常需要将前置的计算阶段中与其存在关联关系的计算阶段的计算分区的计算结果,作为计算数据。
步骤204:判断启动的计算分区中是否存在完成计算的计算分区。若是,则进入步骤205;若否,则返回本步骤203。
对于已启动的计算阶段来说,若计算完毕判断模块判定其存在已经完成计算的计算分区,则可进入步骤205。值得一提的是,对于已完成计算的计算分区,计算完毕判断模块还会通知资源调度模块释放其占用的资源,以保证有空闲资源。
步骤205:判断是否存在下一个计算阶段。若是,则进入步骤207;若否,则进入步骤206。
步骤206:等待当前启动的计算阶段执行完毕。
在判定没有后续的计算阶段时,就可等待当前启动的计算阶段执行完毕,并结束流程。
步骤207:判断下一个计算阶段是否能与已启动的计算阶段同时运行。若是,则进入步骤209;若否,则进入步骤208。
该下一个计算阶段应与步骤204中确定的完成计算的计算分区所在的计算阶段具有关联关系,且该下一个计算阶段的计算分区可将该完成计算的计算分区的计算结果作为计算数据。
先行条件判断模块可通过判断该下一个计算阶段与当前已启动的计算阶段同时运行时,是否会影响整体运行结果,来判断两者能否同时运行。若不会影响,则判定下一个计算阶段能与当前已启动的计算阶段同时运行。
步骤208:等待当前启动的计算阶段执行完毕。
步骤209:为下一个计算阶段的至少一个计算分区分配资源,以启动该至少一个计算分区。
本步骤中,资源调度模块可视空闲资源的状况,为下一个计算阶段的一个或多个计算分区分配资源。值得一提的是,若完成计算的计算分区所在的计算阶段还有未启动的计算分区,资源调度模块也可视空闲资源的状况,为该未启动的计算分区分配资源。
步骤209执行过后,还会返回步骤203,直至所有的计算阶段执行完毕。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (8)
1.一种分布式计算系统,其特征在于,包括:任务切分模块及资源调度模块;
所述任务切分模块用于将接收到的计算任务切分成若干个计算阶段,并将每个所述计算阶段分若干个计算分区来执行;
所述资源调度模块用于为当前待启动的计算阶段中的计算分区分配资源,以启动所述计算分区,并用于在当前已启动的计算分区中任意一个完成计算,且下一个计算阶段能与当前已启动的计算阶段同时运行时,为所述下一个计算阶段的至少一个计算分区分配资源,以启动所述至少一个计算分区;
其中,所述下一个计算阶段与完成计算的计算分区所在的计算阶段具有关联关系;所述至少一个计算分区将所述完成计算的计算分区的计算结果作为计算数据;
所述任务切分模块还用于根据各个计算阶段之间的数据传输关系,构建各个计算阶段之间的所述关联关系,以建立存在所述关联关系的计算阶段的计算分区之间的数据传输关系;
当前已启动的计算分区在计算过程中,还会接收前置计算阶段中与所述当前已启动的计算分区所在的计算阶段存在所述关联关系的计算阶段的计算分区的计算结果,并将接收的所述计算结果作为计算数据,加入到本身的计算中。
2.根据权利要求1所述的分布式计算系统,其特征在于,所述分布式计算系统还包括:先行条件判断模块;
所述先行条件判断模块用于在所述下一个计算阶段与所述当前已启动的计算阶段同时运行不会影响整体运行结果时,判定所述下一个计算阶段能与当前已启动的计算阶段同时运行。
3.根据权利要求1所述的分布式计算系统,其特征在于,所述分布式计算系统还包括:计算完毕判断模块;
所述计算完毕判断模块用于判断当前已启动的计算分区是否完成计算,并在判定完成计算时,通知所述资源调度模块释放完成计算的所述计算分区所占用的资源。
4.根据权利要求3所述的分布式计算系统,其特征在于,所述计算完毕判断模块具体用于在当前已启动的计算分区完成对现有计算数据的计算后,判断为所述当前已启动的计算分区提供计算数据的各计算分区是否完成计算,并在判定所述各计算分区均完成计算时,判定所述当前已启动的计算分区完成计算。
5.根据权利要求3所述的分布式计算系统,其特征在于,所述资源调度模块具体用于根据空闲资源的状况,为所述下一个计算阶段的至少一个计算分区分配资源。
6.根据权利要求1所述的分布式计算系统,其特征在于,所述资源调度模块还用于在当前已启动的计算分区中任意一个完成计算,且所述完成计算的计算分区所在的计算阶段还存在未启动的计算分区时,为所述完成计算的计算分区所在的计算阶段中未启动的计算分区分配资源。
7.一种分布式计算方法,其特征在于,包括:
将接收到计算任务切分成若干个计算阶段,并将每个所述计算阶段分成若干个计算分区来执行;
为当前待启动的计算阶段中的计算分区分配资源,以启动所述计算分区;
在当前已启动的计算分区中存在完成计算的计算分区,且下一个计算阶段能与当前已启动的计算阶段同时运行时,为所述下一个计算阶段的至少一个计算分区分配资源,以启动所述至少一个计算分区;
其中,所述下一个计算阶段与完成计算的计算分区所在的计算阶段具有关联关系;所述至少一个计算分区将所述完成计算的计算分区的计算结果作为计算数据;
所述方法还包括:
根据各个计算阶段之间的数据传输关系,构建各个计算阶段之间的所述关联关系,以建立存在所述关联关系的计算阶段的计算分区之间的数据传输关系;
当前已启动的计算分区在计算过程中,还会接收前置计算阶段中与所述当前已启动的计算分区所在的计算阶段存在所述关联关系的计算阶段的计算分区的计算结果,并将接收的所述计算结果作为计算数据,加入到本身的计算中。
8.根据权利要求7所述的分布式计算方法,其特征在于,判定下一个计算阶段能与当前已启动的计算阶段同时运行,具体为:
在所述下一个计算阶段与所述当前已启动的计算阶段同时运行不会影响整体运行结果时,判定所述下一个计算阶段能与当前已启动的计算阶段同时运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810076940.7A CN110083441B (zh) | 2018-01-26 | 2018-01-26 | 一种分布式计算系统及分布式计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810076940.7A CN110083441B (zh) | 2018-01-26 | 2018-01-26 | 一种分布式计算系统及分布式计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083441A CN110083441A (zh) | 2019-08-02 |
CN110083441B true CN110083441B (zh) | 2021-06-04 |
Family
ID=67412226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810076940.7A Active CN110083441B (zh) | 2018-01-26 | 2018-01-26 | 一种分布式计算系统及分布式计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083441B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569129A (zh) * | 2019-09-12 | 2019-12-13 | 北京明略软件系统有限公司 | 资源分配方法及装置、存储介质、电子装置 |
CN113364603B (zh) * | 2020-03-06 | 2023-05-02 | 华为技术有限公司 | 环形网络的故障恢复方法及物理节点 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN103677753A (zh) * | 2012-09-20 | 2014-03-26 | 艾默生零售解决方案公司 | 多任务控制方法、设备以及工业控制系统 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
CN105868019A (zh) * | 2016-02-01 | 2016-08-17 | 中国科学院大学 | 一种Spark平台性能自动优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978228B (zh) * | 2014-04-09 | 2019-08-30 | 腾讯科技(深圳)有限公司 | 一种分布式计算系统的调度方法和装置 |
-
2018
- 2018-01-26 CN CN201810076940.7A patent/CN110083441B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677753A (zh) * | 2012-09-20 | 2014-03-26 | 艾默生零售解决方案公司 | 多任务控制方法、设备以及工业控制系统 |
CN103034554A (zh) * | 2012-12-30 | 2013-04-10 | 焦点科技股份有限公司 | 一种纠错重启以及自动判断启动的etl调度系统及方法 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN105868019A (zh) * | 2016-02-01 | 2016-08-17 | 中国科学院大学 | 一种Spark平台性能自动优化方法 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
Non-Patent Citations (2)
Title |
---|
Spark Shuffle的内存调度算法分析及优化;陈英芝;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160715;I137-47 * |
深入理解Spark(二):Spark Scheduler原理及资源配置;典韦;《http://blog.lzhplus.com/?p=244》;20170224;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110083441A (zh) | 2019-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025205B (zh) | 一种分布式系统中的训练模型的方法及设备 | |
CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
CN110083441B (zh) | 一种分布式计算系统及分布式计算方法 | |
US20190044883A1 (en) | NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB | |
CN112905342A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
US9753769B2 (en) | Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof | |
CN111143210A (zh) | 一种测试任务调度方法和系统 | |
CN105681443A (zh) | 一种基于大数据的云计算架构方法及系统 | |
CN103823712A (zh) | 一种多cpu虚拟机系统的数据流处理方法和装置 | |
CN114529413A (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
CN113051049B (zh) | 任务调度系统、方法、电子设备及可读存储介质 | |
CN111985634A (zh) | 神经网络的运算方法、装置、计算机设备及存储介质 | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN112003930A (zh) | 任务分配方法、装置、设备及存储介质 | |
CN111061557B (zh) | 均衡分布式内存数据库负载的方法和装置 | |
CN114579187B (zh) | 一种指令分配方法、装置、电子设备及可读存储介质 | |
CN109062702B (zh) | 一种计算资源分配方法、相关装置及可读存储介质 | |
CN103645952A (zh) | 一种基于MapReduce的非精确任务并行处理方法 | |
WO2017031961A1 (zh) | 数据处理方法和装置 | |
CN113722053A (zh) | 数据访问控制电路、方法、电子设备及计算机可读存储介质 | |
CN105549911A (zh) | Nvram的数据传输方法和装置 | |
CN105446798A (zh) | 一种多核处理系统及方法以及移动终端 | |
WO2017220020A1 (zh) | 存储资源分配方法和装置 | |
CN110362397B (zh) | 一种具有延迟约束功能的气泡执行方法 |
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 | ||
GR01 | Patent grant |