CN108388474A - 基于dag的智能分布式计算管理系统及方法 - Google Patents
基于dag的智能分布式计算管理系统及方法 Download PDFInfo
- Publication number
- CN108388474A CN108388474A CN201810118661.2A CN201810118661A CN108388474A CN 108388474 A CN108388474 A CN 108388474A CN 201810118661 A CN201810118661 A CN 201810118661A CN 108388474 A CN108388474 A CN 108388474A
- Authority
- CN
- China
- Prior art keywords
- vertex
- dag
- pond
- node
- task
- 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 abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000009826 distribution Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 9
- 239000002243 precursor Substances 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 3
- 235000019580 granularity Nutrition 0.000 description 14
- 238000007726 management method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
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/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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于DAG的智能分布式计算管理系统及方法,方法包括:获取根节点接收的作业任务;将作业任务拆分成作业DAG图;将作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池;根据当前运行池的顶点进行任务分配,以实现对作业任务进行分粒度处理。发明提供的基于DAG的智能分布式计算管理系统及方法,系统为一分布式软件架构,基于该架构,可实现对作业任务的细分,并拆分成粒度更小的执行单位进行任务执行,可使得调度策略更加灵活,使系统的负载平衡,提高容错性、吞吐量指标。
Description
技术领域
本发明涉及分布式计算管理领域,尤其涉及一种基于DAG的智能分布式计算管理系统及方法。
背景技术
随着大数据、深度学习的兴起,海量数据及计算会产生各种各样的长时间作业,如何高效稳定地处理长时间作业已经成为一个十分重要的问题。对于长时间作业,稳定性与高吞吐量远比低延迟重要,这也决定了这类作业并不适合运行在追求实时性的系统中。并行计算是加速求解问题的重要技术思想,针对深度学习开发的专用GPU、TPU,采用Hadoop、Spark等开源分布式框架的机群,是并行计算思想的重要实践。
现有技术中,例如,Hadoop分布式系统计算的核心为MapReduce,MapReduce是一个用于处理大数据集的编程模型。通常处理大数据集的作业也是长时间作业,MapReduce在容错性以及性能等指标上做的非常出色。其中,如图1所示地,MapReduce编程模型中,一个输入和输出都是key/value对集的计算通常可以被抽象为两个函数:Map和Reduce。其中,Map函数由用户自定义,接收一个输入对,产生一个key/value对集作为中间输出,MapReduce把所有相同的key对应的value聚合起来传递给Reduce函数。Reduce函数同样由用户自定义,接受一个中间key以及相关的value的集合,通过一些类似合并的操作将形成一个较小的value集。
现有技术存在的缺陷是:
1)不适合串行操作的作业。现有技术中的分布式系统(例如,Hadoop分布式系统)都是面向批处理系统的,是处理海量数据的理想技术,但是这些技术不适合进行串行操作。例如,MapReduce是基于GFS(谷歌文件系统)或者HDFS(Hadoop文件系统),这类主从结构的分布式文件系统的特性之一就是不适合小文件的存储,处理小数据的串行作业会对整个系统造成极大资源浪费。
2)只具有固定的并行粒度。现有技术中的分布式系统只具有固定的并行粒度,因此限制了他们可接受作业的范围,通常,一些逻辑更加复杂的作业很难在这些系统上部署,比如,MapReduce就很难处理机器学习的迭代算法。
3)调度的基本单位大。现有技术中的分布式系统,调度的基本单位大,例如,Hadoop和Spark调度的基本单位都是作业。较大的调度单位将带来许多资源分配的问题,例如,在某个作业在最后的部分仅占用IO资源,但是它还无法释放其他资源如CPU,GPU等时,其他作业则不能进行,造成资源浪费。
发明内容
本发明要解决的技术问题是提供一种基于DAG的智能分布式计算管理系统及方法,系统为一分布式软件架构,基于该架构,可实现对作业任务的细分,并拆分成粒度更小的执行单位进行任务执行,可使得调度策略更加灵活,使系统的负载平衡,提高容错性、吞吐量指标。
为解决上述技术问题,本发明提供的技术方案是:
第一方面,本发明实施例提供了一种基于DAG的智能分布式计算管理系统,系统为主从分布结构,包括:一个根节点,与根节点有向连接的至少一个核心节点,与每个核心节点有向连接的操作节点;
操作节点为叶子节点或核心节点,且叶子节点为系统中的基本任务执行单元;
其中,每个核心节点对应一个运行池,运行池为DAG图结构;每个运行池具有父运行池和/或子运行池。
进一步地,叶子节点为,函数、模块或文件。
第二方面,本发明实施例提供了一种基于DAG的智能分布式计算管理方法,应用于第一方面实施例提供的系统,方法包括:
获取根节点接收的作业任务;
将作业任务拆分成作业DAG图;
将作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池;
根据当前运行池的顶点进行任务分配,以实现对作业任务进行分粒度处理。
进一步地,方法还包括对作业DAG图进行存储,且存储步骤包括:
计算作业DAG图中的每个顶点信息对应的唯一字符串;
根据唯一字符串确定顶点ID;
在顶点ID与数据库中的任一ID信息不匹配时,将顶点ID对应的顶点信息以索引形式存储至数据库中;
以此类推,对作业DAG图中的所有顶点的顶点信息进行存储,以实现对作业DAG图进行存储。
进一步地,运行池为DAG图结构,且运行池对应的池DAG图的每一个顶点信息包括,顶点操作信息,输入参数,直接前驱顶点信息。
进一步地,将作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池,包括:
将作业DAG图和池DAG图中存在复用的顶点进行合并,以形成至少一个新DAG图。
进一步地,根据当前运行池的顶点进行任务分配,以实现对作业任务进行分粒度处理,包括:
对当前运行池进行DAG拓扑排序;
确定当前运行池中的无入度和/或入度顶点的状态为已完成的所有初顶点;
将初顶点分配至对应的核心节点,并将包含初顶点的子顶点分配给核心节点的子节点,以进行粒度化任务处理。
进一步地,方法还包括:
按照预设规则收集核心节点下的所有叶子节点的任务执行结果,并将任务执行结果返回给用户。
进一步地,对当前运行池进行DAG拓扑排序,包括:
a)从DAG图中选择一个没有前驱的顶点并输出;
b)将被选出的顶点和所有以被选出的顶点为起点的有向边从DAG图中删除;
重复a)和b),直到当前的DAG图中为空。
进一步地,方法还包括:
接收核心节点反馈给当前运行池的顶点完成状态;
在顶点完成状态为已完成时,更新当前运行池中的顶点完成信息;
更新数据库中的顶点完成信息。
本发明实施例提供的基于DAG的智能分布式计算管理系统及方法,系统为一分布式软件架构,基于该架构,可实现对作业任务的细分,并拆分成粒度更小的执行单位进行任务执行,可使得调度策略更加灵活,使系统的负载平衡,提高容错性、吞吐量指标。
本发明实施例的有益效果为:
1)提出了一种分布式软件架构,基于该架构,程序员用户可以对程序任务进行并行性分析并尽可能拆分部署在这个架构上执行,且在程序员用户无法将程序任务拆成粒度很小的部分时,系统可以实现粗粒度的并行,灵活性高,实用性强。
2)提出了一种更加灵活的缓存机制,这一机制使得系统可以在执行一些类似的作业的时候能更快的完成。得益于这一缓存机制,系统的容错性也大大提高。此外,这一缓存机制可以同时支持数据检查点和记录数据更新两种方法,并且这一缓存机制对于软件的使用者是完全透明的。
3)将作业的调度基本任务设置为更小的单位,这样使得调度的策略更加灵活,因此可以使系统的负载均衡,容错性,吞吐量等各项指标全面提高。
附图说明
图1是本发明提供的现有技术中的MapReduce编程模型的数据处理流程示意图;
图2是本发明实施例提供的系统的架构图;
图3是本发明实施例提供的方法的流程图;
图4是本发明实施例提供的作业DAG图加入到历史运行池的过程演示图。
具体实施方式
下面通过具体的实施例进一步说明本发明,但是,应当理解为,这些实施例仅仅是用于更详细具体地说明之用,而不应理解为用于以任何形式限制本发明。
实施例一
结合图2,本实施例提供的基于DAG的智能分布式计算管理系统,系统为主从分布结构,包括:一个根节点,与根节点有向连接的至少一个核心节点,与每个核心节点有向连接的操作节点;
操作节点为叶子节点或核心节点,且叶子节点为系统中的基本任务执行单元;
其中,每个核心节点对应一个运行池,运行池为DAG图结构;每个运行池具有父运行池和/或子运行池。
进一步地,叶子节点为,函数、模块或文件。
本发明实施例提供的基于DAG的智能分布式计算管理系统,系统为一分布式软件架构,基于该架构,可实现对作业任务的细分,并拆分成粒度更小的执行单位进行任务执行,可使得调度策略更加灵活,使系统的负载平衡,提高容错性、吞吐量指标。
本实施例中,本实施例的系统将一个分布式软件系统描述成一棵树(tree)。这棵树中叶子节点被称为节点(node),非叶节点被称为核心(kernel)。一个软件系统仅有一个根节点(root),这一设计使得本实施例的系统实际上是一个主从结构的分布式系统。一棵树中只有node将被执行,而kernel负责调度和分配作业(job)。一个作业被拆分成一个DAG,这一操作将由kernel完成,kernel会将DAG中的每一个操作顶点分配给他的子节点,这些子节点可能是一个kernel或者是一个node。对于分配给kernel的操作节点将被分配更细粒度的kernel或node,直至最终都转化为node。node是本实施例的系统执行的基本单位,他可以是一个函数,一个模块,甚至是一个文件,这完全取决于程序员的需求和能力。由于node的灵活性使得整个系统拥有灵活的并行粒度。同时得益于DAG强大的表达能力,本实施例的系统可以处理各种逻辑复杂的作业的。
需要说明的是,树结构有很多优点,理论上它可以有无限的深度,这一特性使得本实施例的系统变得十分灵活,本实施例的系统上部署的分布式系统可以是任意并行粒度的,这个分布式系统的最小单位可以是一个操作,一个类,或者一个程序文件。同时,同一层的子树可以有不同的深度,这使得可以对不同的程序模块设计不同的并行粒度。总之,树是足够灵活的结构,树的设计使得优秀的并行程序员写出优秀的并行程序。
此外,需要说明的是,关于有向无环图(directed acyclic graph,DAG),设定某图G是由顶点集V和边集E组成,记为G=(V,E),其中V(G)表示图G中顶点的有限非空集;E(G)表示图G中顶点之间的关系(边)集合。若E是有向边(也称弧)的有限集合时,则图G为有向图。一个有向图中不存在环,则成为有向无环图,简称DAG图。
此外需要说明的是,每个核心节点对应一个运行池(Pool),其中,Pool的存储方式:一个pool就是一个有向无环图,pool中的每一个顶点包括属于本顶点所对应的操作信息以及输入参数和这个顶点的直接前驱顶点。其中顶点的操作信息将确定该顶点将属于本实施例的系统对应的树中的哪一个节点。对于顶点我们采用散列存储,关键字就是构成这一顶点的唯一字符串。这将使得顶点复用变得极为简单而且对用户完全透明。用户只需提交作业而无需关心作业中哪些部分可以复用。一个完成的顶点通常不会被删除,而是作为历史纪录保存下来,当然程序员也可以有选择地铲除一些顶点。完成的顶点将以索引的方式存储该顶点执行的结果。由于整个pool被记录下来,所以相当于保存了数据的更新记录,可以用于系统的数据恢复。另外对于在某台机器上产生的数据将由本台机器保存,其索引信息将会被保留在pool中的顶点信息里。还需要注意的是,每个kernel都会维持一个pool,与kernel一样,pool也有层级关系,深度(depth)越小的pool相对来说更重要,一个pool的父pool信息可以用来恢复该pool的记录。
实施例二
结合图3,本发明实施例提供的基于DAG的智能分布式计算管理方法,应用于实施例一提供的系统,方法包括:
步骤S1,获取根节点接收的作业任务;
步骤S2,将作业任务拆分成作业DAG图;
步骤S3,将作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池;
步骤S4,根据当前运行池的顶点进行任务分配,以实现对作业任务进行分粒度处理。
本发明实施例提供的基于DAG的智能分布式计算管理方法,应用于实施例一提供的系统,其中,系统为一分布式软件架构,基于该架构,可实现对作业任务的细分,并拆分成粒度更小的执行单位进行任务执行,可使得调度策略更加灵活,使系统的负载平衡,提高容错性、吞吐量指标。
本实施例中,先将任务拆分成作业DAG图,之后将作业DAG图加入到运行池中进行合并处理,最后根据合并后的当前运行池进行任务的细粒度化分配。
本实施例中,核心节点在接收到一个作业后不会立即执行,而是将这一作业加入到运行池(pool)中,运行池是一个有向无环图,一个新的作业将会与现有的pool合并形成一个新的pool,这就是一个kernel接收到新的作业后的第一步操作。因此kernel最终执行的是一个pool,而不是单一的作业,kernel分配的基本单位不是作业,而是pool对应的DAG图的顶点,这样就使得系统执行和调度的任务粒度更小。此外,由于一个系统通常不是由一个kernel构成的,因而也不止存在一个pool。Pool这一设计也是实现缓存机制的关键。
优选地,方法还包括对作业DAG图进行存储,且存储步骤包括:
计算作业DAG图中的每个顶点信息对应的唯一字符串;
根据唯一字符串确定顶点ID;
在顶点ID与数据库中的任一ID信息不匹配时,将顶点ID对应的顶点信息以索引形式存储至数据库中;
以此类推,对作业DAG图中的所有顶点的顶点信息进行存储,以实现对作业DAG图进行存储。
进一步优选地,运行池为DAG图结构,且运行池对应的池DAG图的每一个顶点信息包括,顶点操作信息,输入参数,直接前驱顶点信息。本实施例中,每个核心节点对应一个运行池(Pool),其中,Pool的存储方式:一个pool就是一个有向无环图,pool中的每一个顶点包括属于本顶点所对应的操作信息以及输入参数和这个顶点的直接前驱顶点。其中顶点的操作信息将确定该顶点将属于本实施例的系统对应的树中的哪一个节点。对于顶点我们采用散列存储,关键字就是构成这一顶点的唯一字符串。这将使得顶点复用变得极为简单而且对用户完全透明。用户只需提交作业而无需关心作业中哪些部分可以复用。一个完成的顶点通常不会被删除,而是作为历史纪录保存下来,当然程序员也可以有选择地铲除一些顶点。完成的顶点将以索引的方式存储该顶点执行的结果。由于整个pool被记录下来,所以相当于保存了数据的更新记录,可以用于系统的数据恢复。另外对于在某台机器上产生的数据将由本台机器保存,其索引信息将会被保留在pool中的顶点信息里。还需要注意的是,每个kernel都会维持一个pool,与kernel一样,pool也有层级关系,深度(depth)越小的pool相对来说更重要,一个pool的父pool信息可以用来恢复该pool的记录。
进一步优选地,如图4所示地,将作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池,包括:
将作业DAG图和池DAG图中存在复用的顶点进行合并,以形成至少一个新DAG图。
本实施例中,在接收到一个作业(有向无环图)之后,会将作业加入到Pool中,加入的过程中会将新的作业和Pool中已有的作业合并成一个或者多个作业,具体地,如果多个作业中的顶点有复用的情况存在,则会合并成一个作业,如果不存在复用的情况,则会合并成多个作业。
进一步优选地,根据当前运行池的顶点进行任务分配,以实现对作业任务进行分粒度处理,包括:
对当前运行池进行DAG拓扑排序;
确定当前运行池中的无入度和/或入度顶点的状态为已完成的所有初顶点;
将初顶点分配至对应的核心节点,并将包含初顶点的子顶点分配给核心节点的子节点,以进行粒度化任务处理。
本实施例中,在分配作业前,将当前运行池中的作业进行拓扑排序计算出DAG中的一个或者多个顶点(无入度或者所有入度顶点均已是完成状态),分配至能处理相关顶点的kernel。顶点被处理完成之后返回的状态标记在Pool中的相关顶点信息中,并检测包含该顶点的相关作业中的所有顶点是否均已完成,如果完成则在当前运行池中将该作业包含的并且未出现在其他作业的所有顶点从当前运行池中移除。
需要说明的是,本实施例的系统的设计与实现是基于DAG以及拓扑排序,DAG强大的表达能力保证了本实施例的系统足够的通用性,用一个DAG图表示一个分布式计算的作业,如同MapReduce一样,一个作业将被分成粒度更小的操作,但与MapReduce不同的是,所有的操作只有一种类型顶点。一个任务DAG的边表示依赖关系,一个顶点所代表的操作通常需要在它的所有前驱顶点都完成后才能执行,一个顶点可以有多个前驱顶点,这样的设计使得DAG表示各种并行关系。另外,本实施例的系统在这一经典数据结构的基础上做了很多创新,首先,本实施例的系统包含一种简单的描述DAG的数据结构,包括创建新的顶点,添加边以及合并两个图等操作。其次,本实施例的系统还允许用户动态的改变DAG调度拓扑图,且可以根据实际的输入数据,中间计算结果或当时的运行环境给出最优的调度拓扑结构,更加灵活,实用。
进一步优选地,方法还包括:
按照预设规则收集核心节点下的所有叶子节点的任务执行结果,并将任务执行结果返回给用户。具体地,本实施例的系统在与外界交互时,首先从根kernel接收作业,将作业分解成顶点并提交给子树去处理。最终本实施例的系统会将一个作业分解成一个node集合,这些node集合将通过某种调度机制去执行并产生最终结果。需要注意的是,一个顶点只有在被执行的时候才会交由子树去执行。对于最终产生需要反馈给用户的结果将由一个类似于reduce的操作收集并返回给用户,继而,一个作业所对应的有向无环图仅有一个出度为0的顶点。这一设计保证整个系统的所有的交互操作不会都通过根kernel,大大减轻了根kernel的负担。每个node都会维持一个顶点队列,本实施例的系统的资源调度最终变为node的资源调度问题。
此外,需要说明的是,不同类型的node操作通常占用的计算机资源不同,例如,一个深度卷积神经网络的训练需要高性能的GPU,而对于大数据的传输,网络的带宽则十分重要。通常,占用不同计算机资源的node服务可以同时在一台计算机上进行。也就是说,本实施例可以将资源占用没有交集的node服务部署在同一台计算机上。此外,资源占用可以使用kernel去区分,对于一个kernel内部的资源调度则可以使用简单的FIFO。这些更加灵活方便的策略都得益于本实施例的系统在底层去除了任务的概念。
进一步优选地,对当前运行池进行DAG拓扑排序,包括:
a)从DAG图中选择一个没有前驱的顶点并输出;
b)将被选出的顶点和所有以被选出的顶点为起点的有向边从DAG图中删除;
重复a)和b),直到当前的DAG图中为空。
本实施例中,在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,成为该图的一个拓扑排序。
①每个顶点出现且只出现一次。
②若定点A在序列中排在顶点B的前面,则在图中不存在从顶点B到顶点A的路径。
进一步优选地,方法还包括:
接收核心节点反馈给当前运行池的顶点完成状态;
在顶点完成状态为已完成时,更新当前运行池中的顶点完成信息;
更新数据库中的顶点完成信息。
实施例三
本实施例为一个具体的示例性说明,且具体为,采用实施例一或实施例二中的系统建立一个机器学习平台。所建立的平台需要满足如下功能:支持多用户、能够支持各种各样不同的数据库、系统的整体使用率保持在较高的水平。
一个完整的机器学习任务通常需要数据集成,数据预处理,以及训练,评估比较等过程。数据集成的任务是将需要进行训练的数据从不同的存储介质中收集起来集中在一起,因此这一过程通常主要是传输和检索操作;数据预处理通常包括数清洗,缺失值填补等工作;训练是一个需要迭代式计算的工作,也是通常整个机器学习过程中最耗时的。
根据机器学习的流程,我们将这一平台在第二层分为三个kernel,存储核心,数据组织核心,计算核心。这三个kernel提供的服务占用不同的计算机资源,因此这三个kernel的服务可以部署到同一台机器上。同时,这一划分也是将一个机器学习任务划分成三个部分。存储核心负责将存储在不同位置的数据整合在一起,这一过程通常需要较大的网络带宽以及IO设备和存储设备,大量数据的传输以及数据集的存储将是这一核心的主要任务。数据组织主要完成诸如主成分分析等特征工程。这一过程通常对整个数据集进行操作,计算量相比存储核心要大。计算核心主要完成机器学习算法的迭代训练过程。运用GPU可以加速这一计算过程,因此计算核心主要占用的资源是GPU。
完成kernel之后,我们可以将不同的kernel交给不同的程序员去完成,程序员可以根据需求自由添加子kernel,当然也可以为一个kernel添加多个子kernel,并将这些kernel分配给多个程序员。
此外,系统的升级迭代可以通过修改系统树的形式,通过添加或删除树的顶点来实现整个系统的优化或给系统添加新的功能等。
尽管本发明已进行了一定程度的描述,明显地,在不脱离本发明的精神和范围的条件下,可进行各个条件的适当变化。可以理解,本发明不限于所述实施方案,而归于权利要求的范围,其包括所述每个因素的等同替换。
Claims (10)
1.一种基于DAG的智能分布式计算管理系统,其特征在于,所述系统为主从分布结构,包括:一个根节点,与所述根节点有向连接的至少一个核心节点,与每个核心节点有向连接的操作节点;
所述操作节点为叶子节点或核心节点,且所述叶子节点为所述系统中的基本任务执行单元;
其中,每个所述核心节点对应一个运行池,所述运行池为DAG图结构;每个所述运行池具有父运行池和/或子运行池。
2.根据权利要求1所述的基于DAG的智能分布式计算管理系统,其特征在于,所述叶子节点为,函数、模块或文件。
3.一种基于DAG的智能分布式计算管理方法,应用于如权利要求1或2所述的系统,其特征在于,所述方法包括:
获取根节点接收的作业任务;
将所述作业任务拆分成作业DAG图;
将所述作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池;
根据所述当前运行池的顶点进行任务分配,以实现对所述作业任务进行分粒度处理。
4.根据权利要求3所述的基于DAG的智能分布式计算管理方法,其特征在于,所述方法还包括对所述作业DAG图进行存储,且存储步骤包括:
计算所述作业DAG图中的每个顶点信息对应的唯一字符串;
根据唯一字符串确定顶点ID;
在顶点ID与数据库中的任一ID信息不匹配时,将顶点ID对应的顶点信息以索引形式存储至数据库中;
以此类推,对所述作业DAG图中的所有顶点的顶点信息进行存储,以实现对所述作业DAG图进行存储。
5.根据权利要求3所述的基于DAG的智能分布式计算管理方法,其特征在于,所述历史运行池为DAG图结构,且所述历史运行池对应的池DAG图的每一个顶点信息包括,顶点操作信息,输入参数,直接前驱顶点信息。
6.根据权利要求5所述的基于DAG的智能分布式计算管理方法,其特征在于,所述将所述作业DAG图加入到历史运行池中,并按照设定规则合并形成当前运行池,包括:
将所述作业DAG图和所述池DAG图中存在复用的顶点进行合并,以形成至少一个新DAG图。
7.根据权利要求3所述的基于DAG的智能分布式计算管理方法,其特征在于,所述根据所述当前运行池的顶点进行任务分配,以实现对所述作业任务进行分粒度处理,包括:
对所述当前运行池进行DAG拓扑排序;
确定所述当前运行池中的无入度和/或入度顶点的状态为已完成的所有初顶点;
将所述初顶点分配至对应的核心节点,并将包含所述初顶点的子顶点分配给核心节点的子节点,以进行粒度化任务处理。
8.根据权利要求7所述的基于DAG的智能分布式计算管理方法,其特征在于,所述方法还包括:
按照预设规则收集所述核心节点下的所有叶子节点的任务执行结果,并将所述任务执行结果返回给用户。
9.根据权利要求7所述的基于DAG的智能分布式计算管理方法,其特征在于,所述对所述当前运行池进行DAG拓扑排序,包括:
a)从DAG图中选择一个没有前驱的顶点并输出;
b)将被选出的顶点和所有以被选出的顶点为起点的有向边从DAG图中删除;
重复a)和b),直到当前的DAG图中为空。
10.根据权利要求7所述的基于DAG的智能分布式计算管理方法,其特征在于,所述方法还包括:
接收所述核心节点反馈给所述当前运行池的顶点完成状态;
在顶点完成状态为已完成时,更新所述当前运行池中的顶点完成信息;
更新数据库中的顶点完成信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810118661.2A CN108388474A (zh) | 2018-02-06 | 2018-02-06 | 基于dag的智能分布式计算管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810118661.2A CN108388474A (zh) | 2018-02-06 | 2018-02-06 | 基于dag的智能分布式计算管理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108388474A true CN108388474A (zh) | 2018-08-10 |
Family
ID=63075224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810118661.2A Pending CN108388474A (zh) | 2018-02-06 | 2018-02-06 | 基于dag的智能分布式计算管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388474A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951556A (zh) * | 2019-03-27 | 2019-06-28 | 联想(北京)有限公司 | 一种Spark任务处理方法及系统 |
CN110187965A (zh) * | 2019-05-08 | 2019-08-30 | 深圳大学 | 神经网络的运行优化及数据处理方法、设备及存储介质 |
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110262995A (zh) * | 2019-07-15 | 2019-09-20 | 北京一流科技有限公司 | 执行体创建系统和执行体创建方法 |
CN110990059A (zh) * | 2019-11-28 | 2020-04-10 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN111435352A (zh) * | 2019-01-11 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 一种分布式实时计算方法、装置、系统及其存储介质 |
CN111666151A (zh) * | 2020-02-13 | 2020-09-15 | 北京一流科技有限公司 | 拓扑图转换系统及其方法 |
CN112486641A (zh) * | 2020-11-18 | 2021-03-12 | 鹏城实验室 | 一种基于图神经网络的任务调度方法 |
CN112673352A (zh) * | 2018-09-11 | 2021-04-16 | 华为技术有限公司 | 顺序计算dag的异构调度 |
CN112764907A (zh) * | 2021-01-26 | 2021-05-07 | 网易(杭州)网络有限公司 | 一种任务处理方法、装置、电子设备和存储介质 |
CN114489679A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 一种hadoop大数据任务DAG依赖智能分析系统及方法 |
CN116302396A (zh) * | 2023-02-13 | 2023-06-23 | 上海浦东发展银行股份有限公司 | 一种基于有向无环的分布式任务调度方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710286A (zh) * | 2009-12-23 | 2010-05-19 | 天津大学 | 面向dag数据驱动型应用的并行编程模型系统和实现方法 |
US20120089968A1 (en) * | 2010-10-08 | 2012-04-12 | Microsoft Corporation | Runtime agnostic representation of user code for execution with selected execution runtime |
CN103473287A (zh) * | 2013-08-30 | 2013-12-25 | 中国科学院信息工程研究所 | 一种自动分发、运行和更新可执行程序的方法及系统 |
CN104683488A (zh) * | 2015-03-31 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | 流式计算系统及其调度方法和装置 |
CN106547613A (zh) * | 2016-10-20 | 2017-03-29 | 西北工业大学 | 任务处理流程的调度及故障恢复方法 |
-
2018
- 2018-02-06 CN CN201810118661.2A patent/CN108388474A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710286A (zh) * | 2009-12-23 | 2010-05-19 | 天津大学 | 面向dag数据驱动型应用的并行编程模型系统和实现方法 |
US20120089968A1 (en) * | 2010-10-08 | 2012-04-12 | Microsoft Corporation | Runtime agnostic representation of user code for execution with selected execution runtime |
CN103473287A (zh) * | 2013-08-30 | 2013-12-25 | 中国科学院信息工程研究所 | 一种自动分发、运行和更新可执行程序的方法及系统 |
CN104683488A (zh) * | 2015-03-31 | 2015-06-03 | 百度在线网络技术(北京)有限公司 | 流式计算系统及其调度方法和装置 |
CN106547613A (zh) * | 2016-10-20 | 2017-03-29 | 西北工业大学 | 任务处理流程的调度及故障恢复方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112673352A (zh) * | 2018-09-11 | 2021-04-16 | 华为技术有限公司 | 顺序计算dag的异构调度 |
CN111221643B (zh) * | 2018-11-23 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN111435352A (zh) * | 2019-01-11 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 一种分布式实时计算方法、装置、系统及其存储介质 |
CN109951556A (zh) * | 2019-03-27 | 2019-06-28 | 联想(北京)有限公司 | 一种Spark任务处理方法及系统 |
CN110187965B (zh) * | 2019-05-08 | 2021-02-12 | 深圳大学 | 神经网络的运行优化及数据处理方法、设备及存储介质 |
CN110187965A (zh) * | 2019-05-08 | 2019-08-30 | 深圳大学 | 神经网络的运行优化及数据处理方法、设备及存储介质 |
WO2021008259A1 (zh) * | 2019-07-15 | 2021-01-21 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110262995A (zh) * | 2019-07-15 | 2019-09-20 | 北京一流科技有限公司 | 执行体创建系统和执行体创建方法 |
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN110990059A (zh) * | 2019-11-28 | 2020-04-10 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
CN110990059B (zh) * | 2019-11-28 | 2021-11-19 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
CN111666151A (zh) * | 2020-02-13 | 2020-09-15 | 北京一流科技有限公司 | 拓扑图转换系统及其方法 |
CN111666151B (zh) * | 2020-02-13 | 2023-11-03 | 北京一流科技有限公司 | 拓扑图转换系统及其方法 |
CN112486641A (zh) * | 2020-11-18 | 2021-03-12 | 鹏城实验室 | 一种基于图神经网络的任务调度方法 |
CN112764907B (zh) * | 2021-01-26 | 2024-05-10 | 网易(杭州)网络有限公司 | 一种任务处理方法、装置、电子设备和存储介质 |
CN112764907A (zh) * | 2021-01-26 | 2021-05-07 | 网易(杭州)网络有限公司 | 一种任务处理方法、装置、电子设备和存储介质 |
CN114489679A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 一种hadoop大数据任务DAG依赖智能分析系统及方法 |
CN116302396A (zh) * | 2023-02-13 | 2023-06-23 | 上海浦东发展银行股份有限公司 | 一种基于有向无环的分布式任务调度方法 |
CN116302396B (zh) * | 2023-02-13 | 2023-09-01 | 上海浦东发展银行股份有限公司 | 一种基于有向无环的分布式任务调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388474A (zh) | 基于dag的智能分布式计算管理系统及方法 | |
Fernandez et al. | A view on fuzzy systems for big data: progress and opportunities | |
McNabb et al. | Parallel pso using mapreduce | |
Li et al. | Scaling distributed machine learning with the parameter server | |
Malewicz et al. | Pregel: a system for large-scale graph processing | |
Karloff et al. | A model of computation for MapReduce | |
US9098326B1 (en) | Evolving parallel system to automatically improve the performance of multiple concurrent tasks on large datasets | |
Langeveld et al. | Set-based particle swarm optimization applied to the multidimensional knapsack problem | |
CN113010302A (zh) | 量子-经典混合架构下多任务调度方法、系统及量子计算机系统架构 | |
CN102567312A (zh) | 一种基于分布式并行计算框架的机器翻译方法 | |
CN106371924A (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
Jankov et al. | Declarative recursive computation on an RDBMS: or, why you should use a database for distributed machine learning | |
Ding et al. | Parallel incremental efficient attribute reduction algorithm based on attribute tree | |
Cavallo et al. | H2F: a Hierarchical Hadoop Framework for big data processing in geo-distributed environments | |
Liu et al. | Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model | |
Urbani et al. | WebPIE: a web-scale parallel inference engine | |
Belov et al. | Architecture of a compact data grid cluster for teaching modern methods of data mining in the virtual computer lab | |
Ghazali et al. | CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning | |
Atrushi et al. | Distributed Graph Processing in Cloud Computing: A Review of Large-Scale Graph Analytics | |
Marin et al. | Hybrid capacity planning methodology for web search engines | |
Li et al. | Performance modelling and cost effective execution for distributed graph processing on configurable VMs | |
Del Sagrado et al. | Architecture for the use of synergies between knowledge engineering and requirements engineering | |
da Silva et al. | Scalability analysis of embarassingly parallel applications on large clusters | |
Chandra et al. | An Efficient Framework for Load Balancing using MapReduce Algorithm for Bigdata | |
Dias et al. | Janus: Diagnostics and reconfiguration of data parallel programs |
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 |
Application publication date: 20180810 |
|
RJ01 | Rejection of invention patent application after publication |