CN115208954B - 用于分布式数据处理系统的并行策略预置系统及其方法 - Google Patents
用于分布式数据处理系统的并行策略预置系统及其方法 Download PDFInfo
- Publication number
- CN115208954B CN115208954B CN202210640356.6A CN202210640356A CN115208954B CN 115208954 B CN115208954 B CN 115208954B CN 202210640356 A CN202210640356 A CN 202210640356A CN 115208954 B CN115208954 B CN 115208954B
- Authority
- CN
- China
- Prior art keywords
- node
- initial
- parallel
- topological graph
- initial logic
- 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 107
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000005540 biological transmission Effects 0.000 claims abstract description 169
- 238000004364 calculation method Methods 0.000 claims abstract description 107
- 230000008569 process Effects 0.000 claims description 25
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 229910052698 phosphorus Inorganic materials 0.000 description 6
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000004880 explosion Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 101100494769 Mus musculus Cts8 gene Proteins 0.000 description 2
- 101100112373 Mus musculus Ctsm gene Proteins 0.000 description 2
- 238000002474 experimental method 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
- 239000002699 waste material Substances 0.000 description 2
- 102100037907 High mobility group protein B1 Human genes 0.000 description 1
- 101001025337 Homo sapiens High mobility group protein B1 Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction 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
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000010800 human waste Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 238000013138 pruning Methods 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
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于分布式数据处理系统的并行策略预置系统和方法。所述系统包括:初始逻辑节点生成组件,生成初始逻辑节点拓扑图;直接邻域标记组件,遍历所述初始逻辑节点拓扑图以获取一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记;连接边跑通概率计算组件,计算所遍历的连接边的跑通概率;节点跑通概率计算组件,计算所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及并行策略预置组件,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点为止。
Description
技术领域
本公开涉及一种数据处理技术。更具体地说,本公开涉及一种用于分布式数据处理系统的并行策略预置系统及其方法以及用于分布式数据处理系统的并行策略决策系统及其方法。
背景技术
在深度学习普及的现在,越来越多的模型以及规模越来越大的数据使得深度学习的训练已经不能在单台计算设备上实现。为此人们提出了分布式计算。随着分布式计算的普及,大型的作业或大张量会通过分割而将不同部分的数据部署到不同的分布式数据处理系统的各个计算设备上进行处理,并在各个部分计算过程需要进行中间参数的交互。这样,在具体作业的处理过程中,部署在一个计算设备上的计算中间参数或结果会成为另一个计算设备上的计算任务的输入数据,这会引起计算设备之间的数据传输开销。在作业数据很大的情况下,这种不同计算设备之间的传输开销对于分布式数据处理系统而言将造成极大的计算负担。因此,在支持数据并行、模型并行和混合并行、流式并行的分布式数据处理系统中,如何降低这种不同计算设备之间的数据传输开销是人们所需要面对的一个问题。
因此,人们试图在自己所有的分布式计算资源上在并行与否上获得一种数据处理方式,该方式一方面能够满足分布式计算资源的算力限制,一方面能够尽可能实现数据并行处理,提高数据处理的能力。很显然,在分布式数据处理系统中,在决定了在几台计算设备上进行并行计算,但是采用的并行方式也不是唯一的。通常每一个逻辑节点对同一计算任务的执行都可以有不同的并行处理方式。不同的并行处理方式在每个逻辑节点上会带来不同的运行时间,这样在前后两个逻辑节点之间由于两个逻辑节点采用不同的并行处理方式而导致不同的数据传输量,也就导致了不同的传输时间,因此,也对总体任务的数据处理时间带来不同影响,这就形成不同的计算效率。很显然,采用人工方式来反复调整进行深度学习的成千上万或几百万的数据处理节点的并行决策,必然导致大量的人工浪费。尤其是能够进行这种人工调整的人员都是高层次的人才,如果这些高层次人才将时间浪费在人工调整的琐碎工作中,必然导致人才浪费。尤其是不同的任务需要不同的并行决策,因此,即使采用同一套分布式数据处理资源也需要不同的并行决策来实现数据处理效率的最大化,这就导致每个任务都需要重新调整。并行决策人工调整方式首先会增大技术人员的工作量,耗费技术人员的人力,另一方面,在不同的逻辑节点应用并实现不同的并行模式,人们还需要考虑到内存的限制以及运行时间的消耗,会而且也不一定能带来理想的并行效果(把总运行时间压缩到极致或者近似极致)。
而且,在自动并行开始面向二维的分布并行策略的情况下,例如2D SBP,在进行并行决策时会出现组合爆炸。2D SBP的策略数是一维度(1D)SBP并行策略数的平方,即便是小模型resnet50,1D SBP下其策略空间的大小也是10的530次方,2D SBP下其策略空间大小则涨到了10的1060次方。每个初始逻辑节点的候选策略则是由3到6变成了9到36。在引入并行决策代理节点(Sbp_proxy)时所带来的策略空间的膨胀是同一个问题。
因此,人们需要一种能够消除分布式数据处理进行并行决策时消除这种组合爆炸的方法和系统,从而能够更简便地决定每个逻辑节点的并行方式。
发明内容
本发明的一个目的是解决至少上述问题,具体而言,本公开提供一种用于分布式数据处理系统的并行策略预置系统,包括:初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;直接邻域标记组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;连接边跑通概率计算组件,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;节点跑通概率计算组件,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算在该直接邻域拓扑图中的所有初始逻辑节点的候选并行策略的每种随机组合下的所遍历的初始逻辑节点的计算代价和,并计算所遍历的初始逻辑节点的在该直接邻域拓扑图中的所有随机组合下中计算代价和小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及并行策略预置组件,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
根据本公开的另一个方面,还提供了一种用于分布式数据处理系统的并行策略预置系统,包括:初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;直接邻域标记组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;连接边跑通概率计算组件,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;节点跑通概率计算组件,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算所遍历的初始逻辑节点在该直接邻域拓扑图中的所有连接边的跑通概率的乘积作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及并行策略预置组件,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
根据本公开的另一个方面,还提供了一种用于分布式数据处理系统的并行策略决策系统,包括:布式数据处理的并行方案预置系统,对初始逻辑节点拓扑图预置并行策略;子邻域代价计算组件,针对每个所标记的直接邻域拓扑图,遍历选择所标记的直接邻域拓扑图中的每个子邻域拓扑图,并基于所遍历选择的子邻域拓扑图中的各个初始逻辑节点的候选并行方案所对应的候选计算代价以及各条连接边的候选传输代价的随机组合,计算所遍历选择的子邻域拓扑图的每种随机组合下的子邻域拓扑图的代价和,以及所遍历选择的子邻域拓扑图中的各个初始逻辑节点在所述每种随机组合下的候选并行方案的节点代价和,所遍历选择的子邻域拓扑图的每个都包含其所属的直接邻域拓扑图中的所选择的初始逻辑节点以及预定数量的直接相邻的初始逻辑节点;子邻域并行决策组件,计算所遍历选择的子邻域拓扑图的每个初始逻辑节点在所有随机组合下的节点代价和之间的代价和差值,并基于所遍历选择的子邻域拓扑图的中的具有最大代价和差值的初始逻辑节点的最小组合代价和,确定所遍历选择的子邻域拓扑图的子邻域并行方案,并将所确定的子邻域并行方案下的每个初始逻辑节点的节点代价和赋予对应的初始逻辑节点;以及并行决策终结组件,在多次遍历初始逻辑节点拓扑图之后,存在连续两遍遍历所获得每个直接邻域的并行方案及每个初始逻辑节点被赋予的节点代价和不变的情况下,终结重复遍历过程,从而获得结果逻辑节点拓扑图,由此获得分布式数据处理系统的并行方案。
根据本公开的用于分布式数据处理系统的并行策略决策系统,还包括:代理节点插入组件,用于在直接邻域标记组件进行标记之前,遍历初始逻辑节点拓扑图,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点,并赋予所述临时中间代理节点数量不超过所有下游初始逻辑节点的并行策略种类的组合数量的候选并行策略,由此获得包含所述临时中间代理节点的初始逻辑节点拓扑图。
根据本公开的用于分布式数据处理系统的并行策略决策系统,其中所述子邻域代价计算组件每次遍历的每个子邻域拓扑图所包含与所选择的初始逻辑节点直接相邻的初始逻辑节点的预定数量不超过5。
根据本公开的另一个方面,还提供了一种分布式数据处理系统的并行策略预置方法,包括:初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;直接邻域标记步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;连接边跑通概率计算步骤,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;节点跑通概率计算步骤,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算在该直接邻域拓扑图中的所有初始逻辑节点的候选并行策略的每种随机组合下的所遍历的初始逻辑节点的计算代价和,并计算所遍历的初始逻辑节点的在该直接邻域拓扑图中的所有随机组合下中计算代价和小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及并行策略预置步骤,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
根据本公开的另一个方面,还提供了一种用于分布式数据处理系统的并行策略预置方法,包括:初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;直接邻域标记步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;连接边跑通概率计算步骤,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;节点跑通概率计算步骤,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算所遍历的初始逻辑节点在该直接邻域拓扑图中的所有连接边的跑通概率的乘积作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及并行策略预置步骤,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
根据本公开的另一个方面,还提供了一种用于分布式数据处理系统的并行策略决策方法,包括:采用分布式数据处理的并行方案预置方法,对初始逻辑节点拓扑图预置并行策略;子邻域代价计算步骤,针对每个所标记的直接邻域拓扑图,遍历选择所标记的直接邻域拓扑图中的每个子邻域拓扑图,并基于所遍历选择的子邻域拓扑图中的各个初始逻辑节点的候选并行方案所对应的候选计算代价以及各条连接边的候选传输代价的随机组合,计算所遍历选择的子邻域拓扑图的每种随机组合下的子邻域拓扑图的代价和,以及所遍历选择的子邻域拓扑图中的各个初始逻辑节点在所述每种随机组合下的候选并行方案的节点代价和,所遍历选择的子邻域拓扑图的每个都包含其所属的直接邻域拓扑图中的所选择的初始逻辑节点以及预定数量的直接相邻的初始逻辑节点;子邻域并行决策步骤,计算所遍历选择的子邻域拓扑图的每个初始逻辑节点在所有随机组合下的节点代价和之间的代价和差值,并基于所遍历选择的子邻域拓扑图的中的具有最大代价和差值的初始逻辑节点的最小组合代价和,确定所遍历选择的子邻域拓扑图的子邻域并行方案,并将所确定的子邻域并行方案下的每个初始逻辑节点的节点代价和赋予对应的初始逻辑节点;以及并行决策终结步骤,在多次遍历初始逻辑节点拓扑图之后,存在连续两遍遍历所获得每个直接邻域的并行方案及每个初始逻辑节点被赋予的节点代价和不变的情况下,终结重复遍历过程,从而获得结果逻辑节点拓扑图,由此获得分布式数据处理系统的并行方案。
根据本公开用于分布式数据处理系统的并行策略决策方法,还包括:代理节点插入步骤,用于在直接邻域标记组件进行标记之前,遍历初始逻辑节点拓扑图,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点,并赋予所述临时中间代理节点数量不超过所有下游初始逻辑节点的并行策略种类的组合数量的候选并行策略,由此获得包含所述临时中间代理节点的初始逻辑节点拓扑图。
根据本公开的用于分布式数据处理系统的并行策略决策方法,其中所述子邻域代价计算步骤每次遍历的每个子邻域拓扑图所包含与所选择的初始逻辑节点直接相邻的初始逻辑节点的预定数量不超过5。
通过根据本公开的用于分布式数据处理系统的并行决策预置系统和方法,能够从全局角度使得分布式数据处理的并行决策所面对的解空间尽可能缩小,提高了进行自动并行决策的可行性,降低了自动并行决策难度,并且能够使得并行决策所获得的并行结果具有较低的计算代价和传输代价,从而尽可能提高了固定计算资源面对相同计算任务的计算效率,从而加快了数据处理速度。更为重要地是实现了在尽可能接近最低传输代价的基础上,实现并行决策的自动化,极大地降低了人工调试的成本。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1所示的是根据本公开的用于分布式数据处理的并行策略预置系统一个实例的原理示意图。
图2所示的是根据本公开的用于分布式数据处理的并行策略预置系统所遍历获得直接邻域拓扑图的一个实例的示意图。
图3所示的是根据本公开分布式数据处理的并行决策系统所遍历获得直接邻域拓扑图的一个实例的示意图。
图4所示的是根据本公开的用于分布式数据处理的并行策略决策系统的实例的原理示意图。
图5所示的是根据本公开用于分布式数据处理的并行策略预置系统的代理节点插入组件执行插入过程的示意图。
图6所示的是计算连接边传输代价以及节点代价的实例。
具体实施方式
下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能对象之一可以被称为第五初始逻辑节点也可以被称为第六初始逻辑节点,类似地,两个可能设备的另一个可以被称为第二逻辑分布式签名也可以被称为第一逻辑分布式签名。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
图1所示的是根据本公开的用于分布式数据处理的并行策略预置系统100的原理示意图。如图1所示,所述并行策略预置系统100包括初始逻辑节点生成组件110、直接邻域标记组件120、连接边跑通概率计算组件112、节点跑通概率计算组件113、并行策略预置组件114。
初始逻辑节点生成组件110接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定。所述初始逻辑节点生成组件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签名是应用在一种分布式数据处理系统中的签名。分布式数据处理系统中,由于经常存在数据并行、模型并行以及混合并行以及流式并行等的情形,因此,经常会存在相邻的逻辑节点的任务将被同时部署到不同的计算设备上,因此在实际数据处理过程中,各个计算设备之间会对中间参数进行交换,会导致大量的传输开销。由于不同的初始逻辑节点选择不同的并行策略将导致不同的传输开销或传输代价,而初始逻辑节点众多,这种不同的并行策略组合则是一个天文数字。因此,要人为选择代价较小的并行决策组合方式极为困难,自动选择由于组合方式极大,这将造成自动选择反而带来巨大的运算开销。
为此,本公开的分布式数据处理的并行策略预置系统100的直接邻域标记组件120遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点。图2所示的是根据本公开分布式数据处理的并行决策系统100所遍历获得直接邻域拓扑图的一个实例的示意图。如图2所示,直接邻域标记组件120在遍历所述初始逻辑节点拓扑图111时,针对每个初始逻辑节点判断其直接连接的其他初始逻辑节点。图2所示的直接邻域拓扑图中的编号为00的初始逻辑节点为所选择的初始逻辑节点,编号为01-10的初始逻辑节点为与所选择的初始逻辑节点有直接连接边的其他初始逻辑节点,这样,一起形成一个被遍历到的直接邻域拓扑图,由此被赋予预定的标记,例如DBN00,标识这个直接邻域拓扑图是所选择的初始逻辑节点N00的直接邻域拓扑图。这样通过遍历,可以获得每个初始逻辑节点的直接邻域拓扑图,例如节点04也可以具有自己的直接邻域拓扑图。
在自动并行开始接管2D SBP以后,各种各样的困难和挑战,比如组合爆炸,很多。2D SBP(二维SBP)的并行策略数是1D SBP(一维SBP)并行策略数的平方,即便是小模型resnet50,1D SBP下其策略空间的大小也是10的530次方,2D SBP下其策略空间大小则涨到了10的1060次方。每个初始节点的候选并行策略则是由3到6变成了9到36。此外,在引入SBP代理节点(Sbp_proxy)同样会带来的策略空间的膨胀。申请人注意到,nccl的通信原语不支持2D SBP的一些传输组合,图3所示的是一个张量实例在多机多卡下的传输代价示意图表。如图3所示,数据大小为1024的张量在2机8卡(合计16卡)下各种2D SBP组合产生的传输代价。图表中的代价为X则表示不支持该种组合,也就是nccl的通信原语不支持2D SBP的一些传输组合。从例如从(S(0),S(0))到(S(0),S(0))的传输很快,一瞬间就完成了,从(S(0),S(0))到(S(0),B)的传输需要花一些时间,而从(S(0),S(0))到(S(1),S(0))的传输则会直接报错。通信原语的限制会使得计算图有时候跑不通,因此,为了后续进行并行策略的决策更为顺利,需要提前预知整个计算图是否存在一个通的策略组合,以及需要在通的策略组合里面挑出一个总代价较小的,为此,需要进行预置一个可以跑通的并行策略组合。也就是为了降低分布式数据处理过程中进行并行策略决策空间,因此需要分布式数据处理的并行策略进行预置。为了解决这个问题,本公开从一开始就在全局搜索出一个通的策略,或者报出不存在该策略的错误。然后再在这个跑通的策略上进行局部调整,逐渐收敛到一个代价较小的通的策略。为此,如图1所示的预置系统的连接边跑通概率计算组件112遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率。为此,获得那些连接边的跑通概率高,哪些低,这就为后续的并行策略的决策提供了决策的出发点。通常会从概率低的连接边所关联的概率低的节点开始进行决策,这就为决策的遍历次数降低提供了可能性。如图3所示,在16乘16种组合里面只有160种sbp组合值小于无穷,所以那条边通的概率为0.625。这个概率就上面提到的跑通率(cut_ratio),就是每个连接边在所有候选并行策略的各种组合下的跑通的组合数量与总组合数量的比值。
需要指出的是,有一些连接,它要求上下游具有相同的SBP(is_mutable),比如weight跟对应的optimizer,如下表所示:
如上表,它的跑通率就是cut_ratio为0.166667,六分之一。
随后对所有节点执行广度搜索(BFS),由节点跑通概率计算组件113遍历每个初始逻辑节,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算在该直接邻域拓扑图中的所有初始逻辑节点的候选并行策略的每种随机组合下的所遍历的初始逻辑节点的计算代价和,并计算所遍历的初始逻辑节点的在该直接邻域拓扑图中的所有随机组合下中计算代价和小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序。通俗而言,一个节点的跑通率为,与之直接相连的所有节点的所有候选并行策略的组合里面,对每种组合计算该节点的这种组合下的代价之和,统计代价之和小于正无穷的组合的数量((也就是可以跑通的组合的数量),计算可以跑通的组合的数量与总组合数量的比值作为该节点的跑通率。并且该节点跑通概率计算组件113在对所有节点的跑通率进行计算之后,对每个节点通概率进行从小到大的排序。
接着,并行策略预置组件114从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略,由此获得如图1所示的预置逻辑节点拓扑图115。该预置逻辑节点拓扑图115的每个节点都预存了能够完整跑通并行策略,从而形成一种并行策略组合状态,并具有一个完整的节点代价和以及传输代价和。
通俗而言,从最小的跑通概率的节点开始的直接邻域构成的节点集S开始,将该起初的直接邻域构成的节点集S作为当前已经搜索完成的节点集S。针对从当前的已搜索完的节点集S开始,每次找出S的直接邻居(也就是跟S的某一个节点相连但是又不属于S的节点)。对其所有直接邻居节点的跑通概率从小到大进行排序,先从概率小的节点开始搜索,搜索节点集S的直接邻居节点中最小概率节点的候选并行策略(sbp),找出一个使得该节点与S的所有连接的边代价都小于正无穷的sbp,然后把该节点添加到S中,令深度加一。随后开始搜索下一个节点。如果遍历了该最小概率节点的所有可能sbp都找不到一个sbp使得该点连接的边都是通的,那么就令搜索深度减一,并且回退到上一个深度的节点。对于上一个深度的节点,把当前sbp标记为不通,开始寻找下一个合适的sbp。简而言之,如果在S节点集的跑通组合为T1,在其最小概率邻居节点的所有可能sbp都找不到一个sbp使得该点连接的边都是可跑通的情况下,说明S加上该最小概率邻居节点在其所有可能SBP下都不能跑通,则只能回退到原来的S节点集中选择S节点集的另一个可以跑通的组合,继续选择该小概率邻居节点搜索其候选SBP进行跑通判断,指导该节点集S加上该最小概率邻居节点都能跑通为止。重复这样的操作直到S的所有直接邻居都已经被添加到了S里面。上述这些操作为一次广度搜索。这时重新定义S为当前已搜索完的节点集,再次开始新一次广度搜索。
初始的S为概率最小的那个节点的直接邻域拓扑图所包含个节点的集和。重复广度搜索直到计算图的所有节点都加入到S中,或者所有的情况都已经被遍历或者被剪掉,未发现有通的策略。上述过程的思想是先解决那些刁钻的节点(就是跑通概率比较低的节点),剩下的随和的节点就听那些刁钻的节点就行,反正他们服从安排。通过上述过程,使得搜索一次全局计算图里面通的策略的时间大大缩短。经实测,在resnet50中,该时间能从2个小时降低到8秒。
可选择地,为了简便起见,节点跑通概率计算组件113遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算所遍历的初始逻辑节点在该直接邻域拓扑图中的所有连接边的跑通概率的乘积作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序。这样就能够极大减少计算量。
图4所示的是根据本公开的用于分布式数据处理的并行策略决策系统400的原理示意图。如图1所示,用于分布式数据处理的并行决策系统400包含图1所示的用于分布式数据处理的并行策略预置系统100
所述分布式签名决策系统400包括并行策略预置系统100、子邻域代价计算组件121、子邻域并行决策组件122以及并行决策终结组件123。
子邻域代价计算组件121针对每个所标记的直接邻域拓扑图,遍历选择所标记的直接邻域拓扑图中的每个子邻域拓扑图,并基于所遍历选择的子邻域拓扑图中的各个初始逻辑节点的候选并行方案所对应的候选计算代价以及各条连接边的候选传输代价的随机组合,计算所遍历选择的子邻域拓扑图的每种随机组合下的子邻域拓扑图的组合代价和,以及所遍历选择的子邻域拓扑图中的各个初始逻辑节点在所述每种随机组合下的候选并行方案的节点代价和,所遍历选择的子邻域拓扑图的每个都包含其所属的直接邻域拓扑图中的所选择的初始逻辑节点以及预定数量的直接相邻的初始逻辑节点。图2所示的左边中的虚线所包含的子邻域拓扑图中的初始逻辑节点为00、01、02、03以及04,右边中的虚线所包含的子邻域拓扑图中的初始逻辑节点为00、02、03、04以及05。但是节点05具有一个直接连边与节点11相邻,因此,在遍历到右边的子邻域拓扑图时,将节点11包含在内,以便在随后的子邻域代价计算组件121进行代价计算时,充分考虑节点05在子邻域拓扑图的重要性。具体而言,针对图2中左边的子邻域拓扑图中的初始逻辑节点为00、01、02、03以及04,每个初始逻辑节点为00、01、02、03以及04都有各自的候选并行方案,节点的每种候选并行方案都对应的节点候选计算代价,这种初始的候选计算代价并不是该初始逻辑节点在实际系统中的实际计算代价,而是如上所述的经验值。由于每个节点初始逻辑节点为00、01、02、03以及04都有各自的候选并行方案,因此,彼此相连的两个节点初始逻辑节点为00、01之间就会存在多种成对的并行方案组合,以此类推,节点00与02之间也有成对并行方案组合等等。由于不同成对并行方案组合不同,不同组合形成的两个节点之间的连接边所代表的两者之间产生的候选传输代价也就不同。由于在每个子邻域拓扑图中的节点数量有限,连接边有限以及候选并行方案有限,因此其组合有限。通过子邻域代价计算组件121对每个子邻域拓扑图中的每种组合下所有节点的计算代价以及节点之间的传输代价进行求和得到子邻域拓扑图的代价和并且计算每种组合下每个节点的节点代价和。每个节点的在每种组合下的节点代价和包括节点本身的计算代价以及与其直接关联的连接边的传输代价。
针对每个子邻域拓扑图的每中组合的子邻域代价计算结果,子邻域并行决策组件122计算所遍历选择的子邻域拓扑图的每个初始逻辑节点在所有随机组合下的节点代价和之间的代价和差值,并基于所遍历选择的子邻域拓扑图的中的具有最大代价和差值的初始逻辑节点的最小组合代价和,确定所遍历选择的子邻域拓扑图的子邻域并行方案,并将所确定的子邻域并行方案下的每个初始逻辑节点的节点代价和赋予对应的初始逻辑节点。举例而言,如图2左边的包含初始逻辑节点为00、01、02、03以及04的子邻域拓扑图,存在20种组合方式,其中节点02在20种组合中的节点代价和差值为10,其他节点的节点代价和差值都小于10,则意味着,在这个子邻域拓扑图中,节点02是最重要的节点,因此首先基于节点02的并行方案来确定子邻域拓扑图的全体并行方案,接着在以02为主确定子邻域拓扑图的全体并行方案的基础上,选择包含02的候选并行方案的所有组合中情形中,在子邻域拓扑图的所有组合中选择组合代价和最小的并行方案作为该遍遍历情形下该子邻域拓扑图的子邻域并行决策结果。具体而言,在节点02作为节点代价和差值为所有节点中最大的情况下,选择节点02的节点代价和差值最大情况下的组合中组合代价和最小的并行方案。例如如果节点代价和差值最小的节点代价和分别为100和90,则选择节点02的节点代价和为100和90所属的组合形式中组合代价和最小的组合作为该子邻域拓扑图的组合并行方案。
可选择地,例如如果节点代价和差值最大的节点02的代价和分别为100和90,则选择节点02的节点代价和为90所属的组合形式中组合代价和最小的组合作为该子邻域拓扑图的组合并行方案。举例而言,如果节点01,02,03,04,05的代价和差值分别为6,10,2,8,4,而其重要程度排序为02,04,01,05,03,则我们先确定02的最小代价策略,然后在02已经确定的前提下确定04的最小代价策略,然后在02,04都确定的前提下确定01的最小代价策略,然后在02,04,01都确定的前提下确定05的最小代价策略,最后在02,04,01,05都确定的前提下确定03的最小代价策略,每次多确定一个节点就需要使得该节点跟外部的连接边的代价以及跟已经确定的节点的连接边的代价以及该节点自身的代价之和在不同策略下取得一个最小值。如此最后获得该子邻域拓扑图的组合并行方案。
在完成图2左边的虚线中的子邻域拓扑图的并行决策之后,进入右边的虚线中的子邻域拓扑图,即由节点00、02、03、04以及05构成的子邻域拓扑图。同样采用针对左边的子邻域拓扑图的子邻域并行决策方式进行。如上所述,在05或其他任何初始节点存在不属于直接邻域拓扑图但是与其直接连接的节点时,将其包含在该值邻域拓扑图中。如此遍历,直到遍历完直接邻域拓扑图中所有的子邻域拓扑图,从而形成整个直接邻域拓扑图的并行方案。
此后,再次对在前一遍遍历过程中被赋予并行方案的初始逻辑节点拓扑图111进行以便遍历,由此可能对并行方案进行调整,也可能获得完全相同的并行方案。因此通过多次遍历,当本公开的系统的并行决策终结组件123在多次遍历初始逻辑节点拓扑图之后,存在连续两遍遍历所获得每个直接邻域的并行方案及每个初始逻辑节点被赋予的节点代价和不变的情况下,终结重复遍历过程,从而获得结果逻辑节点拓扑图,由此获得分布式数据处理系统的并行方案。
通过逐一遍历整个初始逻辑节点拓扑图111,从而使得每个初始逻辑节点的并行方案被逐一确定。由此计算整个并行方案下的节点代价总和,并与预存的并行策略的节点代价总和,如果当前遍历所产生的并行方案下的节点代价总和小于已经预存的节点代价总和,则替换预存当前遍历所产生的并行方案下的节点代价总和,以便作为下一遍遍历的对照节点代价总和。如此逐步降低节点代价总和,从而获得最小的节点代价总和的并行策略,在两次遍历的节点代价总和相同时,终结遍历过程,并将最后的最小的节点代价总和的并行策略作为最终的并行策略。
可选择地,根据本公开的另一个方面,返回参见图1,为了减少上述进行并行方案进行遍历的数量以及进行并行决策时策略数以及减少数据传输,可以对初始逻辑节点拓扑图进行预处理,例如通过遍历,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点。具体而言,返回参见图1,本系统可以包含代理节点插入组件124,其用于在直接邻域标记组件进行标记之前,遍历初始逻辑节点拓扑图,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点,并赋予所述临时中间代理节点数量不超过所有下游初始逻辑节点的并行策略种类的组合数量的候选并行策略,由此获得包含所述临时中间代理节点的初始逻辑节点拓扑图。
图5所示的是根据本公开用于分布式数据处理的并行策略预置系统的代理节点插入组件执行插入过程的示意图。如图5所示,节点A有两个下游节点B跟C,A的输出张量y会传给B跟C,A的分布策略或并行策略SBP(参见中国专利公开号CN110955734A)是S0,节点B和C的SBP都是S1。此时按照代价模型的建立,两条边A-B和A-C都会有传输代价Ct,分别会进行一次All2All的传输。为了减少数据传输,一方面可以减少数据传输量本身,另一方面,可以减少数据传输次数来进行。但是由于数据候选并行策略一旦选定则不可变更,因此,通过减少传输次数可以显著降低传输代价。为此,针对图5所示的情况,可以通过在上下游之间插入一个临时中间代理节点PN就可以将数据传输次数从两次降低到一次,从而降低了整体的传输代价。如图5所示,在节点A和下游节点B和C之间建立一个临时中间代理节点PN,A的输出y先进行一次All2All并传到这个临时中间代理节点PN,这时y在这个临时中间代理节点PN上的SBP就是S1。从临时中间代理节点PN到两个下游节点B、C,由于他们的SBP都是S1,所以没有通信产生,直接把张量y拿过去用就好,因此整体的传输代价就只有一次将张量y从分布方式S0变换到S1产生的数据传输过程。本公开通过在代价模型里面抽象出临时中间代理节点PN(sbp_proxy)在本公开的自动并行决策系统运行完成之后,在实际部署过程中不会形成实际节点参与运行,仅仅是在自动并行决策中存在,只是会帮助并优化自动并行决策方法。在插入临时中间代理节点PN时,赋予临时中间代理节点PN下游节点的候选并行策略的组合数量的并行策略,例如,临时中间代理节点PN的候选并行策略为S1。
进一步,在本公开进行自动并行决策的代价模型里面,临时中间代理节点PN建立以后,临时中间代理节点PN的并行策略就是传输的张量的SBP策略。在下游节点的所需该张量的SBP存在不同的情况下,比如说上游节点A输出张量y,传给4个下游节点B、C、D、E,y在A是S0,y在B和C是S1,y在D跟E是S2。实际操作中B跟C会被统筹,D跟E也会被统筹起来,此时,临时中间代理节点PN的并行策略就不能是S1或者S2,而是更多组合候选并行策略。上游节点到下游节点的代价跟下游节点某种SBP的个数无关,只与它存不存在有关,只与下游的是否存在并行策略有关。也就是,上游A(y:S0)到一个下游节点B(y:S1)的代价跟上游节点A(y:S0)到100个下游节点(y:S1)的代价是一样的。所以,本公开将临时中间代理节点PN的并行策略定义为下游节点可能并行策略的集合。举例而言,如果上游节点A传输张量y给两个下游节点B、C,张量y在节点B的SBP有B、S0、S1,张量y在节点C的SBP有B、S0、S2。那么上游节点A后面插入的临时中间代理节点PN的候选并行策略有{B},{S0},{S1},{S2},{S0,S1},{S0,S2},{S1,S2}。注意到候选策略里面没有{S0,S1,S2},因为节点A只有2个下游节点,本公开限制临时中间代理节点PN的每个候选并行策略集合的元素的个数不能超过下游节点的个数,否则只会无意义地增加策略空间。因此,临时中间代理节点PN被赋予的候选并行策略的数量不能超过下游节点的数量。而且,临时中间代理节点PN的候选并行策略里面B没有跟其他的SBP处于同一个集合,这是由于B到其他S0、S1、S2的传输代价为0,当一个张量在临时中间代理节点PN的SBP为B,它到下游其他任何的SBP都不会产生通信,最多只需要本地的一些处理即可,所以只要有一个B,在代价估计上就不需要SBP了。(当然实际中中间节点尽管有了B的SBP,也还是会产生其他的一些代理来保管其他SBP(如S0)的张量来避免B到S时一些操作的重复,但是这里理论上不会有通信代价的产生。)
根据临时中间代理节点PN的这种策略赋予规则,临时中间代理节点PN到下游节点的边的传输代价(Ct)可以这样来取值:
如果下游节点的SBP被包含在临时中间代理节点PN的SBP内或者临时中间代理节点PN的候选并行策略为{B},则代价为0,否则为GetMaxVal<float>()=3.4e38。
可以理解为,通信在到临时中间代理节点PN的时候就已经做完了,临时中间代理节点PN到下游节点只是取值的一个过程。
尽管图2显示的子邻域拓扑图的节点个数为5个,但是可以根据实际需要进行选择,例如3、4个,一般5个为佳,但是也可以更多。在直接邻域拓扑图不超过预定的子邻域拓扑图的节点数量的情况下,则直接邻域拓扑图则仅需要直接进行一次子邻域代价计算就可以。
需要指出的是,SBP签名是应用在一种分布式数据处理系统中的签名。分布式数据处理系统中,由于经常存在数据并行、模型并行以及混合并行以及流式并行等的情形,因此,经常会存在相邻的逻辑节点的任务将被同时部署到不同的计算设备上,因此在实际数据处理过程中,各个计算设备之间会对中间参数进行交换,会导致大量的传输开销。为此,为了减少数据传输开销,需要在初始逻辑节点拓扑图211的基础上,进一步生成更多的逻辑节点,以便完善逻辑节点拓扑图,尤其是减少上下游逻辑节点之间的传输开销,需要使得上下游逻辑节点的数据分布方式所带来的变化最小。为此,本公开为了获得比较好的下游逻辑节点,针对每个逻辑节点指定了逻辑分布式签名。所述逻辑分布式签名是采用张量的分布式描述符对逻辑节点的签名,每个张量的分布式描述符描述了每个张量的在整个计算系统中的分布方式,主要包括分割(SPLIT)张量描述符、广播(BROADCAST)张量描述符以及部分值(PARTIAL VALUE)张量描述符。
具体而言,分割(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签名的情形。例如,图4所示的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签名的确定。因此,可以采用SBP签名来替代图1中的并行策略签名P。其他部分与针对图1的描述相同,因此不再赘述。
图6所示的是计算连接边传输代价以及节点代价的实例。如图6所示,第一预定构型F1为具有第一连接边Lin和第二连接边Lout的中间初始逻辑节点MN。第一预定构型F1的第一连接边Lin的输入端与第一初始逻辑节点IN相连,第二连接边Lout的输出端与第二初始逻辑节点ON相连。返回参见图1,初始逻辑节点D就是一种中间初始逻辑节点MN,初始逻辑节点C和G分别是第一初始逻辑节点IN和第二初始逻辑节点ON。因此,图1中的初始逻辑节点C、D和G之间就构成了第一预定构型F1。
如图6所示,在一个第一预定构型F1中,每个初始逻辑节点都附有候选并行标签P以及与该候选并行标签对应的计算代价标签C。例如第一初始逻辑节点IN在候选并行标签P2下,具有对应的计算代价标签C1;中间初始逻辑节点MN在候选并行标签P1下,具有对应的计算代价标签C1,在候选并行标签P2下,具有其对应的计算代价标签C2以及在候选并行标签P4下,具有对应的计算代价标签C3;类似地,第二初始逻辑节点ON在候选并行标签P2下,具有对应的计算代价标签C1,在候选并行标签P3下,具有其对应的计算代价标签C2以及在候选并行标签P4下,具有对应的计算代价标签C3。需要指出的是,为了叙述方便,尽管这里在不同初始逻辑节点中采用了相同的计算代价标签,例如C1、C2,但是在不同的初始逻辑节点所附的计算代价标签并不表示计算代价是一样。这里仅仅起到标记在同一初始逻辑节点内不同候选并行策略下的不同计算代价的作用。在实际应用过程中,这些代价标签采用实际的代价值来体现。这种标记方式在其后的其他预定构形显示或阐述中也仅仅标记作用,并不意味着同样代价标签形式代表相同的计算代价。
如图6所示,第一连接边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,但是在不同的连接边所附的传输代价标签并不表示传输代价是一样。这里仅仅起到标记在同一连接边内不同候选并行策略组合下的不同传输代价的作用。在实际应用过程中,这些传输代价标签采用实际的传输代价值来体现。
代价计算时,针对第一预定构型F1,在第一连接边的第一初始逻辑节点IN的候选并行方案以及第二连接边的第二初始逻辑节点的ON候选并行方案确定的情况下,获取中间初始逻辑节点的每个候选计算代价、所获取的候选计算代价C对应的第一连接边候选传输代价Ct以及第二连接边的候选传输代价Ct,并获取每种中间初始逻辑节点的每个候选计算代价情况下三者之第一代价和Cs,并选择最小第一代价和Csm作为每对第一初始逻辑节点IN的候选并行方案和第二初始逻辑节点ON的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价之一。
具体而言,结合图6中的第一预定构型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时,子图代价计算组件242先获取连接边CD的传输代价为CostCD[i][k]、连接边DG的传输代价为CostDG[k][j]以及作为中间初始逻辑节点MN的初始逻辑节点D的计算代价CostD[k],并进行求和,该和被记录为CostCG[i][j]。这样,初始逻辑节点C和G的候选并行决策被确定时,作为中间初始逻辑节点MN的初始逻辑节点D的候选并行决策数量是确定的,例如为3。这样,子图代价计算组件242针对一组被确定的候选并行决策定的初始逻辑节点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].
子图代价计算组件242会从上述三个第一代价和CostCG[i][j]中选择和最小的值作为最小第一代价和Csm作为每对第一初始逻辑节点IN的候选并行方案和第二初始逻辑节点ON的候选并行方案确定情况下所述第一预定构型中第一初始逻辑节点和第二初始逻辑节点之间的第一候选传输代价之一。为此,当(i,j)为连接边CG的决策组,其对应的最小第一代价和Ctsm为
Ctsm=CostCG[i][j]=MIN{CostCD[i][k]+CostD[k]+CostDG[k][j]}
1≤k≤n
其中n为中间初始逻辑节点MN的候选并行决策数量。该公式表示从n组第一代价和中选择最小值作为(i,j)为连接边CG的决策组的第一候选传输代价之一。如果初始逻辑节点C和初始逻辑节点D的候选并行决策方式分别为X和Y个,则最终获得X×Y个第一候选传输代价,其中每个第一候选传输代价都是一组(i,j)CG的决策组对应的n个第一代价和Csm中的最小第一代价和。
随后,随后可以将第一预定构型F1的第一连接边Lin、第二连接边Lout以及中间初始逻辑节点MN变换为所述第一连接边的第一初始逻辑节点IN与第二连接边的第二初始逻辑节点ON之间的第一合并连接边Lm1。图5显示了该变换的过程。图6的左侧为第一预定构型F1的原始结构,右侧为变换后拓扑结构。变换后的第一合并连接边Lm1具有三个第一候选传输代价Ctsm1、Ctsm2、Ctsm3。如上所述第一候选传输代价的数量等于每对第一初始逻辑节点IN的候选并行方案数量和第二初始逻辑节点ON的候选并行方案的数量的乘积。
如图6所示,通过对第一预定构型F1进行这种变换,一方面减少了需要判断的逻辑节点,另一方面减少了需要判断的连接边,这就极大地降低了整个逻辑节点拓扑图进行总体的并行策略的决策的难度。而且通过这种局部最小化代价和的选择,为总体上尽可能选择比较小的并行代价提供了条件。
每当针对第一预定构型F1进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第一预定构型F1。
可选择地,还可以遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第二预定构型F2。第二预定构型F2为彼此之间存在多条第三连接边的成对初始逻辑节点。第二预定构型F2具有第三初始逻辑节点IN与第四初始逻辑节点ON的成对初始逻辑节点,第三初始逻辑节点IN与第四初始逻辑节点ON之间具有至少两条或两条以上的第三连接边L1、L2等等。在实际情况中,可以存在三条或三条以上的第三连接边。第三初始逻辑节点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时,子图代价计算组件242先获取各个连接边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,例如图6左边的Cts1、Cts2、Cts3、…Cts8、Cts9。
随后,将第二预定构型F2的成对输出逻辑节点IN和ON之间连接边变换为成对输出逻辑节点IN和ON之间的第二合并连接边Lm2。变换后的第二合并连接边Lm2具有九个第二候选传输代价Cts1、Cts2、Cts3、…Cts8、Cts9。如上所述第二候选传输代价的数量等于成对输出逻辑节点IN和ON各自的候选并行方案的数量的乘积。每个第二候选传输代价Cts都包含了成对输出逻辑节点IN和ON各自的候选并行方案的一种对应组合形式。
每当针对第二预定构型F2进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第二预定构型F2。
可选择地,还可以遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第三预定构型F3。第三预定构型F3为仅具有第四连接边L1的末端初始逻辑节点EN,该末端初始逻辑节点EN通过第四连接边与依赖初始逻辑节点DN相连。所述依赖初始逻辑节点DN还通过连接边与其他初始逻辑节点相连,例如N1、N2。N1、N2之间可以有连接边,也可以没有连接边。由于依赖初始逻辑节点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各个候选并行决策数量。因次,针对第三预定构型会计算获得n个最小第三代价和作为依赖初始逻辑节点DN的候选并行方案确定的情况下(P-i)的第三附加计算代价Costm[i]。
随后,通过剪除第三预定构型F3的第四连接边L1以及末端初始逻辑节点EN,将第三预定构型F3变换一个新的单一逻辑节点DN,并将第三附加计算代价附加到该依赖初始逻辑节点DN的计算代价CostDN[i]上,形成该依赖初始逻辑节点DN的新的计算代价Cmi,即
通过对第三预定构型F3进行这种变换,一方面减少了需要判断的逻辑节点,另一方面减少了需要判断的连接边,这就极大地降低了整个逻辑节点拓扑图进行总体的并行策略的决策的难度。而且通过这种局部最小化代价和的选择,为总体上尽可能选择比较小的并行代价提供了条件。
每当针对第三预定构型F3进行这种变换后,都将该变换后的结构中逻辑节点重新排列在被遍历的逻辑节点队列的末尾,以便进行迭代性的遍历。也就是对整个逻辑节点拓扑图重复多次进行遍历,直到无法遍历获得第三预定构型F3。经过变换后的依赖初始逻辑节点DN的新的计算代价将作为后续处理的计算代价。
当遍历所有待遍历的逻辑节点队列而未获得第一、第二、第三预定构型时,开始遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中的多种预定构型F中的第四预定构型F4。第四预定构型F4包括位于同一连通分量内彼此之间无连接边的第五初始逻辑节点N1和第六初始逻辑节点N2以及至少一个属于第五初始逻辑节点和第六初始逻辑节点的共同的第七初始逻辑节点N3、N4、N5、N6等等。此外,第四预定构型F4也可以包括只与第五初始逻辑节点N1相连的初始逻辑节点N7。第四预定构型F4也可以包括只与第六初始逻辑节点N2相连的初始逻辑节点N8。任意两个初始逻辑节点之间的连接边为L,例如N1与N4之间的连接边为L14,同样N2与N5之间的连接边为L25,以此类推。
在遍历拓扑图中的初始逻辑节点获取第四预定构型F4过程中,构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策的数量之乘积不能超过预定的阈值,例如128、64等。如果不进行阈值限定,在一个完全拓扑结构图里,第四预定构型F4的遍历会被反复进行,最终导致完全拓扑结构图形成一个逻辑节点,导致遍历时间过长,而是的最终的并行决策的确定变得漫长。另一方面,由于在构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2在合并的过程中,会产生大量的标签数据,例如计算代价、传输代价、代价和,因此如果构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2的候选并行决策的数量过多,也将导致需要更多的内存空间来存储这些标签数据,这会导致合并后的拓扑图中的节点和连接边占用数据空间的过大。例如合并节点占用空间大小为O(阈值),合并后连接边占用空间大小为O(阈值的平方)。因此,对预定构型F4进行候选并行决策树进行阈值限定也是减少数据空间占用的需要。对于初始逻辑节点和初始的连接边可以进行限制,输入备选决策数量大于阈值的节点是可以接受的。不过需要指出的是,该合并节点不能再跟别的节点进行合并。因此,如果不进行阈值限定,第四预定构型F4的点合并会一直进行下去,最后生成一个备选决策数量为所有原节点备选决策数量的乘积的大节点,这是不可取的。
可选择地,在遍历拓扑图中的初始逻辑节点获取第四预定构型F4过程中,要遍历选择直接邻域重合度尽可能高的第四预定构型F4。直接邻域是指一个逻辑节点以及与其连接的所有逻辑节点的集合。对于构成第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2,如果他们备选决策的积小于等于阈值O,可以通过位运算的集合比较算法来找出两者之间直接邻域的重合度,记录下重合度最高的一对节点用于节点合并。重合度越高,连接边合并得就越多。因此,优先遍历获取满足阈值限定情况的重合度最高的第四预定构型F4。在第五初始逻辑节点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的余数。将第五初始逻辑节点N1和第六初始逻辑节点N2的两个候选传输代价之和作为第四代价和。
第七初始逻辑节点N3、N4、N5、N6中每个都同时与第五初始逻辑节点N1和第六初始逻辑节点N2相连。以第七初始逻辑节点N4为例,其与第五初始逻辑节点N1和第六初始逻辑节点N2的连接边为L14和L24。在第五初始逻辑节点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为第七初始逻辑节点的候选并行决策的编号。
此外,第四预定构型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的余数。
随后,将第四预定构型F4的第五初始逻辑节点N1和第六初始逻辑节点N2合并为第一合并逻辑节点以及将第五连接边(例如L14)和第六连接边(例如L24)合并为第三合并连接边(例如Lm4),并将针对第四预定构型计算获得的第四代价和赋予第一合并逻辑节点作为其候选计算代价之一以及将第三候选传输代价赋予第三合并连接边作为其候选传输代价之一。此外,还可以将第四候选传输代价仅仅与第五初始逻辑节点N1和第六初始逻辑节点N2之一相连的连接边L17(或Lm7)或连接边L28(或Lm8)作为其候选传输代价之一。
一般遍历预定构型的顺序是第一预定构型F1、第二预定构型F2、第三预定构型F3。可选择地,前三种预定构型也可以不分先后顺序进行遍历搜索。在无法遍历出前三种预定构型时才进行第四预定构型F4的遍历。简而言之,在无法遍历出前三种预定构型并且变换后的拓扑该图的某个连通分量里仍有2个以上的节点,也就是在该连通分量里,每一个逻辑节点的度数都大于等于3的情况下,就进行遍历获取第四预定构型F4,以便对拓扑图进行进一步简化处理。
如上所述,对于给定的整个计算图或其一部分的计算子图,给定了每个逻辑节点的候选并行决策,并且计算出了每个逻辑节点在不同并行决策下的计算代价以及每条连接边在端点不同并行决策下的传输代价,给定了计算资源(例如计算卡或者计算设备的数量)。假定该计算子图内每一段程序都会在各卡或者各个设备上同时进行,那么运行完整个计算子图所需要的时间约等于各卡运行完所有程序的时间。通过均摊代价方式,当所有逻辑节点都决定了一个并行决策时,各卡的计算代价以及卡间的传输代价都是一样的。为此,选定一个最终的并行决策,该最终的并行决策决定了每一个逻辑节点该取什么样的并行决策,使得每一张卡上总的代价尽可能小和或最小。
如上所述,当进行任何变换后都会将所变换获得逻辑节点作为初始逻辑节点排列在被遍历的初始罗节点队列之后。当对所有初始逻辑节点遍历过两遍后,未在发现任何预定构型时,将结束遍历和变换操作,并输出变换结果逻辑节点拓扑图。
通过对多种预定构型的变换,可以极大可能地缩小并行决策的备选空间,并且一定会缩小计算图的拓扑结构,所以能执行最终进行并行决策的次数一定是有限的。
通过根据本公开的用于分布式数据处理的并行策略决策系统,能够从全局角度使得分布式数据处理的并行决策所面对的解空间尽可能缩小,提高了进行自动并行决策的可行性,降低了自动并行决策难度,并且能够使得并行决策所获得的并行结果具有较低的计算代价和传输代价,从而尽可能提高了固定计算资源面对相同计算任务的计算效率,从而加快了数据处理速度。更为重要地是实现了在尽可能接近最低传输代价的基础上,实现并行决策的自动化,极大地降低了人工调试的成本。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种用于分布式数据处理系统的并行策略预置系统,包括:
初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
直接邻域标记组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;
连接边跑通概率计算组件,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;
节点跑通概率计算组件,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算在该直接邻域拓扑图中的所有初始逻辑节点的候选并行策略的每种随机组合下的所遍历的初始逻辑节点的计算代价和,并计算所遍历的初始逻辑节点的在该直接邻域拓扑图中的所有随机组合下中计算代价和小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及
并行策略预置组件,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
2.一种用于分布式数据处理系统的并行策略预置系统,包括:
初始逻辑节点生成组件,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
直接邻域标记组件,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;
连接边跑通概率计算组件,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;
节点跑通概率计算组件,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算所遍历的初始逻辑节点在该直接邻域拓扑图中的所有连接边的跑通概率的乘积作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及
并行策略预置组件,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
3.一种用于分布式数据处理系统的并行策略决策系统,包括:
如权利要求1或2所述的用于分布式数据处理系统的并行策略预置系统,对初始逻辑节点拓扑图预置并行策略;
子邻域代价计算组件,针对每个所标记的直接邻域拓扑图,遍历选择所标记的直接邻域拓扑图中的每个子邻域拓扑图,并基于所遍历选择的子邻域拓扑图中的各个初始逻辑节点的候选并行方案所对应的候选计算代价以及各条连接边的候选传输代价的随机组合,计算所遍历选择的子邻域拓扑图的每种随机组合下的子邻域拓扑图的代价和,以及所遍历选择的子邻域拓扑图中的各个初始逻辑节点在所述每种随机组合下的候选并行方案的节点代价和,所遍历选择的子邻域拓扑图的每个都包含其所属的直接邻域拓扑图中的所选择的初始逻辑节点以及预定数量的直接相邻的初始逻辑节点;
子邻域并行决策组件,计算所遍历选择的子邻域拓扑图的每个初始逻辑节点在所有随机组合下的节点代价和之间的代价和差值,并基于所遍历选择的子邻域拓扑图的中的具有最大代价和差值的初始逻辑节点的最小组合代价和,确定所遍历选择的子邻域拓扑图的子邻域并行方案,并将所确定的子邻域并行方案下的每个初始逻辑节点的节点代价和赋予对应的初始逻辑节点;以及
并行决策终结组件,在多次遍历初始逻辑节点拓扑图之后,存在连续两遍遍历所获得每个直接邻域的并行方案及每个初始逻辑节点被赋予的节点代价和不变的情况下,终结重复遍历过程,从而获得结果逻辑节点拓扑图,由此获得分布式数据处理系统的并行方案。
4.根据权利要求3所述的用于分布式数据处理系统的并行策略决策系统,还包括:
代理节点插入组件,用于在直接邻域标记组件进行标记之前,遍历初始逻辑节点拓扑图,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点,并赋予所述临时中间代理节点数量不超过所有下游初始逻辑节点的并行策略种类的组合数量的候选并行策略,由此获得包含所述临时中间代理节点的初始逻辑节点拓扑图。
5.根据权利要求3或4所述的用于分布式数据处理系统的并行策略决策系统,其中所述子邻域代价计算组件每次遍历的每个子邻域拓扑图所包含与所选择的初始逻辑节点直接相邻的初始逻辑节点的预定数量不超过5。
6.一种用于分布式数据处理系统的并行策略预置方法,包括:
初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
直接邻域标记步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;
连接边跑通概率计算步骤,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;
节点跑通概率计算步骤,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算在该直接邻域拓扑图中的所有初始逻辑节点的候选并行策略的每种随机组合下的所遍历的初始逻辑节点的计算代价和,并计算所遍历的初始逻辑节点的在该直接邻域拓扑图中的所有随机组合下中计算代价和小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及
并行策略预置步骤,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
7.一种用于分布式数据处理系统的并行策略预置方法,包括:
初始逻辑节点生成步骤,接收用户输入的任务配置数据,生成用于所述分布式数据处理系统的初始逻辑节点拓扑图,其中每个初始逻辑节点基于所述任务配置数据附有候选并行方案集合,每个候选并行方案指定了其所属的初始逻辑节点并行方案以及基于该并行方案的候选计算代价标签,以及两个彼此连接的初始逻辑节点之间的每条连接边附有候选传输代价的标签,所述候选传输代价由彼此连接的初始逻辑节点各自的并行方案确定;
直接邻域标记步骤,遍历所述初始逻辑节点拓扑图以获取所述初始逻辑节点拓扑图中一个选择的初始逻辑节点的直接邻域拓扑图并逐一标记所获取的直接邻域拓扑图,所述直接邻域拓扑图包括所选择的初始逻辑节点以及与其有直接连接边的其他初始逻辑节点;
连接边跑通概率计算步骤,遍历每条连接边及其成对的初始逻辑节点,计算成对的初始逻辑节点的候选并行方案的随机组合方式下所遍历的连接边的数据传输代价,并计算所遍历每个连接边的在所有随机组合方式中数据传输代价小于表示不能实现数据传输的正无穷大的组合方式的数量所占所有随机组合方式的数量的概率,作为所遍历的连接边的跑通概率;
节点跑通概率计算步骤,遍历每个初始逻辑节点,获取每个所遍历的初始逻辑节点在以其作为所选择初始逻辑节点的直接邻域拓扑图,计算所遍历的初始逻辑节点在该直接邻域拓扑图中的所有连接边的跑通概率的乘积作为所遍历的初始逻辑节点的跑通概率,并对所有初始逻辑节点的跑通概率进行从小到大排序;以及
并行策略预置步骤,从最小的初始逻辑节点的跑通概率所对应的初始逻辑节点的直接邻域拓扑图所构成的节点集开始,获取与节点集中的任意节点直接相连的初始逻辑节点作为所述节点集的邻居节点,并从所有邻居节点中选择最小的初始逻辑节点的跑通概率所对应的邻居节点,从所选择邻居节点的候选并行策略中搜索到使得所选择邻居节点与节点集的所有连接边的数据传输代价小于正无穷大的一个候选并行策略,由此将所选择的选择邻居节点合并到所述节点集,并进行重复操作,直到节点集包含初始逻辑节点拓扑图的所有初始逻辑节点,从而为初始逻辑节点拓扑图预置并行策略。
8.一种用于分布式数据处理系统的并行策略决策方法,包括:
如权利要求6或7所述的用于分布式数据处理的并行策略预置方法,对初始逻辑节点拓扑图预置并行策略;
子邻域代价计算步骤,针对每个所标记的直接邻域拓扑图,遍历选择所标记的直接邻域拓扑图中的每个子邻域拓扑图,并基于所遍历选择的子邻域拓扑图中的各个初始逻辑节点的候选并行方案所对应的候选计算代价以及各条连接边的候选传输代价的随机组合,计算所遍历选择的子邻域拓扑图的每种随机组合下的子邻域拓扑图的代价和,以及所遍历选择的子邻域拓扑图中的各个初始逻辑节点在所述每种随机组合下的候选并行方案的节点代价和,所遍历选择的子邻域拓扑图的每个都包含其所属的直接邻域拓扑图中的所选择的初始逻辑节点以及预定数量的直接相邻的初始逻辑节点;
子邻域并行决策步骤,计算所遍历选择的子邻域拓扑图的每个初始逻辑节点在所有随机组合下的节点代价和之间的代价和差值,并基于所遍历选择的子邻域拓扑图的中的具有最大代价和差值的初始逻辑节点的最小组合代价和,确定所遍历选择的子邻域拓扑图的子邻域并行方案,并将所确定的子邻域并行方案下的每个初始逻辑节点的节点代价和赋予对应的初始逻辑节点;以及
并行决策终结步骤,在多次遍历初始逻辑节点拓扑图之后,存在连续两遍遍历所获得每个直接邻域的并行方案及每个初始逻辑节点被赋予的节点代价和不变的情况下,终结重复遍历过程,从而获得结果逻辑节点拓扑图,由此获得分布式数据处理系统的并行方案。
9.根据权利要求8所述的用于分布式数据处理系统的并行策略决策方法,还包括:
代理节点插入步骤,用于在直接邻域标记组件进行标记之前,遍历初始逻辑节点拓扑图,在一个具体初始逻辑节点具有两个或两个以上的下游初始逻辑节点时,在所述具体初始逻辑节点和其所有下游初始逻辑节点之间插入临时中间代理节点,并赋予所述临时中间代理节点数量不超过所有下游初始逻辑节点的并行策略种类的组合数量的候选并行策略,由此获得包含所述临时中间代理节点的初始逻辑节点拓扑图。
10.根据权利要求8或9所述的用于分布式数据处理系统的并行策略决策方法,其中所述子邻域代价计算步骤每次遍历的每个子邻域拓扑图所包含与所选择的初始逻辑节点直接相邻的初始逻辑节点的预定数量不超过5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210640356.6A CN115208954B (zh) | 2022-06-07 | 2022-06-07 | 用于分布式数据处理系统的并行策略预置系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210640356.6A CN115208954B (zh) | 2022-06-07 | 2022-06-07 | 用于分布式数据处理系统的并行策略预置系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208954A CN115208954A (zh) | 2022-10-18 |
CN115208954B true CN115208954B (zh) | 2024-04-26 |
Family
ID=83575640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210640356.6A Active CN115208954B (zh) | 2022-06-07 | 2022-06-07 | 用于分布式数据处理系统的并行策略预置系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208954B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115730681B (zh) * | 2022-11-11 | 2023-08-15 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063507A (zh) * | 2014-07-09 | 2014-09-24 | 时趣互动(北京)科技有限公司 | 一种图计算方法及引擎 |
CN105005505A (zh) * | 2015-06-25 | 2015-10-28 | 南京航空航天大学 | 空中多目标轨迹预测的并行处理方法 |
CN111259933A (zh) * | 2020-01-09 | 2020-06-09 | 中国科学院计算技术研究所 | 基于分布式并行决策树的高维特征数据分类方法及系统 |
CN111930519A (zh) * | 2020-09-22 | 2020-11-13 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559166B (zh) * | 2015-09-25 | 2020-07-17 | 伊姆西Ip控股有限责任公司 | 用于分布式处理系统中基于指纹的状态检测方法及设备 |
KR20210091947A (ko) * | 2020-01-15 | 2021-07-23 | 삼성전자주식회사 | 뉴럴 네트워크 모델의 분산 처리 방법 및 장치 |
-
2022
- 2022-06-07 CN CN202210640356.6A patent/CN115208954B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063507A (zh) * | 2014-07-09 | 2014-09-24 | 时趣互动(北京)科技有限公司 | 一种图计算方法及引擎 |
CN105005505A (zh) * | 2015-06-25 | 2015-10-28 | 南京航空航天大学 | 空中多目标轨迹预测的并行处理方法 |
CN111259933A (zh) * | 2020-01-09 | 2020-06-09 | 中国科学院计算技术研究所 | 基于分布式并行决策树的高维特征数据分类方法及系统 |
CN111930519A (zh) * | 2020-09-22 | 2020-11-13 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115208954A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930519B (zh) | 用于分布式数据处理的并行决策系统及其方法 | |
CN110321999B (zh) | 神经网络计算图优化方法 | |
CN110632907B (zh) | 一种分布式装配式置换流水车间调度优化方法及系统 | |
Berger et al. | Approximation alogorithms for the maximum acyclic subgraph problem | |
CN113703775B (zh) | 一种编译方法、装置、设备及存储介质 | |
US8959094B2 (en) | Early return of partial sort results in a database system | |
CN111382347A (zh) | 一种对象特征的处理和信息推送方法、装置和设备 | |
CN115208954B (zh) | 用于分布式数据处理系统的并行策略预置系统及其方法 | |
CN111651137B (zh) | 排序方法、装置、电子装置以及计算机设备 | |
Duan et al. | Computation offloading scheduling for deep neural network inference in mobile computing | |
CN112764940A (zh) | 多级分布式数据处理部署系统及其方法 | |
CN115080225A (zh) | 一种单源最短路径计算方法与系统 | |
CN112799852B (zh) | 逻辑节点的多维sbp分布式签名决策系统及其方法 | |
CN115391170A (zh) | 用于分布式数据处理的并行决策系统及其方法 | |
CN117331700B (zh) | 一种算力网络资源调度系统及方法 | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
Povhan | Logical classification trees in recognition problems | |
Yasin et al. | i MMPC: A Local Search Approach for Incremental Bayesian Network Structure Learning | |
Choi et al. | More Effective Genetic Search For The Sorting Network Problem. | |
Goldman et al. | An efficient parallel algorithm for solving the knapsack problem on hypercubes | |
Menouer et al. | Towards a parallel constraint solver for cloud computing environments | |
Hall et al. | Scheduling in broadcast networks | |
CN110955497A (zh) | 一种基于任务分割的分布式图计算系统 | |
CN116306943B (zh) | 一种面向AIoT的多任务本地协同推理方法及系统 | |
CN115545352B (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 |