CN111930519B - 用于分布式数据处理的并行决策系统及其方法 - Google Patents
用于分布式数据处理的并行决策系统及其方法 Download PDFInfo
- Publication number
- CN111930519B CN111930519B CN202010999246.XA CN202010999246A CN111930519B CN 111930519 B CN111930519 B CN 111930519B CN 202010999246 A CN202010999246 A CN 202010999246A CN 111930519 B CN111930519 B CN 111930519B
- Authority
- CN
- China
- Prior art keywords
- initial
- node
- candidate
- cost
- predetermined configuration
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims abstract description 187
- 238000004364 calculation method Methods 0.000 claims abstract description 126
- 230000009466 transformation Effects 0.000 claims abstract description 68
- 230000001419 dependent effect Effects 0.000 claims description 18
- 230000001131 transforming effect Effects 0.000 claims description 10
- 244000141353 Prunus domestica Species 0.000 claims description 4
- 230000008569 process Effects 0.000 description 13
- 238000009826 distribution Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 229910052698 phosphorus Inorganic materials 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 101100494769 Mus musculus Cts8 gene Proteins 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 102100037907 High mobility group protein B1 Human genes 0.000 description 2
- 101001025337 Homo sapiens High mobility group protein B1 Proteins 0.000 description 2
- 101100112373 Mus musculus Ctsm gene Proteins 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training 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/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
- 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]
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于分布式数据处理的并行决策系统和方法。所述系统包括:初始逻辑节点生成组件、逻辑节点遍历组件、预定构型代价计算组件以及并行决策组件。所述初始逻辑节点生成组件接收用户输入的任务配置数据生成用于所述分布式数据处理系统的初始逻辑节点拓扑图。所述逻辑节点遍历组件遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的预定构型。所述预定构型代价计算组件计算每种预定构型的传输代价和计算代价和。所述预定构型变换组件根据预定构型的结果缩减初始逻辑节点和连接边以及合并初始逻辑节点和连接边,从而获得缩减初始逻辑节点后的变换结果逻辑节点拓扑图,以便降低并行决策的解空间。所述并行决策组件针对变换结果逻辑节点拓扑图通过局部贪心策略获取总最小代价的并行方案。
Description
技术领域
本公开涉及一种数据处理技术。更具体地说,本公开涉及一种用于分布式数据处理的并行决策系统及其方法。
背景技术
在深度学习普及的现在,越来越多的模型以及规模越来越大的数据使得深度学习的训练已经不能在单台计算设备上实现。为此人们提出了分布式计算。随着分布式计算的普及,大型的作业或大张量会通过分割而将不同部分的数据部署到不同的分布式数据处理系统的各个计算设备上进行处理,并在各个部分计算过程需要进行中间参数的交互。这样,在具体作业的处理过程中,部署在一个计算设备上的计算中间参数或结果会成为另一个计算设备上的计算任务的输入数据,这会引起计算设备之间的数据传输开销。在作业数据很大的情况下,这种不同计算设备之间的传输开销对于分布式数据处理系统而言将造成极大的计算负担。因此,在支持数据并行、模型并行和混合并行、流式并行的分布式数据处理系统中,如何降低这种不同计算设备之间的数据传输开销是人们所需要面对的一个问题。
因此,人们试图在自己所有的分布式计算资源上在并行与否上获得一种数据处理方式,该方式一方面能够满足分布式计算资源的算力限制,一方面能够尽可能实现数据并行处理,提高数据处理的能力。很显然,在分布式数据处理系统中,在决定了在几台计算设备上进行并行计算,但是采用的并行方式也不是唯一的。通常每一个逻辑节点对同一计算任务的执行都可以有不同的并行处理方式。不同的并行处理方式在每个逻辑节点上会带来不同的运行时间,这样在前后两个逻辑节点之间由于两个逻辑节点采用不同的并行处理方式而导致不同的数据传输量,也就导致了不同的传输时间,因此,也对总体任务的数据处理时间带来不同影响,这就形成不同的计算效率。很显然,采用人工方式来反复调整进行深度学习的成千上万或几百万的数据处理节点的并行决策,必然导致大量的人工浪费。尤其是能够进行这种人工调整的人员都是高层次的人才,如果这些高层次人才将时间浪费在人工调整的琐碎工作中,必然导致人才浪费。尤其是不同的任务需要不同的并行决策,因此,即使采用同一套分布式数据处理资源也需要不同的并行决策来实现数据处理效率的最大化,这就导致每个任务都需要重新调整。并行决策人工调整方式首先会增大技术人员的工作量,耗费技术人员的人力,另一方面,在不同的逻辑节点应用并实现不同的并行模式,人们还需要考虑到内存的限制以及运行时间的消耗,会而且也不一定能带来理想的并行效果(把总运行时间压缩到极致或者近似极致)。
因此,人们需要一种能够基于分布式数据处理资源量自动进行并行决定的方法和系统,来决定每个逻辑节点的并行方式。
发明内容
本发明的一个目的是解决至少上述问题,具体而言,本公开提供一种用于分布式数据处理的并行决策系统,包括:初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;逻辑节点遍历组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的预定构型,所述预定构型包括第一预定构型和/或第二预定构型,其中第一预定构型为具有第一连接边和第二连接边的中间初始逻辑节点,第二预定构型为彼此之间存在多条第三连接边的成对初始逻辑节点;以及预定构型代价计算组件,针对第一预定构型,在第一连接边的第一初始逻辑节点的候选并行方案以及第二连接边的第二初始逻辑节点的候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价对应的第一连接边候选传输代价以及第二连接边的候选传输代价,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和,并选择最小第一代价和作为每对第一初始逻辑节点的候选并行方案和第二初始逻辑节点的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价;以及针对第二预定构型,在成对初始逻辑节点的第三初始逻辑节点的候选并行方案以及成对初始逻辑节点的第四初始逻辑节点的候选并行方案确定的情况下,对成对初始逻辑节点之间所有连接边的候选传输代价进行求和,获得成对初始逻辑节点之间的候选传输代价的第二代价和作为第二候选传输代价;预定构型变换组件,用于将第一预定构型的第一连接边、第二连接边以及中间初始逻辑节点变换为所述第一连接边的第一初始逻辑节点与第二连接边的第二初始逻辑节点之间的第一合并连接边,并将针对第一预定构型计算获得的所有第一候选传输代价赋予该第一合并连接边作为该第一合并连接边的候选传输代价之一,以及将第二预定构型的所有连接边变换为成对初始逻辑节点的第二合并连接边,并将针对第二预定构型计算获得第二候选传输代价赋予成对初始逻辑节点的第二合并连接边作为该第二合并连接边的候选传输代价之一;以及并行决策组件,针对经过预定构型变换组件执行变换后获得的变换结果逻辑节点拓扑图或其每个拓扑子图,多次重复遍历其中的每个最终逻辑节点或每条最终连接边,通过局部贪心策略,获取所述变换结果逻辑节点拓扑图或其每个拓扑子图的最小代价和,并基于所获得的变换结果逻辑节点拓扑图的总最小代价获得该变换结果逻辑节点拓扑图所对应的并行方案。
根据本公开的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第三预定构型,第三预定构型为仅具有第四连接边的末端初始逻辑节点,其中所述预定构型代价计算组件针对第三预定构型,在末端初始逻辑节点通过所述第三预定构型的第四连接边所依附的依赖初始逻辑节点的候选并行方案确定的情况下,获取末端初始逻辑节点的每个候选计算代价以及该末端初始逻辑节点的候选计算代价对应的第四连接边候选传输代价,并获取依赖初始逻辑节点的候选并行方案确定的情况下两者之第三代价和,并选择最小第三代价和作为依赖初始逻辑节点的候选并行方案确定的情况下的第三附加计算代价,以及所述预定构型变换组件剪除第三预定构型的第四连接边以及末端初始逻辑节点,并将第三附加计算代价附加到该依赖初始逻辑节点的计算代价上。
根据本公开的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第四预定构型,第四预定构型包括位于同一连通分量内彼此之间无连接边的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算组件针对第四预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价,并将两个候选计算代价之和作为第四代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换组件将第四预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第一合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
根据本公开的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第五预定构型,第五预定构型包括位于同一连通分量内彼此之间有第七连接边的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算组件针对第五预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价以及两者之间连接边的传输代价,并将两个候选计算代价以及对应的第七连接边的传输代价之和作为第五代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换组件将第五预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第二合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第五预定构型计算获得的第五代价和赋予第二合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
根据本公开的另一个方面,提供了一种用于分布式数据处理的并行决策方法,包括:初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;逻辑节点遍历步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的预定构型,所述预定构型包括第一预定构型和/或第二预定构型,其中第一预定构型为具有第一连接边和第二连接边的中间初始逻辑节点,第二预定构型为彼此之间存在多条第三连接边的成对初始逻辑节点;以及预定构型代价计算步骤,针对第一预定构型,在第一连接边的第一初始逻辑节点的候选并行方案以及第二连接边的第二初始逻辑节点的候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价对应的第一连接边候选传输代价以及第二连接边的候选传输代价,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和,并选择最小第一代价和作为每对第一初始逻辑节点的候选并行方案和第二初始逻辑节点的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价;以及针对第二预定构型,在成对初始逻辑节点的第三初始逻辑节点的候选并行方案以及成对初始逻辑节点的第四初始逻辑节点的候选并行方案确定的情况下,对成对初始逻辑节点之间所有连接边的候选传输代价进行求和,获得成对初始逻辑节点之间的候选传输代价的第二代价和作为第二候选传输代价;预定构型变换步骤,用于将第一预定构型的第一连接边、第二连接边以及中间初始逻辑节点变换为所述第一连接边的第一初始逻辑节点与第二连接边的第二初始逻辑节点之间的第一合并连接边,并将针对第一预定构型计算获得的所有第一候选传输代价赋予该第一合并连接边作为该第一合并连接边的候选传输代价之一,以及将第二预定构型的所有连接边变换为成对初始逻辑节点的第二合并连接边,并将针对第二预定构型计算获得第二候选传输代价赋予成对初始逻辑节点的第二合并连接边作为该第二合并连接边的候选传输代价之一;以及并行决策步骤,针对经过预定构型变换步骤执行变换后获得的变换结果逻辑节点拓扑图或其每个拓扑子图,遍历其中的每个最终逻辑节点或每条最终连接边,通过局部贪心策略,获取所述变换结果逻辑节点拓扑图或其每个拓扑子图的最小代价和,并基于所获得的变换结果逻辑节点拓扑图的总最小代价获得该变换结果逻辑节点拓扑图所对应的并行方案。
根据本公开的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第三预定构型,第三预定构型为仅具有第四连接边的末端初始逻辑节点,其中所述预定构型代价计算步骤针对第三预定构型,在末端初始逻辑节点通过所述第三预定构型的第四连接边所依附的依赖初始逻辑节点的候选并行方案确定的情况下,获取末端初始逻辑节点的每个候选计算代价以及该末端初始逻辑节点的候选计算代价对应的第四连接边候选传输代价,并获取依赖初始逻辑节点的候选并行方案确定的情况下两者之第三代价和,并选择最小第三代价和作为依赖初始逻辑节点的候选并行方案确定的情况下的第三附加计算代价,以及所述预定构型变换步骤剪除第三预定构型的第四连接边以及末端初始逻辑节点,并将第三附加计算代价附加到该依赖初始逻辑节点的计算代价上。
根据本公开的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第四预定构型,第四预定构型包括位于同一连通分量内彼此之间无连接边的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算步骤针对第四预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价,并将两个候选计算代价之和作为第四代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换步骤将第四预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第一合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
根据本公开的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第五预定构型,第五预定构型包括位于同一连通分量内彼此之间有第七连接边的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算步骤针对第五预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价以及两者之间连接边的传输代价,并将两个候选计算代价以及对应的第七连接边的传输代价之和作为第五代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换步骤将第五预定构型的第五初始逻辑节点、第六初始逻辑节点以及第七连接边合并为第二合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第五预定构型计算获得的第五代价和赋予第二合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
通过根据本公开的用于分布式数据处理的并行决策系统和方法,能够从全局角度使得分布式数据处理的并行决策所面对的解空间尽可能缩小,提高了进行自动并行决策的可行性,降低了自动并行决策难度,并且能够使得并行决策所获得的并行结果具有较低的计算代价和传输代价,从而尽可能提高了固定计算资源面对相同计算任务的计算效率,从而加快了数据处理速度。更为重要地是实现了在尽可能接近最低传输代价的基础上,实现并行决策的自动化,极大地降低了人工调试的成本。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1所示的是根据本公开的用于分布式数据处理的并行决策系统一个实例的原理示意图。
图2所示的是根据本公开的第一预定构型的示意图。
图3所示的是根据本公开的第二预定构型的示意图。
图4所示的是根据本公开的第三预定构型的示意图。
图5所示的是根据本公开的第四预定构型的示意图。
图6所示的是根据本公开的第五预定构型的示意图。
图7所示的是根据本公开的用于分布式数据处理的并行决策系统另一个实例的原理示意图。
具体实施方式
下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能对象之一可以被称为第五初始逻辑节点也可以被称为第六初始逻辑节点,类似地,两个可能设备的另一个可以被称为第二逻辑分布式签名也可以被称为第一逻辑分布式签名。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
图1所示的是根据本公开的用于分布式数据处理的并行决策系统100的原理示意图。如图1所示,所述分布式签名决策系统100包括初始逻辑节点生成组件110、逻辑节点遍历组件120、预定构型代价计算组件121、预定构型变换组件122以及并行决策组件123。所述初始逻辑节点生成组件110接收用户输入的任务配置数据以及计算资源数据,生成用于进行分布式数据处理的初始逻辑节点拓扑图111。在作业输入以后,分布式数据处理系统会基于用户输入的作业描述,自动将作业分解成众多微小的作业任务,这些众多的微小作业任务由各种操作组元构成,这些操作组元作为逻辑节点彼此前后互联形成初步张量处理神经网络拓扑图。这些神经网络的每层网络包含了众多的逻辑节点,相邻两层神经网络之间彼此连接,从而为分布式数据处理系统中执行实际作业处理的执行体的布置(PLACEMENT)提供了指引。图1中仅仅示意性地给出了一个简单的初始逻辑节点拓扑图111,其中显示了初始逻辑节点节点A、B、C、D、E、F、L以及K。其他未显示的采用省略方式替代。在实际的分布式数据处理中,初始逻辑节点拓扑图111会更复杂。初始逻辑节点拓扑图111包含实现用户所描述的计算任务的基本运算节点。初始逻辑节点拓扑图111为通过有向无环图转换而来的无向图。这种初始逻辑节点拓扑图111的生成方式属于本领域常规技术,因此不在此赘述。
在初始逻辑节点拓扑图111的各个初始逻辑节点每个包含按照一定多种候选并行策略。这种候选并行策略可以根据用户自己需要进行命名。一旦一个初始逻辑节点的并行策略从其所具有的多种候选并行策略得以选定之后,该初始逻辑节点的并行方式也被确定。候选并行策略可以根据并行的对象以及并行的位置进行综合分类为多种并行,例如多个设备上并行、同一设备上并行、多个工作站并行。为此,针对所有并行策略,可统一编号为并行策略P1、P2、P3、P4、P5、P6…。在形成的初始逻辑节点拓扑图111中,各个初始逻辑节点都具有多个候选并行策略P签名。作为已经由用户配置了P签名的源逻辑节点或基于用户的任务描述而确定了唯一P签名的初始逻辑节点,例如初始逻辑节点A、E以及C,其仅仅具有唯一的P签名,例如初始逻辑节点A的P-5,初始逻辑节点C的P-2以及初始逻辑节点E的P-3。在有些情况下,有些初始逻辑节点尽管可以有多种候选P签名,但是由于具体任务需要,用户可以指定某个或某些初始逻辑节点只能采用一种P签名。在未确定唯一P签名的情况下,初始逻辑节点通常包含有其固有的一些候选P签名。如图1中的初始逻辑节点B,其具有多个候选P签名,例如三个,包括P-1、P-2以及P-3。其他初始逻辑节点也各自具有不同的候选P签名,在此不一一列出。不同的初始逻辑节点根据其具体执行的运算操作不同,会有不同的固定的候选P签名。
为此,初始逻辑节点生成组件110在接收用户输入的任务配置数据和计算资源数据之后,生成用于分布式数据处理系统的初始逻辑节点拓扑图111。初始逻辑节点拓扑图111的每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,例如初始逻辑节点B具有多个候选P签名,例如三个,包括P-1、P-2以及P-3。每个候选并行方案指定了其所属的初始逻辑节点并行方案。每个初始逻辑节点基于所述任务配置数据还附有基于该并行方案的候选计算代价标签C。每个初始逻辑节点的计算代价基于其数据处理类型、数据块的大小以及其自身的并行方式,其计算代价C为一个经验值。例如,如果对于节点B的并行决策编号为P2,则其计算代价为C2。类似地如果对于节点B的并行决策编号为Pk,则其计算代价为Ck。计算代价的经验值的获取方式是一种现有技术,对于每个逻辑节点,衡量该逻辑节点在不同的备选数据并行决策下的计算时间,也就是计算量除以计算速度。可以通过大量实验来测量估算出单位计算量所需要的运行时间。称这个计算时间为逻辑节点的计算代价,并储存在一个数组里以保证在O(1)(常数)时间内能找到该逻辑节点在特定备选并行决策下的计算代价。因此不在此进行详细描述。
此外,任意两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签Ct,所述候选传输代价Ct由彼此连接的初始逻辑节点各自的候选并行方案确定。例如当初始逻辑节点E和B的并行决策编号为P2和P3时,两者之间连接边的传输代价标签为Ct。传输代价标签也可以通过带有候选决策编号来直观标识,例如,通过二维数组Ct[P2][P3]表达初始逻辑节点E和B的并行决策编号为P2和P3时两者之间的连接边的传输代价。因为作为逻辑节点拓扑图的计算图是有向图,在转换成无向图之后,计算图的每一条连接边代表着数据一个节点到这条边的另一个节点之间的数据传输。衡量这条边在两端节点取不同数据分布决策时所需要的传输时间并称之为传输代价。具体可以通过大量实验来测量带宽并估算出这两个节点间传输单位计算量所需要的时间。最后把这条边在两端的不同决策下的传输代价储存在这条边的一个二维数组(例如,Ct[Pi][Pj] )里以保证常数的访问时间。
根据本公开的P签名是应用在一种分布式数据处理系统中的签名。分布式数据处理系统中,由于经常存在数据并行、模型并行以及混合并行以及流式并行等的情形,因此,经常会存在相邻的逻辑节点的任务将被同时部署到不同的计算设备上,因此在实际数据处理过程中,各个计算设备之间会对中间参数进行交换,会导致大量的传输开销。由于不同的初始逻辑节点选择不同的并行策略将导致不同的传输开销或传输代价,而初始逻辑节点众多,这种不同的并行策略组合则是一个天文数字。因此,要人为选择代价较小的并行决策组合方式极为困难,自动选择由于组合方式极大,这将造成自动选择反而带来巨大的运算开销。
为了减少面对天文数字的并行决策组合进行并行决策选择难度,通过对初始逻辑节点拓扑图进行缩减处理,获得一个更简单的逻辑节点拓扑图,方便自动进行并行方式的选择。为此,本公开的逻辑节点遍历组件120遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F。这些预定构型F采用本公开的缩减方式变换成简单的子图结构。通过反复的迭代缩减,最终获得极简的便于进行并行决策选择的逻辑节点拓扑图。
图2所示的是根据本公开的第一预定构型的示意图。如图2所示,所述第一预定构型F1为具有第一连接边Lin和第二连接边Lout的中间初始逻辑节点MN。第一预定构型F1的第一连接边Lin的输入端与第一初始逻辑节点IN相连,第二连接边Lout的输出端与第二初始逻辑节点ON相连。返回参见图1,初始逻辑节点D就是一种中间初始逻辑节点MN,初始逻辑节点C和G分别是第一初始逻辑节点IN和第二初始逻辑节点ON。因此,图1中的初始逻辑节点C、D和G之间就构成了第一预定构型F1。
如图2所示,在一个第一预定构型F1中,每个初始逻辑节点都附有候选并行标签P以及与该候选并行标签对应的计算代价标签C。例如第一初始逻辑节点IN在候选并行标签P2下,具有对应的计算代价标签C1;中间初始逻辑节点MN在候选并行标签P1下,具有对应的计算代价标签C1,在候选并行标签P2下,具有其对应的计算代价标签C2以及在候选并行标签P4下,具有对应的计算代价标签C3;类似地,第二初始逻辑节点ON在候选并行标签P2下,具有对应的计算代价标签C1,在候选并行标签P3下,具有其对应的计算代价标签C2以及在候选并行标签P4下,具有对应的计算代价标签C3。需要指出的是,为了叙述方便,尽管这里在不同初始逻辑节点中采用了相同的计算代价标签,例如C1、C2,但是在不同的初始逻辑节点所附的计算代价标签并不表示计算代价是一样。这里仅仅起到标记在同一初始逻辑节点内不同候选并行策略下的不同计算代价的作用。在实际应用过程中,这些代价标签采用实际的代价值来体现。这种标记方式在其后的其他预定构形显示或阐述中也仅仅标记作用,并不意味着同样代价标签形式代表相同的计算代价。
如图2所示,第一连接边Lin在其第一初始逻辑节点IN与中间初始逻辑节点MN的各自候选并行策略P确定以及计算资源确定的情况下,具有不同的传输代价。例如图2中第一初始逻辑节点IN的候选并行策略为一个,中间初始逻辑节点MN的候选并行策略为3个,其组合起来会形成三种传输方式,因此这三种传输方式对应三种传输代价,Ct1、Ct2及Ct3。类似地,图2中中间初始逻辑节点MN的候选并行策略为三个,中间初始逻辑节点MN的候选并行策略为3个,其组合起来会形成九种传输方式,因此这九种传输方式对应九种传输代价,Ct1、Ct2、Ct3、Ct4、Ct5、Ct6、Ct7、Ct8以及Ct9。同样,需要指出的是,为了叙述方便,尽管这里在不同连接边中采用了相同的传输代价标签,例如Ct1、Ct2,但是在不同的连接边所附的传输代价标签并不表示传输代价是一样。这里仅仅起到标记在同一连接边内不同候选并行策略组合下的不同传输代价的作用。在实际应用过程中,这些传输代价标签采用实际的传输代价值来体现。
返回图1,当逻辑节点遍历组件120在便利初始逻辑节点拓扑图中的每个初始逻辑节点过程中,发现了第一预定构形F1时,预定构型代价计算组件121针对第一预定构型,在第一连接边的第一初始逻辑节点IN的候选并行方案以及第二连接边的第二初始逻辑节点的ON候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价C对应的第一连接边候选传输代价Ct以及第二连接边的候选传输代价Ct,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和Cs,并选择最小第一代价和Csm作为每对第一初始逻辑节点IN的候选并行方案和第二初始逻辑节点ON的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价之一。
具体而言,结合图1中的第一预定构型F1,其包含初始逻辑节点C、D和G,分别对应第一初始逻辑节点IN、中间初始逻辑节点MN以及第二初始逻辑节点ON。初始逻辑节点C和D之间的连接边CD对应第一连接边Lin,初始逻辑节点D和G之间的连接边DG对应第二连接边Lout。连接边CD在初始逻辑节点C选择候选并行决策P-i(i是初始逻辑节点C的候选并行决策的编号)且初始逻辑节点D选择候选并行决策P-k(k是初始逻辑节点D的候选并行决策的编号)时,则连接边CD的传输代价为 CostCD[i][k],记(i,k)为连接边CD的决策组。这样的多个传输代价CostCD[i][k]对应连接边CD的决策组(i,k)被依次标记为连接边CD的候选传输代价C1、C2、…或者采用一种二维数组C11, C12, …, C1n, C21, C22, …, C2n, …,Cm1, Cm2, …, Cmn.进行标记。同样,连接边DG在初始逻辑节点D选择候选并行决策P-k(k是初始逻辑节点D的候选并行决策的编号)且初始逻辑节点G选择候选并行决策P-j(j是初始逻辑节点G的候选并行决策的编号)时,则连接边DG的传输代价为 CostDG [k] [j],记(k,j)为连接边DG的决策组。这样的多个传输代价CostDG [k] [j]对应接边DG的决策组(k,j)被依次标记为连接边DG的候选传输代价C1、C2、…。为此,在初始逻辑节点C、G以及D的候选并行决策被分别确定P-i、P-j、P-k时,预定构型代价计算组件121先获取连接边CD的传输代价为 CostCD[i][k]、连接边DG的传输代价为 CostDG [k] [j]以及作为中间初始逻辑节点MN的初始逻辑节点D的计算代价CostD[k],并进行求和,该和被记录为CostCG[i][j]。这样,初始逻辑节点C和G的候选并行决策被确定时,作为中间初始逻辑节点MN的初始逻辑节点D的候选并行决策数量是确定的,例如为3。这样,预定构型代价计算组件121针对一组被确定的候选并行决策定的初始逻辑节点C和G,获得到三个代价和CostCG[i][j],如下:
CostCD [i][1] + CostD[1] + CostDG [1][j].
CostCD [i][2] + CostD[2] + CostDG [2][j].
CostCD [i][3] + CostD[3] + CostDG [3][j].
预定构型代价计算组件121会从上述三个第一代价和CostCG[i][j]中选择和最小的值作为最小第一代价和Csm作为每对第一初始逻辑节点IN的候选并行方案和第二初始逻辑节点ON的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价之一。为此,当(i,j)为连接边CG的决策组,其对应的最小第一代价和Ctsm为
其中n为中间初始逻辑节点MN的候选并行决策数量。该公式表示从n组第一代价和中选择最小值作为(i,j)为连接边CG的决策组的第一候选传输代价之一。如果初始逻辑节点C和初始逻辑节点D的候选并行决策方式分别为X和Y个,则最终获得X×Y个第一候选传输代价,其中每个第一候选传输代价都是一组(i,j)CG的决策组对应的n个第一代价和Csm中的最小第一代价和。
随后,预定构型变换组件122将第一预定构型F1的第一连接边Lin、第二连接边Lout以及中间初始逻辑节点MN变换为所述第一连接边的第一初始逻辑节点IN与第二连接边的第二初始逻辑节点ON之间的第一合并连接边Lm1。图2显示了该变换的过程。图2的左侧为第一预定构型F1的原始结构,右侧为变换后拓扑结构。变换后的第一合并连接边Lm1具有三个第一候选传输代价Ctsm1、Ctsm2、Ctsm3。如上所述第一候选传输代价的数量等于每对第一初始逻辑节点IN的候选并行方案数量和第二初始逻辑节点ON的候选并行方案的数量的乘积。
如图2所示,通过预定构型变换组件122对第一预定构型F1进行这种变换,一方面减少了需要判断的逻辑节点,另一方面减少了需要判断的连接边,这就极大地降低了整个逻辑节点拓扑图进行总体的并行策略的决策的难度。而且通过这种局部最小化代价和的选择,为总体上尽可能选择比较小的并行代价提供了条件。
每当预定构型变换组件122针对第一预定构型F1进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第一预定构型F1。
返回参考图1,逻辑节点遍历组件120遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第二预定构型F2。第二预定构型F2为彼此之间存在多条第三连接边的成对初始逻辑节点。图3所示的是根据本公开的第二预定构型的示意图。如图3所示,所述第二预定构型F2具有第三初始逻辑节点IN与第四初始逻辑节点ON的成对初始逻辑节点,第三初始逻辑节点IN与第四初始逻辑节点ON之间具有至少两条或两条以上的第三连接边L1、L2等等。为方便描述,图3中仅仅显示了两条第三连接边。在实际情况中,可以存在三条或三条以上的第三连接边。图1中显示的初始逻辑节点拓扑图仅仅是示例性拓扑图一部分,在图1中没有显示出第二预定构型F2,但是这并不意味着所有的初始逻辑节点拓扑图都不存在第二预定构型F2。
如图3所示,第三初始逻辑节点IN与第四初始逻辑节点ON各自有三种候选并行策略,彼此之间存在两条第三连接边L1、L2,也可以更多的第三连接边,例如L3、L4(未示出)。在成对初始逻辑节点IN和ON的并行策略被确定的情况下,在确定的计算资源下,第三连接边L1、L2各自的传输代价也是确定的。由于第三初始逻辑节点IN与第四初始逻辑节点ON各自有三种候选并行策略,因此两者之间组合并行策略为9种,因此连接边L1、L2各自的候选传输代价也有9种,例如Ct1、Ct2、Ct3、…Ct8、Ct9,各自对应一组并行决策组合。
为此,在第三初始逻辑节点IN与第四初始逻辑节点ON各自的候选并行决策被分别确定P-i、P-j时,预定构型代价计算组件121先获取各个连接边L1和L2的传输代价为 CostL1[i] [j]和CostL2 [i] [j],然后计算成对输出逻辑节点IN和ON的一组(i, j)候选决策下的连接边的传输代价和。公式如下:
其中k为连接边的编号,z为成对输出逻辑节点IN和ON之间连接边的数量,Cts为传输代价和,也可以通过CostLm[i][j]来表示。针对成对输出逻辑节点IN和ON的一组(i, j)候选并行决策组合,形成一个传输代价和Cts,例如图3左边的Cts1、Cts2、Cts3、…Cts8、Cts9。
随后,预定构型变换组件122将第二预定构型F2的成对输出逻辑节点IN和ON之间连接边变换为成对输出逻辑节点IN和ON之间的第二合并连接边Lm2。图3显示了该变换的过程。图3的左侧为第二预定构型F2的原始结构,右侧为变换后拓扑结构。变换后的第二合并连接边Lm2具有九个第二候选传输代价Cts1、Cts2、Cts3、…Cts8、Cts9。如上所述第二候选传输代价的数量等于成对输出逻辑节点IN和ON各自的候选并行方案的数量的乘积。每个第二候选传输代价Cts都包含了成对输出逻辑节点IN和ON各自的候选并行方案的一种对应组合形式。
每当预定构型变换组件122针对第二预定构型F2进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第二预定构型F2。
返回参考图1,逻辑节点遍历组件120遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第三预定构型F3。图4所示的是根据本公开的第三预定构型的示意图。如图4所示,第三预定构型F3为仅具有第四连接边L1的末端初始逻辑节点EN,该末端初始逻辑节点EN通过第四连接边与依赖初始逻辑节点DN相连。所述依赖初始逻辑节点DN还通过连接边与其他初始逻辑节点相连,例如N1、N2。N1、N2之间可以有连接边,也可以没有连接边,因此,在图4中采用虚线将两者连接起来。为方便描述,图4中仅仅显示了依赖初始逻辑节点DN的两个其他初始逻辑节点,其实可以有更多个其他初始逻辑节点,也可以没有其他初始逻辑节点。图1中显示的初始逻辑节点拓扑图仅仅是示例性拓扑图一部分,在图1中没有显示出第三预定构型F3,但是这并不意味着所有的初始逻辑节点拓扑图都不存在第三预定构型F3。如图4所示,由于依赖初始逻辑节点DN与末端初始逻辑节点EN各自有三种候选并行策略,因此两者之间组合并行策略为9种,因此第四连接边L1的候选传输代价也有9种,例如Ct1、Ct2、Ct3、…Ct8、Ct9,各自对应一组并行决策组合。为此,在依赖初始逻辑节点DN与末端初始逻辑节点EN各自的候选并行决策被确定P-i、P-j时,预定构型代价计算组件121先获取依赖初始逻辑节点DN与末端初始逻辑节点EN在确定的候选并行决策下的各自的计算代价CostDN [i]和CostEN [j]以及第四连接边L1的传输代价 CostL1[i][j],然后计算CostEN [j]以及第四连接边L1的传输代价 CostL1[i] [j]两者之代价和。在依赖初始逻辑节点DN的候选并行决策P-i不变的情况下针对不同的末端初始逻辑节点EN各个候选并行决策P-j时,计算两者之代价和(当末端初始逻辑节点EN各个候选并行决策数量为三时)如下:
CostL1[i] [1]+ CostEN [1]
CostL1[i] [2]+ CostEN [2]
CostL1[i] [3]+ CostEN [3]
针对上述两者代价和,获取在依赖初始逻辑节点DN的候选并行决策P-i不变的情况下的最小代价和作为最小第三代价和,为此上述公式可以集中表述为如下公式:
其中n为末端初始逻辑节点EN各个候选并行决策数量。因次,预定构型代价计算组件121针对第三预定构型会计算获得n个最小第三代价和作为依赖初始逻辑节点DN的候选并行方案确定的情况下(P-i)的第三附加计算代价Costm[i]。
随后,预定构型变换组件122通过剪除第三预定构型F3的第四连接边L1以及末端初始逻辑节点EN,将第三预定构型F3变换一个新的单一逻辑节点DN, 并将第三附加计算代价附加到该依赖初始逻辑节点DN的计算代价上,形成该依赖初始逻辑节点DN的新的计算代价Cmi,即
如图4所示,通过预定构型变换组件122对第三预定构型F3进行这种变换,一方面减少了需要判断的逻辑节点,另一方面减少了需要判断的连接边,这就极大地降低了整个逻辑节点拓扑图进行总体的并行策略的决策的难度。而且通过这种局部最小化代价和的选择,为总体上尽可能选择比较小的并行代价提供了条件。
每当预定构型变换组件122针对第三预定构型F3进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第三预定构型F3。经过变换后的依赖初始逻辑节点DN的新的计算代价将作为后续处理的计算代价。
返回参考图1,当逻辑节点遍历组件120遍历所有待遍历的逻辑节点队列而未获得第一、第二、第三预定构型时,逻辑节点遍历组件120开始遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第四预定构型F4。图5所示的是根据本公开的第四预定构型F4的示意图。如图5所示,第四预定构型F4包括位于同一连通分量内彼此之间无连接边的第五初始逻辑节点N1和第六初始逻辑节点N2以及至少一个属于第五初始逻辑节点和第六初始逻辑节点的共同的第七初始逻辑节点N3、N4、N5、N6等等。此外,第四预定构型F4也可以包括只与第五初始逻辑节点N1相连的初始逻辑节点N7。第四预定构型F4也可以包括只与第六初始逻辑节点N2相连的初始逻辑节点N8。任意两个初始逻辑节点之间的连接边为L,例如N1与N4之间的连接边为L14,同样N2与N5之间的连接边为L25,以此类推。
逻辑节点遍历组件120在遍历拓扑图中的初始逻辑节点获取第四预定构型F4过程中,构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策的数量之乘积不能超过预定的阈值,例如128、64等。如果不进行阈值限定,在一个完全拓扑结构图里,第四预定构型F4的遍历会被反复进行,最终导致完全拓扑结构图形成一个逻辑节点,导致遍历时间过长,而使得最终的并行决策的确定变得漫长。另一方面,由于在构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2在合并的过程中,会产生大量的标签数据,例如计算代价、传输代价、代价和,因此如果构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策的数量过多,也将导致需要更多的内存空间来存储这些标签数据,这会导致合并后的拓扑图中的节点和连接边占用数据空间的过大。例如合并节点占用空间大小为O(阈值),合并后连接边占用空间大小为O(阈值的平方)。因此,对预定构型F4进行候选并行决策树进行阈值限定也是减少数据空间占用的需要。对于初始逻辑节点和初始的连接边可以进行限制,输入备选决策数量大于阈值的节点是可以接受的。不过需要指出的是,该合并节点不能再跟别的节点进行合并。因此,如果不进行阈值限定,第四预定构型F4的点合并会一直进行下去,最后生成一个备选决策数量为所有原节点备选决策数量的乘积的大节点,这是不可取的。
可选择地,逻辑节点遍历组件120在遍历拓扑图中的初始逻辑节点获取第四预定构型F4过程中,要遍历选择直接邻域重合度尽可能高的第四预定构型F4。直接邻域是指一个逻辑节点以及与其连接的所有逻辑节点的集合。对于构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2,如果他们备选决策的积小于等于阈值O,可以通过位运算的集合比较算法来找出两者之间直接邻域的重合度,记录下重合度最高的一对节点用于节点合并。重合度越高,连接边合并得就越多。因此,逻辑节点遍历组件120优先遍历获取满足阈值限定情况的重合度最高的第四预定构型F4。
预定构型代价计算组件121在第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价,并将两个候选计算代价之和作为第四代价和。
如果第五初始逻辑节点N1有m种备选决策{0, 1, 2, …, m-1}和第六初始逻辑节
点N2有n种备选决策{0, 1, 2, …, n-1},则在在第五初始逻辑节点N1和第六初始逻辑节
点N2的候选并行方案确定的情况下,例如两者的候选并行决策组合为(i,j),其对应的组合
编号为k,其中k=i*n+j。此时,第五初始逻辑节点N1的候选计算代价为CostN1[i],第六初始
逻辑节点N2的候选计算代价为CostN2[j],两者的并行决策组合的代价和记为
其中 k/n 表示k除以n的商,k%n表示k除以n的余数。预定构型代价计算组件121将第五初始逻辑节点N1和第六初始逻辑节点N2的两个候选传输代价之和作为第四代价和。
如图5所示,第七初始逻辑节点N3、N4、N5、N6中每个都同时与第五初始逻辑节点N1和第六初始逻辑节点N2相连。以第七初始逻辑节点N4为例,其与第五初始逻辑节点N1和第六初始逻辑节点N2的连接边为L14和L24。预定构型代价计算组件121在第五初始逻辑节点N1和六初始逻辑节点N2的并行决策组合确定的情况下(例如P-i,P-j),对于第七初始逻辑节点N4的编号为r的任意一个候选并行决策,其连接边为L14和L24的传输代价在计算资源确定的情况下也是可以确定获得的,即CostL14和CostL24。针对对应的组合编号为k的两者的候选并行决策组合为(i,j),其连接边为L14和L24的传输代价之和可以一般性表达如下:
CostLmr[k][r] = CostL14 [k/n][ r] + CostL24 [k%n][ r]
其中 k/n 表示k除以n的商,k%n表示k除以n的余数,r为第七初始逻辑节点的候选并行决策的编号。
此外,如图5所示,第四预定构型F4也可以包括只与第五初始逻辑节点N1相连的初始逻辑节点N7。第四预定构型F4也可以包括只与第六初始逻辑节点N2相连的初始逻辑节点N8。初始逻辑节点N7作为一种第八初始逻辑节点,其与第五初始逻辑节点N1之间的连接边L17的传输代价并不改变。但是针对第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策组合(i,j)而言,在第八初始逻辑节点N7的候选并行决策编号为s的连接边L17的候选传输代价可以表达为:
CostLms[k][s] = Cost L17 [k/n][s]
其中, k为第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策组合(i,j)的编号的, s为第八初始逻辑节点N7的候选并行决策编号,n是第六初始逻辑节点N2的候选并行决策的数量,k/n 表示k除以n的商。
初始逻辑节点N8作为一种第八初始逻辑节点,其与第六初始逻辑节点N2之间的连接边L28的传输代价并不改变。但是针对第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策组合(i,j)而言,在第八初始逻辑节点N8的候选并行决策编号为s的连接边L28的候选传输代价作为第四候选传输代价可以表达为:
CostLms[k][s] = Cost L28 [k%n][s]
其中, k为第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策组合(i,j)的编号的, s为第八初始逻辑节点N8的候选并行决策编号,n是第六初始逻辑节点N2的候选并行决策的数量,k%n 表示k除以n的余数。
随后,所述预定构型变换组件122将第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2合并为第一合并逻辑节点以及将第五连接边(例如L14)和第六连接边(例如L24)合并为第三合并连接边(例如Lm4),并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。此外,还可以将第四候选传输代价仅仅与第五初始逻辑节点N1和第六初始逻辑节点N2之一相连的连接边L17(或Lm7)或连接边L28(或Lm8)作为其候选传输代价之一。
图5中的右侧没有示意性在大括号中列出各个变换后的逻辑节点或连接边的候选计算代价或传输代价,但是都实际存在。一般遍历预定构型的顺序是第一预定构型F1、第二预定构型F2、第三预定构型F3。可选择地,前三种预定构型也可以不分先后顺序进行遍历搜索。在无法遍历出前三种预定构型时才进行第四预定构型F4的遍历。简而言之,在无法遍历出前三种预定构型并且变换后的拓扑该图的某个连通分量里仍有2个以上的节点,也就是在该连通分量里,每一个逻辑节点的度数都大于等于3的情况下,就进行遍历获取第四预定构型F4,以便对拓扑图进行进一步简化处理。
图6所示的是根据本公开的第五预定构型F5的示意图。如图6所示,第五预定构型F5与第四预定构型F4之间的唯一区别在于第五初始逻辑节点N1和第六初始逻辑节点N2存在第七连接边L12。预定构型代价计算组件121在第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行方案确定的情况下,获取第五初始逻辑节点N1和第六初始逻辑节点N2的候选计算代价以及对应第七连接边的传输代价,并将两个候选计算代价以及对应第七连接边的传输代价之和作为第五代价和。
具体而言,如果第五初始逻辑节点N1有m种备选决策{0, 1, 2, …, m-1}和第六
初始逻辑节点N2有n种备选决策{0, 1, 2, …, n-1},则在第五初始逻辑节点N1和第六初
始逻辑节点N2的任意候选并行方案组合确定的情况下,例如两者的候选并行决策组合为
(i,j),其对应的组合编号为k,其中k=i*n+j。此时,第五初始逻辑节点N1的候选计算代价为
CostN1[i],第六初始逻辑节点N2的候选计算代价为CostN2[j],第七连接边L12的传输代价
为CostL12[i] [j]。两者的并行决策组合的计算代价以及第七连接边的传输代价的和记为:
其中 k/n 表示k除以n的商,k%n表示k除以n的余数。预定构型代价计算组件121将第五初始逻辑节点N1和第六初始逻辑节点N2的两个候选传输代价以及第七连接边的传输代价之和作为第五代价和。其它处理方式与针对第四预定构型的处理方式完全一样,在此不再赘述。
如上所述,对于给定的整个计算图或其一部分的计算子图,给定了每个逻辑节点的候选并行决策,并且计算出了每个逻辑节点在不同并行决策下的计算代价以及每条连接边在端点不同并行决策下的传输代价,给定了计算资源(例如计算卡或者计算设备的数量)。假定该计算子图内每一段程序都会在各卡或者各个设备上同时进行,那么运行完整个计算子图所需要的时间约等于各卡运行完所有程序的时间。通过均摊代价方式,当所有逻辑节点都决定了一个并行决策时,各卡的计算代价以及卡间的传输代价都是一样的。为此,选定一个最终的并行决策,该最终的并行决策决定了每一个逻辑节点该取什么样的并行决策,使得每一张卡上总的代价尽可能小和或最小。
如上所述,当所述预定构型变换组件122进行任何变换后都会将所变换获得逻辑节点作为初始逻辑节点排列在被遍历的初始罗节点队列之后。当逻辑节点遍历组件120对所有初始逻辑节点遍历过两遍后,未在发现任何预定构型时,将结束遍历和变换操作,并输出变换结果逻辑节点拓扑图。
通过上述对四种预定构型的变换,可以极大可能地缩小并行决策的备选空间,并且一定会缩小计算图的拓扑结构,所以能执行最终进行并行决策的次数一定是有限的。如果M是初始逻辑节点的备选决策数量的最大值(每个初始逻辑节点的候选并行决策数量可能不一样) 与阈值O的之间最大值,则进行四种预定构型的变换后会各自获得如下表所示结果:
上表中的l是第四预定结构F4的两个初始逻辑节点N1和N2的度数之和。
随后,并行决策组件123针对变换结果逻辑节点拓扑图或其每个拓扑子图,遍历其中的每个最终逻辑节点或每条最终连接边,通过局部贪心策略,获取所述变换结果逻辑节点拓扑图或其每个拓扑子图的最小代价和,并基于所获得的变换结果逻辑节点拓扑图的总最小代价获得该变换结果逻辑节点拓扑图所对应的并行方案。最后,逻辑节点拓扑图输出组件130基于并行决策组件123做出的最终并行决策,进行回溯,逐级展开初始逻辑节点的确定并行决策,从而输出展开逻辑节点拓扑图131,从而获得基于最终并行决策而获得初始逻辑节点的确定并行方式。
当变换结果逻辑节点拓扑图不能再被缩减时,运用局部贪心策略来得到最终的解。局部贪心策略就是每次取一个计算图的逻辑节点子集,遍历他们所有备选决策组,取出使得计算图总代价最小的一个决策组。对不同的逻辑节点子集操作多次使得总代价逐渐降低。可选择通过点局部贪心策略就是循环遍历整个计算图直到达到一定次数n次或者某次遍历计算图时代价不再减少。n可以取变换结果逻辑节点拓扑图的逻辑节点数量。具体而言,点邻域代价为一个逻辑节点在它的一个备选决策下,节点的代价与它的所有边的代价之和。接着进行点贪心操作,点贪心操作就是对一个逻辑节点遍历其所有的备选决策,取使得使点邻域代价最小的备选决策。最后,进行执行点局部贪心策略,点局部贪心策略的一次计算图遍历就是遍历该计算图的所有节点,对每个节点执行点贪心操作。可选择地可以采用边局部贪心策略。边局部贪心策略就是循环遍历整个计算图直到达到一定次数n次或者某次遍历计算图时代价不再减少。n可以取当前计算图的逻辑节点数量。首先确定边邻域代价为一条边在它的两个端点的一个备选决策组下,两端点的点邻域代价之和再减去边的代价。因为在计算两端点的点邻域代价时当前边被计算了两次,而对每个拓扑结构都只需要计算一次。接着,进行边贪心操作,边贪心操作就是对一条边遍历其两个端点所有的备选决策组,取使得这条边的边邻域代价最小的备选决策组。最后,边局部贪心策略的一次计算图遍历就是遍历该计算图的所有边,对每条边执行边贪心操作。
对一个计算图的逻辑节点子集进行一次贪心操作的复杂度为O(eMp),p为该子集的逻辑节点数量,e是该逻辑节点子集的直接邻域包含连接边的数量。在点贪心操作时e≤n, 在边贪心操作时e≤2n.
优化率=(原代价- 应用算法后代价)/(原代价- 最小能达到的代价)。优化率是测试10组随机生成的计算图的平均结果。测试数据如下:
在对第一预定构型F1和第二预定构型F2进行变换后,缩小备选空间,因为每次都至少消除1条边,所以决策复杂度为O(EM3),E为初始计算图边的最大值。
如上表所显示的,局部贪心决策部分,因为边局部贪心决策的优化率更高,所以尽可能使用边局部贪心决策。对于只有一个逻辑节点的连通分量,使用点局部贪心决策(因为该连通分量没有边),对于有多个逻辑节点的连通分量,优先使用边局部贪心决策。
局部贪心策略可以作用在任何一个计算图上得到次优解的算法的常规算法,在此不进行赘述。如果最终的变换结果逻辑节点拓扑图的每一个连通分量的逻辑节点数不超过3个,那么局部贪心策略会得到最优解。
相对而言,全局算法的复杂度为O(EM3+n3M2+n4M),其中n为简化后计算图的逻辑节点个数而非初始计算图的逻辑节点个数。
可选择地,对于给定的整个计算图或其一部分的计算子图,给定了每个逻辑节点的候选并行决策,并且计算出了每个逻辑节点在不同并行决策下的计算代价以及每条连接边在端点不同并行决策下的传输代价,给定了计算资源(例如计算卡或者计算设备的数量)。此时的代价可以被认为是一个向量,它的每一个元素表示它在不同计算卡上的代价。假定该计算子图内每一个逻辑节点会单独在一个计算卡上运行程序,一个计算卡在运行完一个逻辑节点后才可以运行下一个逻辑节点,那么运行完整个计算子图所需要的时间就是所有计算卡都运行完程序的时间,也就是代价向量的最大值。通过获得最小化最大值做出一个最终的并行决策,该并行决策决定了每一个逻辑节点该在哪个计算卡里运行,使得所有计算卡总代价的最大值最小。
图7所示的是根据本公开的用于分布式数据处理的并行决策系统200的原理示意图。与图1所示的系统100的不同之处在于使用了一种专门的并行决策签名系统,即SBP签名系统。作为已经由用户配置了SBP签名的逻辑节点,例如初始逻辑节点A、E以及C,其仅仅具有唯一的SBP签名,例如初始逻辑节点A的SBP-5,初始逻辑节点C的SBP-2以及初始逻辑节点E的SBP-3。在未确定唯一SBP签名的情况下,初始逻辑节点通常包含有其固有的一些候选SBP签名。如图6中的初始逻辑节点B,其具有多个候选SBP签名,例如三个,包括SBP-1、SBP-2以及SBP-3。其他初始逻辑节点也各自具有不同的候选SBP签名,在此不一一列出。不同的初始逻辑节点根据其具体执行的运算操作不同,会有不同的固定的候选SBP签名。
SBP签名是应用在一种分布式数据处理系统中的签名。分布式数据处理系统中,由于经常存在数据并行、模型并行以及混合并行以及流式并行等的情形,因此,经常会存在相邻的逻辑节点的任务将被同时部署到不同的计算设备上,因此在实际数据处理过程中,各个计算设备之间会对中间参数进行交换,会导致大量的传输开销。为此,为了减少数据传输开销,需要在初始逻辑节点拓扑图211的基础上,进一步生成更多的逻辑节点,以便完善逻辑节点拓扑图,尤其是减少上下游逻辑节点之间的传输开销,需要使得上下游逻辑节点的数据分布方式所带来的变化最小。为此,本公开为了获得比较好的下游逻辑节点,针对每个逻辑节点指定了逻辑分布式签名。所述逻辑分布式签名是采用张量的分布式描述符对逻辑节点的签名,每个张量的分布式描述符描述了每个张量的在整个计算系统中的分布方式,主要包括分割(SPLIT)张量描述符、广播(BROADCAST)张量描述符以及部分值(PARTIALVALUE)张量描述符。
具体而言,分割(SPLIT)张量描述符就是描述一个张量的分割方式,例如将一个数据块根据用户的描述在指定的维度上进行分割,并分布到不同的计算设备上进行指定的计算处理。如果一个数据块为二维数据块,则该数据块在其第0维被切割时,则该数据块所形成的一批数据的数据张量的分布式描述符为S(0),则每个逻辑数据块在其输入端获得这种数据张量的分布式描述符都为S(0)。同样,如果一个数据块为二维数据块,则该数据块在其第1维被切割时,则该数据块所形成的一批数据的数据张量的分布式描述符为S(1),则每个逻辑数据块在其输入端获得这种数据张量的分布式描述符都为S(1)。类似地,如果待处理的任务数据的维度为更多维度,则会有更多的分布式描述符,例如S(2)、S(3)…等等。这类所提到的数据可以是被处理的数据或模型。如果数据本身被切割,则在分布式数据处理系统上形成数据并行处理,如果模型被分割,则在分布式数据处理系统上会形成模型并行处理。如果逻辑节点的输入为这种分割(SPLIT)张量描述符,则在实际数据处理过程中,如果一个张量的数据大小为T,而该张量将被分布到四张计算卡上进行数据并行计算,则每张卡上分配到的数据量为四分之一的数据,整个四张卡上的数据量则为T。
广播(BROADCAST)张量描述符是用来描述一个张量以广播方式在分布式系统中进行发布的方式。通常,对于仅仅进行数据并行的数据处理系统,模型数据通常被广播到各个计算设备,因此对于被输入到逻辑节点的广播数据采用广播张量描述符进行描述。在实际数据处理过程中,被广播的数据,在每张实际计算卡上的数据块大小都是相同的。
部分值(PARTIAL VALUE)张量描述符表示一个逻辑节点的输入或输出张量为多个同类张量的部分值。这些部分值包括部分和(Ps)、部分积(Pm)、部分“与”结果、部分最大以及部分最小。由于通常会为了对数据进行数据并行处理,因此,在不同设备上对数据的处理是对部分数据的处理。例如有些张量为S(0)或S(1),则在一些计算设备上获得结果张量为S(0),这些部分计算设备上的结果张量合并起来就是部分值张量。将所有设备上的同类数据合并起来才是最后的输出结果。
上述各种张量的分布式描述符代表了这些张量在分布式计算系统中的分布方式,而这些张量无论是作为逻辑节点的输入和输出,其各自的分布方式也描述了逻辑节点对操作数据的分布描述。为了描述方便,本公开将这种分布式描述符简称为“SBP描述符”。
为此,随着初始逻辑节点拓扑图211的生成,本公开的初始逻辑节点,也就是一些运算节点也具备了各个输入和输出的数据分布式描述符,这些输入和输出分布式描述符形成了对逻辑节点的一种签名,即采用张量的分布式描述符对运算逻辑节点的签名。为了方便表述,采用这三种分布式描述符的英文首字母来简称这种签名为“SBP签名”。
根据每个分布式计算系统中用户对计算任务的描述和数据并行的要求,这种描述符会包括至少三种S(0)、B以及P。如果对数据和模型存在多种分割方式,则每增加一种分割方式,则增加一种描述符。针对每个逻辑节点,其签名都包含了这些描述符的各种组合方式。因此,在根据本公开分布系统中,至少有三种分布式描述符,通常为有四种分布式描述符,例如如下四种SBP描述符,S(0)、S(1)、P以及B。根据张量维度数量不同,可以有更多分布式描述符。如果为四种SBP描述符,则可以按照输入输出的排列组合方式形成多种SBP签名。下面列出了一些SBP签名的实例: (S(0), B)→S(0),(S(1), B)→S(1),P→P,B→B,(S(0),S(1))→P,S(0)→P,S(0)→S(0),S(0)→S(1),P→B等等。所有SBP签名是各种SBP描述符组合结果。对于矩阵乘法逻辑节点,如果其输入张量是在第一维上面切割,其输出结果张量也是得到第一维上切割。综上所述,S、B、P是用于描述数据块在数据处理系统中的分布的描述符,而SBP签名利用多个SBP描述符描述逻辑节点的任务操作。每个数据块可以有多种SBP描述符,而每个逻辑节点所代表的运算方式可以多种SBP 签名的情形。例如,图6所示的SBP-1可以是(S(0), B)→S(0)这种签名形式,而SBP-2可以是(S(1), B)→S(1)这种签名形式。实际应用中,不同签名形式可以具有不同的编号,这里给出的编号仅仅是为了描述的方便,并不意味着需要对每个签名都赋予一个编号,可以完全没有编号,签名的不同形式彼此之间不需要编号就可以彼此区分。
可以基于用于的任务描述赋予每个初始逻辑节点如上所述的SBP签名。通常的任务逻辑节点是一些运算操作节点,其执行特定的运算操作,因此其具有特定的候选SBP签名。需要指出的是,并不是每个任务逻辑节点所具备的SBP签名都一样,通常进行乘法操作的任务逻辑节点其SBP签名的输入张量不包含部分和张量,因此其输入张量的SBP描述符不包含分布式描述符P。对于执行加法操作的任务逻辑节点的候选SBP签名则可以包括各种SBP描述符彼此之间或自己之间的任意组合。例如执行矩阵乘法的任务逻辑节点,在仅有数据并行的情况下,其候选SBP签名通常为(S(0), B)→S(0),(S(1), B)→S(1), (S(0), S(1))→P等,但不仅此这些,随着技术的发展,以前一些不适合矩阵乘法的签名也可以应用到矩阵乘法,此处仅仅是举例。因此,每个初始逻辑节点基于所述任务配置数据附有候选逻辑分布式签名集合。所述候选逻辑分布式签名集合中的每个逻辑分布式签名指定了其所属的初始逻辑节点的每个输入张量的分布式描述符以及每个输出的张量的分布式描述符。
尽管上面给出了如何在一些候选SBP签名确定最终SBP签名的常规情况,但是在一些特定的情况下,对于某些逻辑节点,在用户有特殊的配置的情况下或有用户指定的情况下,这些逻辑节点只有用户指定的SBP签名,因此其下游的逻辑节点将基于这种特别指定的上游逻辑节点进行SBP签名的确定。因此,可以采用图7中的SBP签名来替代图1中的并行策略签名P。需要指出的是,图7中初始逻辑节点拓扑图211、逻辑节点遍历组件220、预定构型代价计算组件221、预定构型变换组件222、并行决策组件223、逻辑节点拓扑图输出组件230与图1中的初始逻辑节点拓扑图111、逻辑节点遍历组件120、预定构型代价计算组件121、预定构型变换组件122、并行决策组件123、逻辑节点拓扑图输出组件130的描述对应相同,因此不再赘述。图7中的变换结果逻辑节点拓扑图与展开逻辑节点拓扑图231与图1中的变换结果逻辑节点拓扑图与展开逻辑节点拓扑图131也相同,不同的是采用不同的并行签名方式。
通过根据本公开的用于分布式数据处理的并行决策系统和方法,能够从全局角度使得分布式数据处理的并行决策所面对的解空间尽可能缩小,提高了进行自动并行决策的可行性,降低了自动并行决策难度,并且能够使得并行决策所获得的并行结果具有较低的计算代价和传输代价,从而尽可能提高了固定计算资源面对相同计算任务的计算效率,从而加快了数据处理速度。更为重要地是实现了在尽可能接近最低传输代价的基础上,实现并行决策的自动化,极大地降低了人工调试的成本。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (8)
1.一种用于分布式数据处理的并行决策系统,包括:
初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
逻辑节点遍历组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的预定构型,所述预定构型包括第一预定构型和/或第二预定构型,其中第一预定构型为具有第一连接边和第二连接边的中间初始逻辑节点,第二预定构型为彼此之间存在多条第三连接边的成对初始逻辑节点;
预定构型代价计算组件,针对第一预定构型,在第一连接边的第一初始逻辑节点的候选并行方案以及第二连接边的第二初始逻辑节点的候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价对应的第一连接边候选传输代价以及第二连接边的候选传输代价,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和,并选择最小第一代价和作为每对第一初始逻辑节点的候选并行方案和第二初始逻辑节点的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价;以及针对第二预定构型,在成对初始逻辑节点的第三初始逻辑节点的候选并行方案以及成对初始逻辑节点的第四初始逻辑节点的候选并行方案确定的情况下,对成对初始逻辑节点之间所有连接边的候选传输代价进行求和,获得成对初始逻辑节点之间的候选传输代价的第二代价和作为第二候选传输代价;
预定构型变换组件,用于将第一预定构型的第一连接边、第二连接边以及中间初始逻辑节点变换为所述第一连接边的第一初始逻辑节点与第二连接边的第二初始逻辑节点之间的第一合并连接边,并将针对第一预定构型计算获得的所有第一候选传输代价赋予该第一合并连接边作为该第一合并连接边的候选传输代价之一,以及将第二预定构型的所有连接边变换为成对初始逻辑节点的第二合并连接边,并将针对第二预定构型计算获得第二候选传输代价赋予成对初始逻辑节点的第二合并连接边作为该第二合并连接边的候选传输代价之一;以及
并行决策组件,针对经过预定构型变换组件执行变换后获得的变换结果逻辑节点拓扑图或其每个拓扑子图,多次重复遍历其中的每个最终逻辑节点或每条最终连接边,通过局部贪心策略,获取所述变换结果逻辑节点拓扑图或其每个拓扑子图的最小代价和,并基于所获得的变换结果逻辑节点拓扑图的总最小代价获得该变换结果逻辑节点拓扑图所对应的并行方案。
2.根据权利要求1所述的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第三预定构型,第三预定构型为仅具有第四连接边的末端初始逻辑节点,其中所述预定构型代价计算组件针对第三预定构型,在末端初始逻辑节点通过所述第三预定构型的第四连接边所依附的依赖初始逻辑节点的候选并行方案确定的情况下,获取末端初始逻辑节点的每个候选计算代价以及该末端初始逻辑节点的候选计算代价对应的第四连接边候选传输代价,并获取依赖初始逻辑节点的候选并行方案确定的情况下两者之第三代价和,并选择最小第三代价和作为依赖初始逻辑节点的候选并行方案确定的情况下的第三附加计算代价,以及所述预定构型变换组件剪除第三预定构型的第四连接边以及末端初始逻辑节点,并将第三附加计算代价附加到该依赖初始逻辑节点的计算代价上。
3.根据权利要求1所述的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第四预定构型,第四预定构型包括位于同一连通分量内彼此之间无连接边的备选并行决策数量的乘积不超过给定阈值的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算组件针对第四预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价,并将两个候选计算代价之和作为第四代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换组件将第四预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第一合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
4.根据权利要求1所述的用于分布式数据处理的并行决策系统,其中所述预定构型还包括第五预定构型,第五预定构型包括位于同一连通分量内彼此之间有第七连接边的备选并行决策数量的乘积不超过给定阈值的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算组件针对第五预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价以及两者之间连接边的传输代价,并将两个候选计算代价以及对应的第七连接边的传输代价之和作为第五代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换组件将第五预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第二合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第五预定构型计算获得的第五代价和赋予第二合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
5.一种用于分布式数据处理的并行决策方法,包括:
初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
逻辑节点遍历步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的预定构型,所述预定构型包括第一预定构型和/或第二预定构型,其中第一预定构型为具有第一连接边和第二连接边的中间初始逻辑节点,第二预定构型为彼此之间存在多条第三连接边的成对初始逻辑节点;
预定构型代价计算步骤,针对第一预定构型,在第一连接边的第一初始逻辑节点的候选并行方案以及第二连接边的第二初始逻辑节点的候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价对应的第一连接边候选传输代价以及第二连接边的候选传输代价,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和,并选择最小第一代价和作为每对第一初始逻辑节点的候选并行方案和第二初始逻辑节点的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价;以及针对第二预定构型,在成对初始逻辑节点的第三初始逻辑节点的候选并行方案以及成对初始逻辑节点的第四初始逻辑节点的候选并行方案确定的情况下,对成对初始逻辑节点之间所有连接边的候选传输代价进行求和,获得成对初始逻辑节点之间的候选传输代价的第二代价和作为第二候选传输代价;
预定构型变换步骤,用于将第一预定构型的第一连接边、第二连接边以及中间初始逻辑节点变换为所述第一连接边的第一初始逻辑节点与第二连接边的第二初始逻辑节点之间的第一合并连接边,并将针对第一预定构型计算获得的所有第一候选传输代价赋予该第一合并连接边作为该第一合并连接边的候选传输代价之一,以及将第二预定构型的所有连接边变换为成对初始逻辑节点的第二合并连接边,并将针对第二预定构型计算获得第二候选传输代价赋予成对初始逻辑节点的第二合并连接边作为该第二合并连接边的候选传输代价之一;以及
并行决策步骤,针对经过预定构型变换步骤执行变换后获得的变换结果逻辑节点拓扑图或其每个拓扑子图,遍历其中的每个最终逻辑节点或每条最终连接边,通过局部贪心策略,获取所述变换结果逻辑节点拓扑图或其每个拓扑子图的最小代价和,并基于所获得的变换结果逻辑节点拓扑图的总最小代价获得该变换结果逻辑节点拓扑图所对应的并行方案。
6.根据权利要求5所述的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第三预定构型,第三预定构型为仅具有第四连接边的末端初始逻辑节点,其中所述预定构型代价计算步骤针对第三预定构型,在末端初始逻辑节点通过所述第三预定构型的第四连接边所依附的依赖初始逻辑节点的候选并行方案确定的情况下,获取末端初始逻辑节点的每个候选计算代价以及该末端初始逻辑节点的候选计算代价对应的第四连接边候选传输代价,并获取依赖初始逻辑节点的候选并行方案确定的情况下两者之第三代价和,并选择最小第三代价和作为依赖初始逻辑节点的候选并行方案确定的情况下的第三附加计算代价,以及所述预定构型变换步骤剪除第三预定构型的第四连接边以及末端初始逻辑节点,并将第三附加计算代价附加到该依赖初始逻辑节点的计算代价上。
7.根据权利要求5所述的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第四预定构型,第四预定构型包括位于同一连通分量内彼此之间无连接边的备选并行决策数量的乘积不超过给定阈值的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算步骤针对第四预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价,并将两个候选计算代价之和作为第四代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换步骤将第四预定构型的第五初始逻辑节点和第六初始逻辑节点合并为第一合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
8.根据权利要求5所述的用于分布式数据处理的并行决策方法,其中所述获取所述初始逻辑节点拓扑图中的预定构型还包括获取第五预定构型,第五预定构型包括位于同一连通分量内彼此之间有第七连接边的备选并行决策数量的乘积不超过给定阈值的第五初始逻辑节点和第六初始逻辑节点以及至少一个连接到第五初始逻辑节点和第六初始逻辑节点的第七初始逻辑节点,其中所述预定构型代价计算步骤针对第五预定构型,在第五初始逻辑节点和第六初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点的候选计算代价以及两者之间连接边的传输代价,并将两个候选计算代价以及对应的第七连接边的传输代价之和作为第五代价和,以及在第五初始逻辑节点、第六初始逻辑节点以及第七初始逻辑节点的候选并行方案确定的情况下,获取第五初始逻辑节点和第六初始逻辑节点各自与所述第七初始逻辑节点之间的第五连接边和第六连接边的候选传输代价,并将两个候选传输代价之和作为第三候选传输代价;以及所述预定构型变换步骤将第五预定构型的第五初始逻辑节点、第六初始逻辑节点以及第七连接边合并为第二合并逻辑节点、以及将第五连接边和第六连接边合并为第三合并连接边,并将针对第五预定构型计算获得的第五代价和赋予第二合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999246.XA CN111930519B (zh) | 2020-09-22 | 2020-09-22 | 用于分布式数据处理的并行决策系统及其方法 |
PCT/CN2021/103003 WO2022062529A1 (zh) | 2020-09-22 | 2021-06-29 | 用于分布式数据处理的并行决策系统及其方法 |
US18/125,020 US11782724B2 (en) | 2020-09-22 | 2023-03-22 | Parallel decision system and method for distributed data processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010999246.XA CN111930519B (zh) | 2020-09-22 | 2020-09-22 | 用于分布式数据处理的并行决策系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930519A CN111930519A (zh) | 2020-11-13 |
CN111930519B true CN111930519B (zh) | 2020-12-15 |
Family
ID=73335027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010999246.XA Active CN111930519B (zh) | 2020-09-22 | 2020-09-22 | 用于分布式数据处理的并行决策系统及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11782724B2 (zh) |
CN (1) | CN111930519B (zh) |
WO (1) | WO2022062529A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930519B (zh) * | 2020-09-22 | 2020-12-15 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
CN112486615B (zh) * | 2020-11-30 | 2023-07-04 | 重庆誉存大数据科技有限公司 | 基于拓扑路径的决策流执行方法、装置、设备及存储介质 |
CN112799852B (zh) * | 2021-04-12 | 2021-07-30 | 北京一流科技有限公司 | 逻辑节点的多维sbp分布式签名决策系统及其方法 |
CN114186687B (zh) * | 2022-02-17 | 2022-05-17 | 之江实验室 | 一种面向神经网络模型计算的中间表示方法和装置 |
CN115208954B (zh) * | 2022-06-07 | 2024-04-26 | 北京一流科技有限公司 | 用于分布式数据处理系统的并行策略预置系统及其方法 |
CN116962438B (zh) * | 2023-09-21 | 2024-01-23 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、电子设备及可读存储介质 |
CN117032938B (zh) * | 2023-10-08 | 2024-01-09 | 北京燧原智能科技有限公司 | 一种算子的并行调度方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799945A (zh) * | 2012-06-21 | 2012-11-28 | 浙江工商大学 | 面向业务过程执行成本最小化的集成资源数量配置和任务分配优化方法 |
CN104504018A (zh) * | 2014-12-11 | 2015-04-08 | 浙江大学 | 基于浓密树和自顶向下的大数据实时查询优化方法 |
US9213574B2 (en) * | 2010-01-30 | 2015-12-15 | International Business Machines Corporation | Resources management in distributed computing environment |
CN110955734A (zh) * | 2020-02-13 | 2020-04-03 | 北京一流科技有限公司 | 逻辑节点的分布式签名决策系统及其方法 |
CN111159426A (zh) * | 2019-12-30 | 2020-05-15 | 武汉理工大学 | 一种基于图卷积神经网络的产业图谱融合方法 |
US20200226144A1 (en) * | 2019-01-10 | 2020-07-16 | Citrix Systems, Inc. | Resource scaling for distributed database services |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501377B2 (en) * | 2014-03-18 | 2016-11-22 | International Business Machines Corporation | Generating and implementing data integration job execution design recommendations |
US9424160B2 (en) * | 2014-03-18 | 2016-08-23 | International Business Machines Corporation | Detection of data flow bottlenecks and disruptions based on operator timing profiles in a parallel processing environment |
US10547514B2 (en) * | 2018-02-22 | 2020-01-28 | Netspeed Systems, Inc. | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation |
US11216314B2 (en) * | 2018-11-02 | 2022-01-04 | EMC IP Holding Company LLC | Dynamic reallocation of resources in accelerator-as-a-service computing environment |
CN111666151B (zh) * | 2020-02-13 | 2023-11-03 | 北京一流科技有限公司 | 拓扑图转换系统及其方法 |
CN111930519B (zh) * | 2020-09-22 | 2020-12-15 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
-
2020
- 2020-09-22 CN CN202010999246.XA patent/CN111930519B/zh active Active
-
2021
- 2021-06-29 WO PCT/CN2021/103003 patent/WO2022062529A1/zh active Application Filing
-
2023
- 2023-03-22 US US18/125,020 patent/US11782724B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213574B2 (en) * | 2010-01-30 | 2015-12-15 | International Business Machines Corporation | Resources management in distributed computing environment |
CN102799945A (zh) * | 2012-06-21 | 2012-11-28 | 浙江工商大学 | 面向业务过程执行成本最小化的集成资源数量配置和任务分配优化方法 |
CN104504018A (zh) * | 2014-12-11 | 2015-04-08 | 浙江大学 | 基于浓密树和自顶向下的大数据实时查询优化方法 |
US20200226144A1 (en) * | 2019-01-10 | 2020-07-16 | Citrix Systems, Inc. | Resource scaling for distributed database services |
CN111159426A (zh) * | 2019-12-30 | 2020-05-15 | 武汉理工大学 | 一种基于图卷积神经网络的产业图谱融合方法 |
CN110955734A (zh) * | 2020-02-13 | 2020-04-03 | 北京一流科技有限公司 | 逻辑节点的分布式签名决策系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111930519A (zh) | 2020-11-13 |
US20230229449A1 (en) | 2023-07-20 |
US11782724B2 (en) | 2023-10-10 |
WO2022062529A1 (zh) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930519B (zh) | 用于分布式数据处理的并行决策系统及其方法 | |
JP6199812B2 (ja) | 明示的に表されたグラフで並列探索を行うシステムおよび方法 | |
US10372451B2 (en) | Sequence alignment method of vector processor | |
CN110955734B (zh) | 逻辑节点的分布式签名决策系统及其方法 | |
CN111027702B (zh) | 一种实现量子线路替换的方法、装置、存储介质和电子装置 | |
CN106852185A (zh) | 基于字典的并行压缩编码器 | |
CN111666151B (zh) | 拓扑图转换系统及其方法 | |
CN112764940B (zh) | 多级分布式数据处理部署系统及其方法 | |
CN112507284B (zh) | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 | |
van Dijk et al. | Computing storyline visualizations with few block crossings | |
CN1973263A (zh) | 分区寄存器库的库指配 | |
CN112799852B (zh) | 逻辑节点的多维sbp分布式签名决策系统及其方法 | |
CN115208954B (zh) | 用于分布式数据处理系统的并行策略预置系统及其方法 | |
US20090192842A1 (en) | Computer Programs, Methods, Apparatus and Systems Providing Improved Evaluation of Business Processes | |
CN115391170A (zh) | 用于分布式数据处理的并行决策系统及其方法 | |
CN114841309A (zh) | 数据处理方法、装置以及电子设备 | |
KR102494565B1 (ko) | 콘볼루션 신경망의 하드웨어 구조 최적화 방법 | |
US20130018773A1 (en) | Order matching | |
US7680641B1 (en) | Identifying a minimum cut and/or a maximum flow using balancing of vertex excesses | |
KR101669356B1 (ko) | 삼각형 열거를 위한 맵 리듀스 방법, 및 그 방법을 이용하는 장치들 | |
CN117114091B (zh) | 基于联邦学习的计算图处理方法、计算机设备和存储介质 | |
Kasarkin et al. | New iteration parallel-based method for solving graph NP-complete problems with reconfigurable computer systems | |
US20220121959A1 (en) | Compiler for implmenting neural network accelerator | |
CN108809726B (zh) | 盒覆盖节点的方法和系统 | |
US8924654B1 (en) | Multistreamed processor vector packing method and apparatus |
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 |