CN112764940A - 多级分布式数据处理部署***及其方法 - Google Patents
多级分布式数据处理部署***及其方法 Download PDFInfo
- Publication number
- CN112764940A CN112764940A CN202110386635.XA CN202110386635A CN112764940A CN 112764940 A CN112764940 A CN 112764940A CN 202110386635 A CN202110386635 A CN 202110386635A CN 112764940 A CN112764940 A CN 112764940A
- Authority
- CN
- China
- Prior art keywords
- logic
- node
- logical
- data processing
- sbp
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 326
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims abstract description 104
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 41
- 238000006243 chemical reaction Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 description 39
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000009466 transformation Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 102100037907 High mobility group protein B1 Human genes 0.000 description 5
- 101001025337 Homo sapiens High mobility group protein B1 Proteins 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000010606 normalization Methods 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
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- 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/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多级分布式数据处理部署***及其方法。所述***包括:设备层级设置组件,将多个逻辑数据处理设备设置为至少两级并行逻辑数据处理设备,由此确定SBP分布式签名的维度数量;位置标记获取组件,获取所有逻辑数据处理设备的位置标记;初始逻辑节点拓扑图生成组件,基于接收用户输入的任务配置数据,生成用于多级分布式数据处理***的初始逻辑节点拓扑图;传输代价查询组件,针对每个当前初始逻辑节点,查询传输代价换算表获取上游逻辑节点的输出端的多维SBP分布描述符与前初始逻辑节点的对应输入端的多维SBP分布描述符两者之间的传输代价;结果逻辑节点拓扑图生成组件,基于传输代价查询组件查询结果,选择传输代价总和最小的候选多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。
Description
技术领域
本公开涉及一种数据处理技术。更具体地说,本公开涉及一种基于多维SBP分布式签名的多级分布式数据处理部署***及其方法。
背景技术
随着分布式计算的普及,大型的作业或大逻辑张量会通过分割而将不同部分的数据部署到不同的分布式数据处理***的各个数据处理设备上进行处理,并在各个部分计算过程需要进行中间参数的交互。这样,在具体作业的处理过程中,部署在一个数据处理设备上的计算中间参数或结果会称为另一个数据处理设备上的计算任务的输入数据,这会引起数据处理设备之间的数据传输开销。在作业数据很大的情况下,这种不同数据处理设备之间的传输开销对于分布式数据处理***而言将造成极大的计算负担。
但是随着模型越来越大以及待处理数据也越来越大,在单机无法实现模型处理的情况下,一方面通过提高数据处理设备(例如GPU卡)的内存来满足模型过大的情形,但是通常一张16G的GPU卡的价格要比两张8G的GPU卡的价格还要贵一倍。因此一味提高单机的内存资源是不合算的。因此在有些场景模型太大以至于使用数据并行通信开销太大,或者模型超过GPU显存容量,这种情况必须对模型进行切分,每个设备上只完成一部分模型对应的计算,这称为模型并行。人们通常通过将模型并行方式采用两张或多张内存资源较小的GPU卡来满足模型较大的情况,即进行模型并行的方式满足数据处理的需要。模型并行时不需要在设备间同步模型,但需要在设备间同步数据。当前绝大部分深度学习框架不支持模型并行,或者支持比较弱,需要非常微妙的调整才能高效执行,因此都需要人为经过反复的调试。尽管如此,反复调试的结果也不尽人意。模型并行是业界公认的难题。除了模型并行本身比较复杂之外,模型并行模块与其它并行模式的协同也非常复杂,需要小心的管理上下游之间的数据传输(路由)。而且多数情况下,模型并行带来的通信开销和同步消耗超过数据并行,因此加速比也不及数据并行。但对于单机内存无法容纳的大模型来说,模型并行是一个很好的选择。另一方面,在待处理数据规模也比较大的情况下,也需要通过数据并行来满足需要。但是同时进行模型并行和数据并行的混合并行,目前很多深度学习框架都无法自动实现,因此人们依然需要通过追求大容量的GPU卡来解决并行处理问题,并且在具有大容量的GPU卡的情况下,为了降低人员的劳动量,通常依然选择单一的数据并行方式或模型并行方式来实现数据处理的目的。
而要兼顾大规模数据和大规模模型情形的,采用混合并行,则更为困难。以相邻的两层神经网络为例,如果第一个层次使用数据并行,第二个层次使用模型并行,那么在前向计算时,就需要把数据并行部分的结果经过拷贝(Copy), Concat 两层路由汇总到模型并行的两个设备上去,如果前后两层在不同的数据处理设备上执行,那么还需要通过跨机通信。如果这些复杂的数据路由需要用户手工参与管理,那么一方面过于复杂(想象一下数据并行和模型并行的各种组合模式),另一方面极易出错。在理想的情况,这些复杂性应该由深度学***台都不支持这一功能。
因此,人们期望获得一种在小容量GPU卡的分布式计算资源前提下,实现大规模模型和数据处理的技术方案,这样一方面可以实现模型并行,另一方面又能满足与在模型并行情形下同时进行数据并行相同的数据处理效果,并且能够自动实现并行部署。很显然,目前并没有能够实现混合并行数据处理的部署***,尤其是能够实现自动部署的***。
发明内容
为此,本申请的发明人提出的一种多级分布式数据处理部署***,包括:设备层级设置组件,将多个逻辑数据处理设备设置为至少两级并行逻辑数据处理设备并指定彼此之间的逻辑层级关系,由此确定SBP分布式签名的维度数量,其中每个上级逻辑数据处理设备含有或连接有相同数据量的下级数据处理设备构成;位置标记获取组件,获取所有逻辑数据处理设备的位置标记; 初始逻辑节点拓扑图生成组件,基于接收用户输入的任务配置数据,生成用于多级分布式数据处理***的初始逻辑节点拓扑图,每个初始逻辑节点附有一个或多个候选多维SBP分布式签名以及位置标记,每个多维SBP分布式签名的输入端和输出端的多维SBP分布描述符的每一维度的描述符描述了逻辑张量在对应层级的逻辑数据处理设备上的分布方式以及每个位置标记指明了逻辑张量所部署的逻辑数据处理设备;传输代价查询组件,针对每个当前初始逻辑节点,基于其每个已经确定了的多维SBP分布式签名的上游逻辑节点的输出端的多维SBP分布描述符以及当前初始逻辑节点的每个候选多维SBP分布式签名的与所述上游逻辑节点的输出端对应输入端的多维SBP分布描述符,查询传输代价换算表获取上游逻辑节点的输出端的多维SBP分布描述符与前初始逻辑节点的对应输入端的多维SBP分布描述符两者之间的传输代价;以及结果逻辑节点拓扑图生成组件,基于传输代价查询组件查询结果,获取当前初始逻辑节点的每个候选多维SBP分布式签名的所有输入端的所需传输代价总和,从而选择传输代价总和最小的候选多维SBP分布式签名作为所述当前初始逻辑节点的确定的多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。
根据本公开的多级分布式数据处理部署***,还包括:计算图生成组件,用于基于确定了多维SBP分布式签名的结果逻辑节点构成结果逻辑节点拓扑图生成任务逻辑计算图,并在当前结果逻辑节点的一个输入端的多维SBP分布描述符与对应的上游逻辑节点的输出端的多维SBP分布描述符不同时,在当前结果逻辑节点对应的各个当前计算节点的所述输入端和对应的上游逻辑节点对应的各个计算节点的输出端之间***变换计算节点,以便将上游逻辑节点对应的各个计算节点的输出端所输出的由输出端的多维SBP分布描述符描述的逻辑张量变换为当前结果逻辑节点对应的各个计算节点的对应的输入端所要输入的由输入端的多维SBP分布描述符描述的逻辑张量。
根据本公开的多级分布式数据处理部署***,其中所述设备层级设置组件基于接收用户输入的任务配置数据,在一个逻辑数据处理设备的实际计算资源小于该逻辑数据处理设备的输入端的逻辑张量和结果逻辑张量所需的计算资源时,在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,每个候选多维SBP分布式签名中与所述时间维度逻辑数据处理设备对应维度的SBP分布描述符为时间维度分布描述符,属于同一候选多维SBP分布式签名的时间维度分布描述符包括分割逻辑张量描述符和广播逻辑张量分布描述符,其中分割逻辑张量描述符所附有的逻辑张量的分割次数与广播逻辑张量分布描述符所附有的逻辑张量的广播次数相同。
根据本公开的多级分布式数据处理部署***,其中所述计算图生成组件在多维SBP分布式签名中含有时间维度分布描述符时,基于分割逻辑张量描述符在当前逻辑节点对应的计算节点对应输入端之前***分割计算节点、基于广播逻辑张量分布描述符在当前逻辑节点对应的计算节点的输入端之前***重复广播计算节点以及在当前逻辑节点对应的计算节点的输出端之后***集结计算节点。
根据本公开的另一个方面,提供了一种多级分布式数据处理部署方法,包括:通过设备层级设置组件将多个逻辑数据处理设备设置为至少两级并行逻辑数据处理设备并指定彼此之间的逻辑层级关系,由此确定SBP分布式签名的维度数量,其中每个上级逻辑数据处理设备含有或连接有相同数据量的下级数据处理设备构成;通过位置标记获取组件获取所有逻辑数据处理设备的位置标记;通过初始逻辑节点拓扑图生成组件,基于接收用户输入的任务配置数据,生成用于多级分布式数据处理***的初始逻辑节点拓扑图,每个初始逻辑节点附有一个或多个候选多维SBP分布式签名以及位置标记,每个多维SBP分布式签名的输入端和输出端的多维SBP分布描述符的每一维度的描述符描述了逻辑张量在对应层级的逻辑数据处理设备上的分布方式以及每个位置标记指明了逻辑张量所部署的逻辑数据处理设备;通过传输代价查询组件,针对每个当前初始逻辑节点,基于其每个已经确定了的多维SBP分布式签名的上游逻辑节点的输出端的多维SBP分布描述符以及当前初始逻辑节点的每个候选多维SBP分布式签名的与所述上游逻辑节点的输出端对应输入端的多维SBP分布描述符,查询传输代价换算表获取上游逻辑节点的输出端的多维SBP分布描述符与前初始逻辑节点的对应输入端的多维SBP分布描述符两者之间的传输代价;以及通过结果逻辑节点拓扑图生成组件,基于传输代价查询组件查询结果,获取当前初始逻辑节点的每个候选多维SBP分布式签名的所有输入端的所需传输代价总和,从而选择传输代价总和最小的候选多维SBP分布式签名作为所述当前初始逻辑节点的确定的多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。
根据本公开的多级分布式数据处理部署方法,还包括:通过计算图生成组件,基于确定了多维SBP分布式签名的结果逻辑节点构成结果逻辑节点拓扑图生成任务逻辑计算图,并在当前结果逻辑节点的一个输入端的多维SBP分布描述符与对应的上游逻辑节点的输出端的多维SBP分布描述符不同时,在当前结果逻辑节点对应的各个当前计算节点的所述输入端和对应的上游逻辑节点对应的各个计算节点的输出端之间***变换计算节点,以便将上游逻辑节点对应的各个计算节点的输出端所输出的由输出端的多维SBP分布描述符描述的逻辑张量变换为当前结果逻辑节点对应的各个计算节点的对应的输入端所要输入的由输入端的多维SBP分布描述符描述的逻辑张量。
根据本公开的多级分布式数据处理部署方法,其中所述设备层级设置组件基于接收用户输入的任务配置数据,在一个逻辑数据处理设备的实际计算资源小于该逻辑数据处理设备的输入端的逻辑张量和结果逻辑张量所需的计算资源时,在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,每个候选多维SBP分布式签名中与所述时间维度逻辑数据处理设备对应维度的SBP分布描述符为时间维度分布描述符,属于同一候选多维SBP分布式签名的时间维度分布描述符包括分割逻辑张量描述符和广播逻辑张量分布描述符,其中分割逻辑张量描述符所附有的逻辑张量的分割次数与广播逻辑张量分布描述符所附有的逻辑张量的广播次数相同。
根据本公开的多级分布式数据处理部署方法,其中所述计算图生成组件在多维SBP分布式签名中含有时间维度分布描述符时,基于分割逻辑张量描述符在当前逻辑节点对应的计算节点对应输入端之前***分割计算节点、基于广播逻辑张量分布描述符在当前逻辑节点对应的计算节点的输入端之前***重复广播计算节点以及在当前逻辑节点对应的计算节点的输出端之后***集结计算节点。
通过根据本公开的根据本公开的多级分布式数据处理部署***和方法,从全局角度将多级分布式数据处理***在处理数据过程中的不同数据处理设备之间的数据交换量最小化,从而减少的数据交互过程产生的开销,这样有效地降低了数据交换对实际运算操作带来的不良影响。并且能够在大规模模型和大规模数据处理需求下,降低对数据处理设备的单卡计算资源量的需求,从而降低了所需的硬件成本,另一方面能够自动进行并行部署,尤其是能够自动完成需要人工介入下的混合并行部署情形下实现的相同的数据处理效果。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1所示的是采用的根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的多级分布式数据处理***的示意图。
图2所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***示意图。
图3所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的初始逻辑节点拓扑图的局部示意图。
图4图示了根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的传输代价计算组件计算不同二维SBP分布描述符的逻辑张量之间产生的数据传输量的第一示意图。
图5图示了根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的传输代价计算组件计算不同二维SBP分布描述符的逻辑张量之间产生的数据传输量的第二示意图。
图6所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的另一实施方式的示意图。
图7所示的是使用图6所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***将逻辑节点拓扑图变换成计算图的一个实例。
具体实施方式
下面结合实施例和附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,在下文中,两个可能设备之一可以被称为第一逻辑分布式签名也可以被称为第二逻辑分布式签名,类似地,两个可能设备的另一个可以被称为第二逻辑分布式签名也可以被称为第一逻辑分布式签名。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
图1所示的是采用的根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的多级分布式数据处理***的示意图。分布式数据处理***包括多级数据处理设备。如图1所示,所述多级分布式数据处理***包括至少两级并行数据处理设备,第一级数据处理设备D1、D2…Dn。每个第一级数据处理设备包括多个并行的第二级数据处理设备,例如第一级数据处理设备D1下连接多个并行的第二级数据处理设备D11、D12…D1m,第一级数据处理设备Dn包括多个并行的第二级数据处理设备Dn1、Dn2…Dnm。可选择地,每个第二级数据处理设备包括多个并行的第三级数据处理设备。例如第二级数据处理设备Dn2包括多个并行的第三级数据处理设备Dn21、Dn22…等。尽管图1中显示为三级,但是在实际情况中可以为两级,也可以为更多级别。对应到实际数据处理***中,例如,第一级数据处理设备可以为服务器,第二级数据处理设备为服务器上的主机,第三级数据处理设备为主机上的计算设备GPU或其它协处理器,例如TPU等。可选择地,从互联网角度而言,第一级数据处理设备可以是某个机房,第二级数据处理设备是机房中的各种服务器,第三级别数据处理设备为服务器上的主机,第四级数据处理设备为主机上的计算设备GPU或其它协处理器,例如TPU等。
尽管图1显示出第一级数据处理设备为实体物理数据处理设备,但是从逻辑上而言,第一级数据处理设备可以是一个逻辑数据处理设备,仅仅代表了其下一级数据处理设备的总和代称。换句话举例而言,在物理上并不实际存在第一级数据处理设备D1,而是将第二级数据处理设备D11、D12…D1m这一集合总称为第一级数据处理设备D1,同样,在物理上并不实际存在第一级数据处理设备Dn,而是将多个并行的第二级数据处理设备Dn1、Dn2…Dnm总称为第一级数据处理设备Dn。同样,第二级数据处理设备为其所下设的多个第三级数据处理设备的逻辑总称。以此类推,可以根据实际需要将所有实际的并行分布的数据处理设备从逻辑上划分成多级,每级包含预定数量的物理数据处理设备,从而使得所有物理数据处理设备形成一种逻辑拓扑关系。尽管如图1所示的属于不同第一级逻辑数据处理设备的第二逻辑数据处理设备的数量是相同的,但是属于不同第一级逻辑数据处理设备的第二逻辑数据处理设备的数量也可以不相同。当属于不同第一级逻辑数据处理设备的第二逻辑数据处理设备的数量不相同是,在进行实际数据分割时,可以根据设备数量的不同按照预定的权值进行划分。通常情况下,采用同级逻辑数据处理设备的数量是相同的。
图2所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的原理示意图。如图2所示,所述多级分布式数据处理部署***100包括设备层级设置组件110、位置标记获取组件120、初始逻辑节点生成组件130、传输代价计算组件150。具体而言,设备层级设置组件110获取整个分布式数据处理***中的所有数据处理设备,并将所有数据处理设备编组到具体的层级和指定彼此之间的逻辑层级关系。举例而言,在分布式数据处理***存在计算卡GPU0-7,可以根据实际需要将GPU0-3分成一组,将GPU4-7分成另一组,这样,计算卡GPU0-3作为一个整体,被指定为第一级数据处理设备,而GPU0、GPU1、GPU2以及GPU3则为第二级数据处理设备。同样,计算卡GPU4-7作为一个整体,被指定为第一级数据处理设备,而GPU4、GPU5、GPU6以及GPU7则为第二级数据处理设备。通过这样,就指定各级数据处理设备之间以及同级数据处理设备之间的逻辑层级关系,由此形成整个分布式数据处理***的逻辑拓扑关系图,该逻辑拓扑关系图可能与实际的物理关系拓扑图相同,也可以不同,不过通常两者是相同的。位置标记获取组件120获取所有数据处理设备的位置标记,该位置标记可以包含其物理位置、逻辑位置、逻辑层级关系等。为此,我们将每个具体的数据处理设备称为逻辑数据处理设备。如图1所示,作为第一级逻辑数据处理设备D1,其既可以是实际的物理数据处理设备,即多个实际数据处理设备D11、D12、…D1m同时插接在实际的第一数据处理设备D1(例如服务器)上,也可以是包含多个实际数据处理设备D11、D12、…D1m的集合的总称,即没有实际的第一数据处理设备D1。
所述初始逻辑节点生成组件130接收用户输入的任务配置数据,生成用于所述多级分布式数据处理***的初始逻辑节点拓扑图140。在作业输入以后,多级分布式数据处理***会基于用户输入的作业描述,自动将作业分解成众多微小的作业任务,这些众多的微小作业任务由各种操作组元构成,这些操作组元作为逻辑节点彼此前后互联形成初步逻辑张量处理神经网络拓扑图。这些神经网络的每层网络包含了众多的逻辑节点,相邻两层神经网络之间彼此连接,从而为分布式数据处理***中执行实际作业处理的执行体的布置(PLACEMENT)提供了指引。图2中仅仅示意性地给出了一个简单的初始逻辑节点拓扑图140,其中显示了节点A、B、C、D、E、F、L以及K。其他未显示的采用省略方式替代。在实际的数据处理中,初始逻辑节点拓扑图140会更复杂。初始逻辑节点拓扑图140包含实现用户所描述的计算任务的基本运算节点。这种初始逻辑节点拓扑图140的生成方式属于本领域常规技术,因此不在此赘述。
初始逻辑节点拓扑图140的各个初始逻辑节点每个包含多个候选多维SBP分布式签名。作为已经由用户配置了多维SBP分布式签名的源逻辑节点或基于用户的任务描述而确定了多维SBP分布式签名的初始逻辑节点,例如初始逻辑节点A、E以及B,其仅仅具有唯一的多维SBP分布式签名,例如初始逻辑节点A的SBP-1,初始逻辑节点C的SBP-2以及初始逻辑节点E的SBP-3。而其他初始逻辑节点则包含有其固有的一些候选多维SBP分布式签名。如图2中的初始逻辑节点B,其具有多个候选多维SBP分布式签名,例如三个,包括SBP-1、SBP-2以及SBP-3。其他初始逻辑节点也各自具有不同的候选多维SBP分布式签名,在此不一一列出。不同的初始逻辑节点根据其具体执行的运算操作不同,会有不同的固定的候选多维SBP分布式签名。
根据本公开的多维SBP分布式签名是应用在一种多级分布式数据处理***中的签名。在如上多级分布式数据处理***中,由于经常存在数据并行、模型并行以及混合并行以及流式并行等的情形,因此,经常会存在相邻的逻辑节点的任务将被同时部署到属于不同第一级别数据处理设备所属的不同下一级数据处理设备上。因此在实际数据处理过程中,在同一级别的各个数据处理设备之间会对中间参数进行交换,会导致大量的同一级别的数据处理设备之间的数据传输开销。为此,为了减少数据传输开销,需要在初始逻辑节点拓扑图140的基础上,进一步生成更多的逻辑节点,以便完善逻辑节点拓扑图,尤其是减少上下游逻辑节点之间的传输开销,需要使得上下游逻辑节点的数据分布方式所带来的变化最小。为此,本公开为了获得比较好的传输代价,就需要针对每个逻辑节点指定合适的逻辑分布式签名。所述逻辑分布式签名是采用逻辑张量的分布描述符对逻辑节点的签名,每个逻辑张量的分布描述符描述了每个逻辑张量的在整个多级分布式计算***中的分布方式,主要包括分割(SPLIT)逻辑张量描述符、广播(BROADCAST)逻辑张量描述符以及部分值(PARTIAL VALUE)逻辑张量描述符。因此,应用于本公开的多维逻辑分布式签名被称为多维SBP分布式签名,而针对每个逻辑张量的多维逻辑分布描述符则称为多维SBP分布描述符。具体到多级分布式数据处理***,则需要采用多维分布描述符来描述逻辑张量分布到每级数据处理设备的分布方式,其维度数量要等于或大于多级分布式数据处理***的级别。在任何逻辑节点不需要部署到末级数据处理设备时,其多维分布描述符则实际只包含到其所部署的数据处理设备所述的级别的维度数,其余维度的分部式描述符则默认为空白。
具体而言,对于SBP分布式签名,对于每一维度的分布描述符,分割(SPLIT)逻辑张量描述符就是描述一个逻辑张量的分割方式,例如将一个逻辑张量根据用户的描述在指定的维度上进行分割,并分布到不同的数据处理设备上进行指定的计算处理。如果一个逻辑张量为二维逻辑张量,则该逻辑张量在其第0维被切割时,则该逻辑张量所形成的一批数据的数据逻辑张量的分布描述符为S(0),则每个逻辑节点在其输入端获得这种数据逻辑张量是原始逻辑张量在第0维上被分割过的张量,并将这种分割部署方式描述为S(0)。同样,如果一个逻辑张量为二维逻辑张量,则该逻辑张量在其第1维被切割时,则该逻辑张量所形成的一批数据的数据逻辑张量的分布描述符为S(1),则每个逻辑节点在其输入端获得这种数据逻辑张量是原始逻辑张量在第1维上被分割过的张量,并将这种分割部署方式描述为S(1)。类似地,如果待处理的任务数据的维度为更多维度,则会有更多的分布描述符,例如S(2)、S(3)…等等。这类所提到的逻辑张量可以是被处理的数据张量或模型张量。如果数据张量本身被切割,则在分布式数据处理***上形成数据并行处理,如果模型张量被分割,则在分布式数据处理***上会形成模型并行处理。这里所提到的并行既可以是空间上并行,也可以是时间上的并行。如果逻辑节点的输入为这种分割(SPLIT)逻辑张量描述符,则在实际数据处理过程中,如果一个逻辑张量的数据大小为T,而该逻辑张量将被分布到四个第一级数据处理设备(或四张计算卡)上进行数据并行计算,则每张卡上分配到的数据量为四分之一的数据,整个四张卡上的数据量则为T。如果一个逻辑张量的分布时先在第0维被分割并行到第一级的多个数据处理设备上,之后在每个第一级数据处理设备上针对被分割后形成的分片逻辑张量再次在第1维上进一步被分割后并行分布到该第一级数据处理设备所包括的多个(例如四个)第二级数据处理设备上,则该逻辑张量的分布树描述符则为二维SBP分布描述符( S(0), S(1)),其实际在每个第二级数据处理设备上的数据张量的大小则为原始逻辑张量大小的1/16。如果一个原始逻辑张量的分布时先在第0维被分割并行到第一级的多个数据处理设备上,之后在每个第一级数据处理设备上针对被分割后形成的分片逻辑张量再次在第0维上进一步被分割后并行分布到该第一级数据处理设备所连接的多个第二级数据处理设备上,则该逻辑张量的分布树描述符则为二维分布描述符( S(0), S(0))。以此类推。分布描述符也可以为三维或更多维。
广播(BROADCAST)逻辑张量描述符是用来描述一个逻辑张量以广播方式在分布式***中进行发布的方式。通常,对于仅仅进行数据并行的数据处理***,模型数据通常被广播到各个数据处理设备,因此对于 被输入到逻辑节点的广播数据采用广播逻辑张量描述符进行描述。在实际数据处理过程中,被广播的数据,在每张实际计算卡上的逻辑张量大小都是相同的。如果一个逻辑张量的分布是先先被广播到第一级的各个数据处理设备上,之后在每个第一级数据处理设备上针对被广播逻辑张量在第0维上被分割后并行分布到该第一级数据处理设备所连接的多个第二级数据处理设备上,则该逻辑张量的分布描述符则为二维分布描述符( B, S(0)),则其在每个第二级数据处理设备上的实际逻辑张量的大小则为原始逻辑张量大小的1/4(如果每个第一级数据处理设备所包含或连接的第二级数据处理设备的数量为4的话)。如果一个逻辑张量的分布时先在第0维被分割并行到第一级的多个数据处理设备上,之后在每个第一级数据处理设备上针对被分割后形成的分片逻辑张量在第0维上进一步被广播到该第一级数据处理设备所包括的多个第二级数据处理设备上,则该逻辑张量的分布树描述符则为二维分布描述符(S(0),B)。依此类推。
部分值(PARTIAL VALUE)逻辑张量描述符P表示一个逻辑节点的输入或输出逻辑张量为多个同类逻辑张量的部分值。这些部分值包括部分和、部分积、部分“与”结果、部分最大以及部分最小。由于通常会为了对数据进行数据并行处理,因此,在不同设备上对数据的处理是对部分数据的处理。例如有些逻辑张量为S(0)或S(1),则在一些数据处理设备上获得结果逻辑张量为S(0),这些部分数据处理设备上的结果逻辑张量合并起来就是部分值逻辑张量P。将所有设备上的同类数据合并起来才是最后的输出结果。
上述各种逻辑张量的分布描述符代表了这些逻辑张量在分布式计算***中的分布方式,而这些逻辑张量无论是作为逻辑节点的输入和输出,其各自的分布方式也描述了逻辑节点对操作数据的分布描述。为了描述方便,本公开将这种多维度的分布描述符简称为“多维SBP分布描述符”或“多维分布描述符”。
为此,随着初始逻辑节点拓扑图140的生成,本公开用于进行分布式数据处理部署的初始逻辑节点,也就是一些运算逻辑节点也具备了各个输入和输出的数据分布描述符,这些输入和输出分布描述符形成了对逻辑节点的一种签名,即采用逻辑张量的分布描述符对运算逻辑节点的签名。为了方便表述,采用这三种分布描述符的英文首字母来简称这种签名为“多维SBP分布式签名”。
根据每个分布式计算***中用户对计算任务的描述和数据并行的要求,这种描述符会包括至少三种基本S、B以及P。如果对数据和模型存在多种分割方式,则每增加一种分割方式,则增加一种描述符。如果一个逻辑张量先后或同时在两个不同维度进行分割,其分布描述符如上所述为二维分布描述符。如果一个逻辑张量采用两种分布方式进行分布,则其分布描述符可以如上所述为二维分布描述符。如果一个逻辑张量先在一个维度进行分割后再对分片逻辑张量在同一维度进行分割,其分布描述符如上所述也为二维分布描述符。以此类推,可以三维或更多维度的分布描述符。针对每个逻辑节点,其签名都包含了这些描述符的各种组合方式。因此,在根据本公开分布***中,对于一维SBP描述符,至少有三种基本分布描述符,通常为有四种分布描述符,例如如下四种SBP描述符,S(0)、S(1)、P以及B。根据逻辑张量维度数量不同,可以有更多分布描述符。如果为四种SBP描述符,则可以按照输入输出的排列组合方式形成多种多维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分布式签名,其由二维分布描述符构成,二维的分布描述符由一维度分布描述符组合而成,例如(S(0), S(0))、(S(1), S(1))、(S(0), S(1))、(S(0), B)) 、(S(1), B)) 、(B, B)) 、(P,S(0)) 、(B, P) 、(P, P)等等,二维SBP分布式签名例如:[(S(0), S(0)) (B, B)→(S(0), S(0))]、[(S(1), S(1)) (B, B)→(S(1), S(1))]、[(S(0), B) (S(1), S(1))→(P, S(1))]、[(S(0), B) (B, S(1))→(S(0), S(1))]等等。每个签名形式中,箭头左侧为输入逻辑张量的分布描述符,箭头右侧为输出逻辑张量的分布描述符。为了描述方便,下面将“分布描述符为S(0)的逻辑张量”简称为“S(0)逻辑张量”,将“分布描述符为B的逻辑张量”简称为“B逻辑张量”,将“分布描述符为P的逻辑张量”简称为“P逻辑张量”,同样,将“分布描述符为(S(0), B)的逻辑张量”简称为“(S(0), B)逻辑张量”,将“分布描述符为(B, S(1))的逻辑张量”简称为“(B, S(1))逻辑张量”,将“分布描述符为(P, S(1))的逻辑张量”简称为“(P, S(1))逻辑张量”,将“分布描述符为(S(0), B,S(1))的逻辑张量”简称为“(S(0), B,S(1))逻辑张量”,将“分布描述符为(B, S(1), S(1))的逻辑张量”简称为“(B, S(1), S(1))逻辑张量”,将“分布描述符为(P, S(1), S(0))的逻辑张量”简称为“(P, S(1), S(0))逻辑张量”等等,以此类推。
根据实际情况需要多维SBP分布式签名也可以更多维度,例如三维或四维以致更多。所有多维SBP分布式签名是各种SBP描述符组合结果。任意多维SBP分布式签名所包含的输入逻辑张量的SBP描述符和输出逻辑张量的SBP描述符,其维度数量都是对应的,并且输入逻辑张量的SBP描述符和输出逻辑张量的SBP描述符在同一维度位置的SBP描述符符合一维SBP分布式签名的输入逻辑张量与输出逻辑张量之间的变换逻辑。
举例而言,二维SBP分布式签名[(S(1), S(1)) (B, B)→(S(1), S(1))]其表示,在第一层级逻辑数据处理设备上,第一维逻辑张量的SBP分布式签名为(S(1), B)→S(1),而在每个第一层级逻辑数据处理设备所包括的多个第二层级逻辑数据处理设备之上,其对应的第二维逻辑张量的SBP分布式签名为(S(1), B)→S(1)。因此,从结果上而言,具体到每个部署到第二层级逻辑数据处理设备上的逻辑节点所具有的SBP分布式签名则为二维SBP分布式签名[(S(1), S(1)) (B, B)→(S(1), S(1))]。换句话说,在该逻辑节点的第一输入端上获得输入逻辑张量的分割方式为先在第1维度上进行一次分割,即分割到例如四个第一级数据处理设备上,随后将每个分片逻辑张量再在第1维度上分割到在每个第一级数据设备下的例如四个第二级数据处理设备上。因此,最终部署在每个第二级数据处理设备上的的逻辑张量为在第1维度上分割出的1/16的逻辑张量。而在该逻辑节点的第二输入端上获得就是通过两次广播方式部分到原始的另一个逻辑张量。而通过运算后获得的结果逻辑张量的也在第1维度上被分割16次的结果逻辑张量。
同样,对于SBP分布式签名[(S(0), B) (B, S(1))→(S(0), S(1))],在逻辑上,第一级部署方式为S(0), B→S(0),第二级部署方式为B, S(1)→S(1),通俗而言,该逻辑节点处理数据的方式为,首先将第一逻辑张量在第0维上进行分割形成S(0)逻辑张量部署到多个第一级逻辑数据处理设备上以及将第二逻辑张量作为B逻辑张量广播到多个第一级逻辑数据处理设备上,随后,将按照S(0)分割部署到每个第一级逻辑数据处理设备上的分片逻辑张量广播到该第一级逻辑数据处理设备所连接或包括的多个第二级逻辑数据处理设备上,以及随后将按照B广播到每个第一级逻辑数据处理设备上广播逻辑张量在第1维进行分割后分布到该第一级逻辑数据处理设备所连接或包括的多个第二级逻辑数据处理设备上。该逻辑节点因此获得的逻辑结果张量为最终结果逻辑张量在第0维和第1维都进行分割的结果逻辑张量,即(S(0), S(1))逻辑张量,为最终结果逻辑张量的1/16(如果分割数量都为4的话)。
每个逻辑张量可以有多种SBP描述符,而每个逻辑节点所代表的运算方式可以多种SBP 签名的情形。例如,图2所示的SBP-1可以是是二维的多维SBP分布式签名,例如为[(B, S(1), (S(1), S(0)))→(S(0), P)]。实际应用中,不同签名形式可以具有不同的编号,这里给出的编号仅仅是为了描述的方便,并不意味着需要对每个签名都赋予一个编号,可以完全没有编号,签名的不同形式彼此之间不需要编号就可以彼此区分。
可以基于用户任务描述赋予每个初始逻辑节点如上所述的多维SBP分布式签名。通常的任务逻辑节点是一些运算操作节点,其执行特定的运算操作,因此其具有特定的候选多维SBP分布式签名。需要指出的是,并不是每个任务逻辑节点所具备的多维SBP分布式签名都一样,通常进行乘法操作的任务逻辑节点其多维SBP分布式签名的输入逻辑张量不包含部分和逻辑张量,因此其输入逻辑张量的SBP描述符不包含分布描述符P。对于执行加法操作的任务逻辑节点的候选多维SBP分布式签名则可以包括各种SBP描述符彼此之间或自己之间的任意组合。以二维SBP分布式签名[(S(0), B) (B, S(1))→(S(0), S(1))]为例,对于具有这种多维SBP分布式签名的逻辑节点,表示其有两个输入端的逻辑张量描述符,即(S(0), B) 和(B, S(1)),以及输出端的逻辑张量的描述符(S(0), S(1)),即二维多维SBP分布式签名的逻辑张量描述符也是二维的。如上所述,第一输入逻辑张量的描述符(S(0), B)表示待处理的第一逻辑张量(例如大小为T)首先在第0维(这里指的是逻辑张量自身的维度)进行分割(即第一维的S(0))成多个第一分片逻辑张量(如果分割数量为4,则大小为T/4),随后对于分割后的每个第一分片逻辑张量进行空间上广播或在时间上被连续输出(时间维度的广播)(即第二维的B),第二输入逻辑张量的描述符(B, S(1))表示待处理的第二输入逻辑张量是首先进行空间上广播,随后对于广播的待处理的第二逻辑张量在第1维(这里指的是逻辑张量自身的维度)进行分割(即第二维的S(1))成多个第二分片逻辑张量,最后,经过逻辑节点处理过的第一逻辑张量和第二逻辑张量形成的结果逻辑张量的分布描述符为(S(0), S(1))。每个初始逻辑节点基于所述任务配置数据附有候选逻辑分布式签名集合。所述候选逻辑分布式签名集合中的每个逻辑分布式签名指定了其所属的初始逻辑节点的每个输入逻辑张量的分布描述符以及每个输出的逻辑张量的分布描述符。
尽管初始逻辑节点生成组件130生成了初始逻辑节点拓扑图140,但是初始逻辑节点拓扑图140中每个逻辑节点将使用哪种多维SBP分布式签名所确定的逻辑张量或者说使用哪种分布式逻辑张量以及输入何种分布式逻辑张量,需要进一步确定。
因此,根据本公开的逻辑节点分布式签名决策***100的传输代价计算组件150从初始逻辑节点拓扑图140中的源逻辑节点开始,在当前逻辑节点(例如逻辑节点B)的所有上游逻辑节点(例如逻辑节点A和E)的逻辑标签或SBP标签已经被确定时,传输代价计算组件150针对所述逻辑节点B的每个候选多维逻辑分布式签名所述逻辑节点B的所有上游逻辑节点的与逻辑节点B的输入端对应的输出端的分布描述符,计算将每个上游逻辑节点输出端的多维SBP分布描述符所描述的逻辑张量变换为逻辑节点B的对应输入端的多维SBP分布描述符所描述的逻辑张量所需的传输的数据的代价。如图2所示,逻辑节点B具有很多候选多维SBP分布式签名,例如SBP-1、SBP-2以及SBP-3。举例而言,SBP-1其可能形式为[((B, S(1)), (S(1), S(0))→(S(1), P)]、 [(S(0), B) (B, S(1))→(S(0), S(1))]、[(S(0), S(0)) (B, B)→(S(0), S(0))]、[(S(0), B) (S(1), S(1))→(P, S(1))]的签名,初始逻辑节点A的签名SBP-5其可能形式举例而言为[(S(0), S(0)) (B, B)→(S(0), S(0))]的签名,初始逻辑节点E的签名SBP-3可能形式举例而言为[(B, B)→(B, B)]。作为逻辑节点B的上游逻辑节点的逻辑节点A和逻辑节点E,其SBP分布式签名同样是二维的SBP分布式签名。
如图2所示,初始逻辑节点拓扑图140中逻辑节点E的标签SBP-3的形式如果为“[S(1), S(0)]→[S(1), S(0)]”,则其输入逻辑张量分布描述符则为[S(0), S(1)],因此其输入逻辑张量为[S(1), S(0)]逻辑张量,同样,其输出逻辑张量分布描述符则为[S(1), S(0)],因此其输出逻辑张量为[S(1), S(0)]逻辑张量,更具体而言,无论是其输入还是其输出逻辑张量描述符,其第一维逻辑张量分布描述符为S(1),第二维逻辑张量分布描述符为S(0)。因此,无论是其输入还是其输出逻辑张量描述符[S(1), S(0)],如果每个维度的分割数量为4,则该逻辑张量描述符[S(1), S(0)]所描述的逻辑张量的大小则为初始逻辑张量大小的1/16。
如果逻辑节点B的候选多维SBP分布式签名SBP-2(即“[(S(1), (S(1)) ,(S(0),B)→(P, S(1))]”)被选择为确定的签名,则其对应节点E的输出端的第一输入端的输入逻辑张量的第一维分布描述符则必须是(S(1), (S(1)),即第一输入端必须获得一个第一维描述符为S(1)以及第二维描述符也为S(1)的(S(1), (S(1))逻辑张量,而其对应于节点A的输出端的第二输入端的输入逻辑张量的第一维分布描述符则必须是(S(0), B),即第二输入端必须获得第一维描述符为S(0)以及第二维描述符也为B的一个(S(0), B)逻辑张量。在分布式计算***中,由于各个逻辑节点的操作任务尤其是运算任务被切割分布到各个数据处理设备(例如计算卡CPU、GPU或TPU)上,因此为了最终获得正确的结果,需要不断对中间参数进行同步,这就会涉及到不同数据处理设备之间的中间参数的交换。当上一逻辑节点的多维SBP分布式签名所含有的输出逻辑张量的SBP描述符与当前节点的多维SBP分布式签名的对应输入逻辑张量的SBP描述符不一致时,通常在实际运行过程中进行输出转换,而这个转换过程通常需要获取位于另一个数据处理设备上的部分数据,以便与本地能够获得的数据一起构成当前逻辑节点输入端所需的数据,从而符合当前逻辑节点的输入端的数据逻辑张量的分布描述符。这种从另一个设备上获取部分数据的过程将会产生比较大的数据传输开销或传输代价。因此,为当前逻辑节点选择不同的签名会产生不同的数据传输开销或代价。
很显然,此时如果逻辑节点A的输出逻辑张量(P, S(1)),则其第一维分布描述符的P与逻辑节点B的第二输入端的输入逻辑张量的第一维分布描述符S(0)不符,因此,要使得逻辑节点B执行正确的运算操作,就需要将节点A输出的第一维分布描述符为P的第一级逻辑张量变换为第一维分布描述符为S(0)的逻辑张量以及将节点A输出的第二维分布描述符为S(1)的第二级逻辑张量变换为第二维分布描述符为B的逻辑张量,从而获得适合逻辑节点B的第二输入端所需的(S(0), B)逻辑张量分布方式。同样,如果逻辑节点E输出的逻辑张量的分布描述符为(S(0), (S(0)),则与节点B的第一输入端的输入张量的第一维分布描述符S(1)和第二维分布描述符S(1)不一致,因此,要使得逻辑节点B执行正确的运算操作,就需要将节点E输出的分布描述符为(S(0), (S(0))的在第一级逻辑张量S(0)变换为第一维分布描述符为S(1)的第一级逻辑张量,以及在第二级逻辑张量S(0)变换为第二维分布描述符为S(1)的第二级逻辑张量,从而获得适合逻辑节点B的第一输入端所需的(S(1), (S(1))逻辑张量分布方式。尽管这里采用第一级逻辑张量和第二级逻辑张量进行了表述,并不意味着这种变换需要通过两次进行,而是直接一次进行变换,即直接将逻辑节点A的输出逻辑张量(P, S(1))通过数据传输的方式获取其缺少的其他数据部分进行替换,从而获得完整的逻辑张量(S(0), B)。对于第一输入端的变换也类似。即通过***一个或多个逻辑节点,使得逻辑节点A的分布描述符(P, S(1))所描述的输出逻辑张量通过数据传输进行补全或替换而变换为分布描述符(S(0), B) 所描述的输出逻辑张量,以及使得逻辑节点E的分布描述符(S(0), (S(0))所描述的输出逻辑张量通过数据传输进行补全或替换而变换为分布描述符(S(1), (S(1))所描述的输出逻辑张量,从而满足正确运行需要。
为此,传输代价计算组件150会对每个未确定多维SBP分布式签名的当前逻辑节点计算每个候选签名将会产生的数据传输开销。例如,针对逻辑节点B,针对其三个候选多维SBP分布式签名分别计算逻辑节点B在采用其中一个多维SBP分布式签名的情况下会产生的数据传输代价。对于逻辑节点B而言,选择任意一个候选多维SBP分布式签名都可以实现其操作任务。但是其采用不同的多维SBP分布式签名情况下,其运行所产生的数据传输代价不同。因此,为了在数据处理过程中使得数据传输代价最小化,需要从各个逻辑节点的候选签名中选择数据传输量最小的签名作为其实际运行过程中的签名。
举例而言,在初始逻辑节点拓扑图140中处于上下游关系的逻辑节点A和逻辑节点B之间,逻辑节点A可能是源节点,其多维SBP分布式签名可以由用户配置生成,也可以基于用户的对任务的描述自然生成,或者逻辑节点A的多维SBP分布式签名已经基本按照本公开的方案进行了决策选择确定,例如逻辑节点A的多维SBP分布式签名的输出逻辑张量的描述符为(P, S(1))。而作为初始逻辑节点拓扑图140中的逻辑节点B,其具有很多候选多维SBP分布式签名,其可能包括[((B, S(1)), (S(1), S(0))→(S(1), P)] 、[(S(0), B) ,(B, S(1))→(S(0), S(1))]、[(S(0), S(0)), (B, B)→(S(0), S(0))]、[(S(0), B) ,(S(1), S(1))→(P, S(1))]等等,但是,从逻辑节点A到逻辑节点B,由于逻辑节点A的输出逻辑张量的分布描述符为(P, S(1)),节点B可以选择的对应输入逻辑张量分布描述符可以为 (S(0), B)、(B, S(1))、(S(0), S(1))、 (S(0), S(0))、 (B, B)、(S(0), S(0))、 (S(0), B)、(S(1), S(1))、(P, S(1))等等。
因此,当前面一些逻辑节点的签名被确定下来以后,其下游的逻辑节点的多维SBP分布式签名也基于上游逻辑节点的输出逻辑张量的同一维度逻辑分布描述符(SBP描述符)和下游上游逻辑节点的候选逻辑分布式签名的对应输入逻辑张量的同一维度逻辑分布描述符(SBP描述符)之间的数据传输的代价而最终被选择确定。通过这种方式,对这样当一个逻辑节点的候选多维SBP分布式签名一旦被选定进行计算,意味着该逻辑节点的各个输入端和输出端的逻辑张量的各自的各个维度的SBP描述符也确定下来,从而计算出当前逻辑节点的在同一维度下数据传输的总代价,并将含有该维度的SBP描述符的总代价最小的候选逻辑分布式签名作为该当前逻辑节点的逻辑分布式签名。需要指出的是,如果当前逻辑节点的候选签名中有哪些签名的输入端的某一维度的逻辑分布描述符与其上游逻辑节点的输出逻辑张量的同一维度的逻辑分布描述符一致,则可以优先选择含有该同一维度的逻辑分布描述符的候选逻辑分布式签名,除非该候选逻辑分布式签名的其他输入端逻辑张量的同一维度的逻辑分布描述符会导致最后的总代价更大。
图3所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的初始逻辑节点拓扑图的局部示意图。图3是对图2中初始逻辑节点拓扑图140中的节点A、B以及E之间的关系的放大示意图。如图3所示,假设逻辑节点E的已经确定的多维SBP分布式签名SBP-3的输出逻辑张量的SBP分布式描述符为(S(1), S(0)),则其第一维度分布描述符为S(1),第二维度分布描述符为S(0)。如果每次分割为两份,则意味着该SBP分布式描述符描述的逻辑节点E的输出逻辑为被分割张量的1/4。假设逻辑节点A的已经确定的多维SBP分布式签名SBP-5的输出逻辑张量的SBP分布式描述符为(S(0), B),则其第一维度分布描述符为S(0),第二维度分布描述符为B。对于逻辑节点B的候选多维SBP分布式签名[((B,S(1)), (S(1), S(0))→(S(1), P)]而言,逻辑节点B所需要的第一输入逻辑张量的SBP描述符为((B, S(1)),这与逻辑节点E的输出逻辑张量的SBP描述符(S(1), S(0))不一致,逻辑节点B所需要的第二输入逻辑张量的SBP描述符为(S(1), S(0)),这与逻辑节点A的输出逻辑张量的SBP描述符(S(0), B)不一致,因此要符合逻辑节点B的候选多维SBP分布式签名[((B, S(1)), (S(1), S(0))→(S(1), P)]的输入逻辑张量分布要求,则需要使得其一个输入的逻辑张量分布从逻辑节点E的输出逻辑张量的SBP描述符(S(1), S(0))变换为((B,S(1))以及使得其另一个输入的逻辑张量分布从逻辑节点A的输出逻辑张量的SBP描述符(S(0), B)变换为(S(1), S(0))。这种变换将会在实际数据处理过程中在与该维度对应的连接并同属于同一个上一级别数据处理设备的多个同级数据处理设备之间产生数据交换。
图4图示了根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的传输代价计算组件计算不同二维SBP分布描述符的逻辑张量之间产生的数据传输量的第一示意图。针对图3所示的任务节点B的候选多维SBP分布式签名SBP-2,如图4所示,多级分布式数据处理***包括第一级逻辑数据处理设备0和第一级逻辑数据处理设备1,第一级逻辑数据处理设备0连接或包括两个计算卡GPU0和GPU1,而第一级逻辑数据处理设备1连接或包括两个计算卡GPU2和GPU3。逻辑节点E的输出端的二维SBP分布描述符将输出张量(S(1), S(0))分布在这四张卡上,位于图4的黑实线的上部所示。逻辑节点B的对应输入端的二维SBP分布描述符将输出张量((B, S(1))分布在这四张卡上,位于图4的黑实线的下部所示。图4中的带有阴影块的图形表示逻辑张量,逻辑张量值之间的虚线代表了需要传输方向。在下面的描述中,为方便描述,GPU等同与于逻辑数据处理设备。但是数据处理设备还包括除了GPU之外的其他设别,例如机房、服务器、CPU等。
逻辑节点B的分布在GPU 0- GPU 3的各个任务节点要获得((B, S(1)),则除了需要直接从本地获得对应的张量部分外(GPU 0和GPU 3采用实线箭头显示了这种数据部分的获取过程),有些还需要获得任务节点E的(S(1), S(0))描述符所描述的分布在GPU 0- GPU3中的其他GPU上的逻辑张量一部分(采用虚线箭头显示了这种数据部分的获取过程)。如果逻辑张量的大小为T1,则所有虚线显示的数据传输的大小则为3/2T1。因此,将任务节点E的(S(1), S(0))描述符逻辑张量变换为任务节点B的输入端要获得((B, S(1))描述符的逻辑张量,总的数据传输代价为3/2T1。
图5图示了根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的传输代价计算组件计算不同二维SBP分布描述符的逻辑张量之间产生的数据传输量的第二示意图。针对图3所示的任务节点B的候选多维SBP分布式签名SBP-2,如图5所示,多级分布式数据处理***包括第一级逻辑数据处理设备0和第一级逻辑数据处理设备1,第一级逻辑数据处理设备0连接或包括两个计算卡GPU0和GPU1,而第一级逻辑数据处理设备1连接或包括两个计算卡GPU2和GPU3。逻辑节点A的输出端的二维SBP分布描述符将输出张量(S(0), B)分布在这四张卡上,位于图5的黑实线的上部所示。逻辑节点B的对应输入端的二维SBP分布描述符将输出张量(S(1), S(0))分布在这四张卡上,位于图5的黑实线的下部所示。图5中的带有阴影块的图形表示逻辑张量,逻辑张量值之间的虚线代表了需要传输方向。在下面的描述中,为方便描述,GPU等同与于逻辑数据处理设备。但是数据处理设备还包括除了GPU之外的其他设别,例如机房、服务器、CPU等。
逻辑节点B的分布在GPU 0- GPU 3的各个任务节点要获得(S(1), S(0)),则除了需要直接从本地获得对应的张量部分外(GPU 0和GPU 3采用实线箭头显示了这种数据部分的获取过程),有些还需要获得任务节点A的(S(0), B)描述符所描述的分布在GPU 0- GPU3中的其他GPU上的逻辑张量一部分(采用虚线箭头显示了这种数据部分的获取过程)。如果逻辑张量的大小为T2,则所有虚线显示的数据传输的大小则为1/2T2。因此,将任务节点A的(S(0), B)描述符逻辑张量变换为任务节点B的输入端要获得(S(1), S(0))描述符的逻辑张量,总的数据传输代价为1/2T1。
通过总和第一输入端和第二输入端分别计算的数据传输代价,可以获得总体变换所需要的总的传输代价。本领域技术人员根据上述图4和图5所示例和解释的代价计算方式获得各种组合的SBP分布描述符所描述的逻辑张量进行变化是所需要的传输代价。为了方便阐述,后面的原始逻辑张量的大小都采用T代表。即都假设T1= T2=T,不进行区分。但是在实际计算过程中,需要根据任务配置情况,各个输入端的逻辑张量会存在不同。为此,实际用户可以根据实际作业描述,首先对这种各种组合导致的变换代价进行初始化,形成一种变换导致的传输代价表。在假设各种初始逻辑张量的大小都相同的情况下,申请人提供如下传输代价查找表。需要说明的是,本领域技术人员能够根据本公开的启示,直接结合实际作业描述获得具体的传输代价查找表。
下列表1-表6显示了从行所列的二维分布式描述符变换到列所列二维分布式描述符的传输代价列表。通过直接查询这些表可以直接获得两种逻辑张量进行转换是所需的数据传输代价。
每个查找表注明了计算条件,本领域技术人员可以根据本公开的教导,并给予实际作业配置情况以及实际计算设备的逻辑关系进行以及多级分布式数据处理***的形成的物理拓扑图进行修正,从而再进行实际运行时,对查找表进行初始化,从而获得正确的查找表。此外,用户也可以根据实际作业,对数据块(BLOB)进行归一化处理,从而对每个具体数据块形成归一化权值,即在计算传输代价对查找表进行初始化的时候, 可以利用表生成传输系数, 用系数乘以数据量T得出传输代价,从而使得查找表得到简化。
表1
条件:i!=j, k!=l(i不等于j且k不等于l)
T是数据块的总数据量大小,计算传输代价的时候, 可以利用表生成传输系数,用系数乘以数据量T得出传输代价。
第一次分级分了n个一级机器,第二次分级分了m个二级机器
在相同的机器集群上进行布置
计算方式:不涉及P的时候算出他们重叠部分的, 这时候发送方跟接受方重叠的部分是对称的, 用接受方所需要的总数据量减去重叠的部分即可。
涉及到P时, 若P在接受方, 则P总是可以取到跟发送方相同部分最类似的部分(传送方为S)或者其中的子部分(传送方为B),通过其他地方赋值为0的方式来使得传输代价最小化。
若P在传送方, 则P得经过ReduceScatter再进行传输。
表2
条件:T是数据块的总数据量大小
第一次分级分了n个一级机器
第二次分级分了m个二级机器
在相同的机器集群上进行布置
表3
条件: i=j, k!=l (i等于j且k不等于l)
灰色表示相对于第一个表完全没有受到影响
T是数据块的总数据量大小,计算传输代价的时候, 可以利用表生成传输系数,用系数乘以数据量T得出传输代价
第一次分级分了n个一级机器,第二次分级分了m个二级机器
在相同的机器集群上进行布置
计算方式: 不涉及P的时候算出他们重叠部分的, 这时候发送方跟接受方重叠的部分是对称的,用接受方所需要的总数据量减去重叠的部分即可。
涉及到P时, 若P在接受方, 则P总是可以取到跟发送方相同部分最类似的部分(传送方为S)或者其中的子部分(传送方为B),通过其他地方赋值为0的方式来使得传输代价最小化。
若P在传送方, 则P得经过ReduceScatter再进行传输。
表4
条件:i!=j, k=l (i不等于j且k等于l)
灰色表示相对于第一个表完全没有受到影响
T是数据块的总数据量大小,计算传输代价的时候, 可以利用表生成传输系数,用系数乘以数据量T得出传输代价
第一次分级分了n个一级机器,第二次分级分了m个二级机器
在相同的机器集群上进行布置
计算方式: 不涉及P的时候算出他们重叠部分的, 这时候发送方跟接受方重叠的部分是对称的,用接受方所需要的总数据量减去重叠的部分即可。
涉及到P时, 若P在接受方, 则P总是可以取到跟发送方相同部分最类似的部分(传送方为S)或者其中的子部分(传送方为B),通过其他地方赋值为0的方式来使得传输代价最小化。
表5
条件: i=j, k=l (i等于j且k等于l)
灰色表示相对于第一个表完全没有受到影响
T是数据块的总数据量大小,计算传输代价的时候, 可以利用表生成传输系数,用系数乘以数据量T得出传输代价
第一次分级分了n个一级机器,第二次分级分了m个二级机器
在相同的机器集群上进行布置
计算方式: 不涉及P的时候算出他们重叠部分的, 这时候发送方跟接受方重叠的部分是对称的,用接受方所需要的总数据量减去重叠的部分即可。
涉及到P时, 若P在接受方, 则P总是可以取到跟发送方相同部分最类似的部分(传送方为S)或者其中的子部分(传送方为B),通过其他地方赋值为0的方式来使得传输代价最小化。
若P在传送方, 则P得经过ReduceScatter再进行传输。
表6
条件:此时i与j,k与l是否相等已经不再重要
T是数据块的总数据量大小,计算传输代价的时候, 可以利用表生成传输系数,用系数乘以数据量T得出传输代价
在传送机器集群上, 第一次分级分了n个一级机器, 第二次分级分了m个二级机器
在接受机器集群上, 第一次分级分了N个一级机器, 第二次分级分了M个二级机器
在相同的机器集群上进行布置
在传送方没有P时传输量等于要接受的数据量
在传送方有P时先在本地进行ReduceScatter操作, 然后再传送到接受方.
当然, 效果等同于对应的数据块在接受方(S(j),S(l))直接进行求和操作, 然后如果有必要再进行额外的广播
因此,综上所述,传输代价计算组件150在没有查找表的情况下,针对每种候选多维SBP分布式签名的输入端的SBP分布描述符进行传输代价计算,即直接进行计算。在通过传输代价计算组件150基于作业描述进行初始化计算形成查找表之后,对同类作业直接进行查找获得当前逻辑节点的最小传输代价所对应的多维SBP分布式签名。因此,传输代价计算组件150包含了一种传输代价查询组件。因此传输代价查询组件也被称为传输代价计算组件150。下面在提到传输代价查询组件150指的也是传输代价计算组件150。
以上仅仅以二维SBP分布式签名作为例子进行了举例说明。但是本领域技术人员基于本公开的教导也可以对于其他多维的SBP分布式签名计算传输代价。在此不一一赘述。
随后,结果逻辑节点拓扑图生成组件160基于传输代价查询组件150所查询结果,获取当前初始逻辑节点的每个候选多维SBP分布式签名的所有输入端的所需传输代价总和,从而选择传输代价总和最小的候选多维SBP分布式签名作为所述当前初始逻辑节点的确定的多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。从而获得结果逻辑节点拓扑图170。
可选择地,多级分布式数据处理部署***100为了进行实际分布式数据处理,其计算图生成组件180基于确定了多维SBP分布式签名的结果逻辑节点构成结果逻辑节点拓扑图生成任务逻辑计算图,并在当前结果逻辑节点的一个输入端的多维SBP分布描述符与对应的上游逻辑节点的输出端的多维SBP分布描述符不同时,在当前结果逻辑节点对应的各个当前计算节点的所述输入端和对应的上游逻辑节点对应的各个计算节点的输出端之间***变换计算节点,以便将上游逻辑节点对应的各个计算节点的输出端所输出的由输出端的多维SBP分布描述符描述的逻辑张量变换为当前结果逻辑节点对应的各个计算节点的对应的输入端所要输入的由输入端的多维SBP分布描述符描述的逻辑张量,从而最终完成在实际多级分布式数据处理***上的多级分布式数据处理的部署。
图6所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***的另一实施方式的示意图。图6所示的实施例与图2所示的实施例的不同之处在于,设备层级设置组件110基于接收用户输入的任务配置数据,在一个逻辑数据处理设备的实际计算资源小于该逻辑数据处理设备的输入端的逻辑张量和结果逻辑张量所需的计算资源时,在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,每个候选多维SBP分布式签名中与所述时间维度逻辑数据处理设备对应维度的SBP分布描述符为时间维度分布描述符,属于同一候选多维SBP分布式签名的时间维度分布描述符包括分割逻辑张量描述符和广播逻辑张量分布描述符,其中分割逻辑张量描述符所附有的逻辑张量的分割次数与广播逻辑张量分布描述符所附有的逻辑张量的广播次数相同。这样通过将逻辑张量分割成多个小的逻辑张量以便消除对大内存计算处理设备的需要。由于处于时间维度的逻辑张量描述符附有逻辑张量分割的次数和广播的次数,因此,多维SBP分布式签名中的时间维度分布式描述符能够得到识别。基于此,计算图生成组件180包含有时间维度识别单元181,其获取时间维度分布式描述符的层级或维度位置以及张量分割的次数和广播的次数,从而使得计算图生成组件180在多维SBP分布式签名中含有时间维度分布描述符时,基于分割逻辑张量描述符在当前逻辑节点对应的计算节点对应输入端之前***分割计算节点、基于广播逻辑张量分布描述符在当前逻辑节点对应的计算节点的输入端之前***重复广播计算节点以及在当前逻辑节点对应的计算节点的输出端之后***集结计算节点。
图7所示的是使用图6所示的是根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***将逻辑节点拓扑图变换成计算图的一个实例,如图7左侧所示,如果逻辑节点N3所分配的计算设备之一的计算资源足以满足对第一逻辑张量1和第二逻辑张量2以及结果逻辑张量3所需的计算资源,则可以直接采用低维度的候选SBP分布式签名,例如由于逻辑节点N3所分配的计算设备之一的计算资源不满足对第一逻辑张量1和第二逻辑张量2以及结果逻辑张量3所需的计算资源,二维的候选SBP分布式签名 [(S(1), S(1)), (S(0), B))→(P, S(1))],通过对其中某个输入逻辑张量(例如第一逻辑张量1)进行进一步分割描述,减少对逻辑节点N3所分配的计算设备的计算资源的需求,使得逻辑节点N3所分配的计算设备的计算资源足以满足处理进一步分割后的逻辑张量所需的计算资源。为此,根据本公开的决策***提供了如图6所示的部署***。设备层级设置组件110会比较所述当前逻辑节点将要并行分布的设备集的每一个计算设备的实际计算资源以及处理按照所述第一维度分布描述符(S(1)所确定的对应输入端的逻辑张量所需的计算资源之间的大小。例如,参见图7所示,获取当前逻辑节点N3的第一逻辑张量1、第二逻辑张量2以及结果逻辑张量3在逻辑节点N3被处理时所需的计算资源,例如内存资源等,同时获取当前逻辑节点N3被部署的计算设备(例如某个GPU或某个CPU或者某个服务器)所能够提供的实际计算资源。如前所述,如果所部署的计算设备足以满足处理当前逻辑节点N3的所有输入逻辑张量和输出逻辑张量所需的计算资源,不会增加时间维度层级逻辑数据处理设备。如果所部署的计算设备不足以满足处理当前逻辑节点N3的所有输入逻辑张量和输出逻辑张量(或结果逻辑张量)所需的计算资源,则设备层级设置组件110在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,由此在部署时生成对应的多维SBP分布式签名中的时间维度分布描述符。对于不需要时间维度分布的逻辑节点的多维SBP分布式签名中的时间维度维度的描述符,其所附的分割或广播次数为零,这意味着,该多维SBP分布式签名尽管有时间维度维度的描述符,但是在随后的计算图生成过程中,无需生成对应的计算节点。为了方便描述,在图7中对于不需要时间维度分布的逻辑节点的多维SBP分布式签名,其时间维度描述符被省略。例如逻辑节点N1和N2的输出张量的分布描述符直接采用一维方式描述。例如,逻辑节点N1的输出张量的描述符S(1)应该为 (S(1), S(1)0),而逻辑节点N2的输出张量的描述符S(0)应该为 (S(0), B0),其中的上标0表示其逻辑节点N1和N2本身无需对应在其对应的计算节点前形成分割节点和广播节点。需要指出的是,逻辑节点N3的多维SBP分布式签名 [(S(1), S(1)), (S(0), B))→(P, S(1))],其第二维度的分布式描述符是附有分割次数和广播次数的。具体而言,可以为[(S(1), S(1)3), (S(0), B3))→(P, S(1)3)]。但是为了显示方便,在图7中没有显示。因此该SBP分布式签名的每个SBP描述符的每个时间维度的描述符上附有分布的预定数量或预定次数。例如第一分片逻辑张量1的SBP描述符(S(1), (S(1))的每个维度SBP描述符S(1)包含了并行部署的计算设备的数量或分割成分片张量的预定数量,而第二逻辑张量2的SBP描述符(S(0), B)为第一维度SBP描述符S(0)包含了并行部署的计算设备的数量或分割成分片张量的预定数量,第二维度SBP描述符B包含了将要重复广播第二逻辑张量2的预定次数。第一逻辑张量1的SBP描述符(S(1), (S(1))的第二维度S(1)所附有的预定数量与第二逻辑张量2的SBP描述符(S(0), B)的第二维度SBP描述符B包含的预定次数相等。同样,结果分片逻辑张量3的SBP描述符则为(P, S(1)),其第二维度的SBP描述符S(1)所包含的预定数量也与第二逻辑张量2的SBP描述符(S(0), B)的第二维度SBP描述符B包含的预定次数相等。
需要指出的是,通常在选择第二维度或最后一个维度的SBP描述符时,通常优先为输入端张量中最大的张量选择分割或并行分布描述符S,而为其他输入端张量选择广播描述符B。分选择分割的输入张量可以是数据张量,也可以是模型张量。
多级分布式数据处理部署***100的计算图生成组件180会基于时间维度识别单元181的识别结果生成含有分割节点和广播节点的计算图,其中每个任务逻辑节点会对应其所分布或并行的计算设备的数量,形成对应数量的计算节点,此外,对于当前逻辑节点对应的计算节点的输入张量的分布描述符和其对应上游计算节点的输出张量的分布描述符不对应的情况,则需要***一个变换计算节点,例如在图7右侧部分显示,计算节点N1和N3之间,***计算节点N4,从而将计算节点N1输出的分布描述符为S(1)的逻辑张量1分割为SBP描述符(S(1), (S(1))的第一分片逻辑张量1,同样在图7的计算节点N2和N3之间,***计算节点N5,从而将计算节点N2输出的分布描述符为P的张量分割为SBP描述符(P,B)的第二逻辑张量2。具体而言,计算节点N4为一个分割计算节点,其对计算节点N1输出的分布描述符为S(1)的逻辑张量1进行处理时,将逻辑张量1在该张量的第1维度上继续执行分割处理(UPACK),将其分割为预定数量的第一分片逻辑张量1,从而该第一分片逻辑张量体现了SBP描述符(S(1), (S(1))所描述的分布结果。分割计算节点N4在执行分割处理时将预定数量的第一分片逻辑张量1逐一输出给计算节点N3(与逻辑节点N3对应)。同时,计算节点N5为一种重复广播计算节点,其对计算节点输出的第二逻辑张量2进行处理时,将第二逻辑张量2进行重复广播输出处理(REPEAT),重复输出预定次数。重复输出的预定次数与第一分片逻辑张量1的预定数量相等。因此,计算节点N3在执行处理时,每次处理的实际张量为第一分片逻辑张量1和第二逻辑张量2,其获得输出结果逻辑张量为结果分片张量3,而不是结果逻辑张量3。这样导致的结果是,计算节点N3在实际处理第一分片逻辑张量1和第二逻辑张量2并获得输出结果分片逻辑张量3的情况下所需的计算资源要比在实际处理第一逻辑张量1和第二逻辑张量2以及获得结果逻辑张量3情况下所需要的计算资源要小得多,并且计算节点N3所部署的计算设备的计算资源能够满足实际计算所需的计算资源,降低了对高成本计算设备的需求。
此外,还需要在计算节点N3之后,***计算节点N6。该计算节点N6为集结计算节点。其对计算节点N3输出的结果分片逻辑张量3执行集结处理(ACCUMULATE),逐一将结果分片逻辑张量3集结成结果逻辑张量3。
尽管上面给出了如何在一些候选SBP分布式签名确定最终SBP分布式签名的常规情况,但是在一些特定的情况下,对于某些逻辑节点,在用户有特殊的配置的情况下或有用户指定的情况下,这些逻辑节点只有用户指定的SBP分布式签名,因此其下游的逻辑节点将基于这种特别指定的上游逻辑节点进行SBP分布式签名的确定。
通过根据本公开的基于多维SBP分布式签名的多级分布式数据处理部署***,一方面能够从全局角度使得分布式数据处理***在处理数据过程中的不同数据处理设备之间的数据交换量最小化,从而减少的数据交互过程产生的开销,这样有效地降低了数据交换对实际运算操作带来的不良影响,降低了运算操作的等待时间,从而加快了数据处理速度,更重要的是另一方面能够在大规模模型和大规模数据处理需求下,降低对数据处理设备的单卡计算资源量的需求,从而降低了所需的硬件成本,另一方面能够自动进行并行部署,尤其是能够自动完成需要人工介入下的混合并行部署情形下实现的相同的数据处理效果。而且,局部出现大逻辑张量需要处理情况下导致该大逻辑张量所部署数据处理设备无法满足大逻辑张量处理所需计算资源时,通过采用本公开的基于多维SBP分布式签名的多级分布式数据处理部署***能够消除因为局部大逻辑张量而需要增加数据处理设备计算资源的需求。如果为局部大逻辑张量的处理而增加数据处理设备的计算资源,将导致所增加的计算资源大部分时候处于闲置状态,这也导致了计算资源的浪费。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (8)
1.一种多级分布式数据处理部署***,包括:
设备层级设置组件,将多个逻辑数据处理设备设置为至少两级并行逻辑数据处理设备并指定彼此之间的逻辑层级关系,由此确定SBP分布式签名的维度数量,其中每个上级逻辑数据处理设备含有或连接有相同数据量的下级数据处理设备构成;
位置标记获取组件,获取所有逻辑数据处理设备的位置标记;
初始逻辑节点拓扑图生成组件,基于接收用户输入的任务配置数据,生成用于多级分布式数据处理***的初始逻辑节点拓扑图,每个初始逻辑节点附有一个或多个候选多维SBP分布式签名以及位置标记,每个多维SBP分布式签名的输入端和输出端的多维SBP分布描述符的每一维度的描述符描述了逻辑张量在对应层级的逻辑数据处理设备上的分布方式以及每个位置标记指明了逻辑张量所部署的逻辑数据处理设备;
传输代价查询组件,针对每个当前初始逻辑节点,基于其每个已经确定了的多维SBP分布式签名的上游逻辑节点的输出端的多维SBP分布描述符以及当前初始逻辑节点的每个候选多维SBP分布式签名的与所述上游逻辑节点的输出端对应输入端的多维SBP分布描述符,查询传输代价换算表获取上游逻辑节点的输出端的多维SBP分布描述符与前初始逻辑节点的对应输入端的多维SBP分布描述符两者之间的传输代价;
结果逻辑节点拓扑图生成组件,基于传输代价查询组件查询结果,获取当前初始逻辑节点的每个候选多维SBP分布式签名的所有输入端的所需传输代价总和,从而选择传输代价总和最小的候选多维SBP分布式签名作为所述当前初始逻辑节点的确定的多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。
2.根据权利要求1所述的多级分布式数据处理部署***,还包括:
计算图生成组件,用于基于确定了多维SBP分布式签名的结果逻辑节点构成结果逻辑节点拓扑图生成任务逻辑计算图,并在当前结果逻辑节点的一个输入端的多维SBP分布描述符与对应的上游逻辑节点的输出端的多维SBP分布描述符不同时,在当前结果逻辑节点对应的各个当前计算节点的所述输入端和对应的上游逻辑节点对应的各个计算节点的输出端之间***变换计算节点,以便将上游逻辑节点对应的各个计算节点的输出端所输出的由输出端的多维SBP分布描述符描述的逻辑张量变换为当前结果逻辑节点对应的各个计算节点的对应的输入端所要输入的由输入端的多维SBP分布描述符描述的逻辑张量。
3.根据权利要求2所述的多级分布式数据处理部署***,其中所述设备层级设置组件基于接收用户输入的任务配置数据,在一个逻辑数据处理设备的实际计算资源小于该逻辑数据处理设备的输入端的逻辑张量和结果逻辑张量所需的计算资源时,在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,每个候选多维SBP分布式签名中与所述时间维度逻辑数据处理设备对应维度的SBP分布描述符为时间维度分布描述符,属于同一候选多维SBP分布式签名的时间维度分布描述符包括分割逻辑张量描述符和广播逻辑张量分布描述符,其中分割逻辑张量描述符所附有的逻辑张量的分割次数与广播逻辑张量分布描述符所附有的逻辑张量的广播次数相同。
4.根据权利要求3所述的多级分布式数据处理部署***,其中所述计算图生成组件在多维SBP分布式签名中含有时间维度分布描述符时,基于分割逻辑张量描述符在当前逻辑节点对应的计算节点对应输入端之前***分割计算节点、基于广播逻辑张量分布描述符在当前逻辑节点对应的计算节点的输入端之前***重复广播计算节点以及在当前逻辑节点对应的计算节点的输出端之后***集结计算节点。
5.一种多级分布式数据处理部署方法,包括:
通过设备层级设置组件将多个逻辑数据处理设备设置为至少两级并行逻辑数据处理设备并指定彼此之间的逻辑层级关系,由此确定SBP分布式签名的维度数量,其中每个上级逻辑数据处理设备含有或连接有相同数据量的下级数据处理设备构成;
通过位置标记获取组件获取所有逻辑数据处理设备的位置标记;
通过初始逻辑节点拓扑图生成组件,基于接收用户输入的任务配置数据,生成用于多级分布式数据处理***的初始逻辑节点拓扑图,每个初始逻辑节点附有一个或多个候选多维SBP分布式签名以及位置标记,每个多维SBP分布式签名的输入端和输出端的多维SBP分布描述符的每一维度的描述符描述了逻辑张量在对应层级的逻辑数据处理设备上的分布方式以及每个位置标记指明了逻辑张量所部署的逻辑数据处理设备;
通过传输代价查询组件,针对每个当前初始逻辑节点,基于其每个已经确定了的多维SBP分布式签名的上游逻辑节点的输出端的多维SBP分布描述符以及当前初始逻辑节点的每个候选多维SBP分布式签名的与所述上游逻辑节点的输出端对应输入端的多维SBP分布描述符,查询传输代价换算表获取上游逻辑节点的输出端的多维SBP分布描述符与前初始逻辑节点的对应输入端的多维SBP分布描述符两者之间的传输代价;
通过结果逻辑节点拓扑图生成组件,基于传输代价查询组件查询结果,获取当前初始逻辑节点的每个候选多维SBP分布式签名的所有输入端的所需传输代价总和,从而选择传输代价总和最小的候选多维SBP分布式签名作为所述当前初始逻辑节点的确定的多维SBP分布式签名,从而获得具有确定的多维SBP分布式签名的当前结果逻辑节点。
6.根据权利要求5所述的多级分布式数据处理部署方法,还包括:
通过计算图生成组件,基于确定了多维SBP分布式签名的结果逻辑节点构成结果逻辑节点拓扑图生成任务逻辑计算图,并在当前结果逻辑节点的一个输入端的多维SBP分布描述符与对应的上游逻辑节点的输出端的多维SBP分布描述符不同时,在当前结果逻辑节点对应的各个当前计算节点的所述输入端和对应的上游逻辑节点对应的各个计算节点的输出端之间***变换计算节点,以便将上游逻辑节点对应的各个计算节点的输出端所输出的由输出端的多维SBP分布描述符描述的逻辑张量变换为当前结果逻辑节点对应的各个计算节点的对应的输入端所要输入的由输入端的多维SBP分布描述符描述的逻辑张量。
7.根据权利要求6所述的多级分布式数据处理部署方法,其中所述设备层级设置组件基于接收用户输入的任务配置数据,在一个逻辑数据处理设备的实际计算资源小于该逻辑数据处理设备的输入端的逻辑张量和结果逻辑张量所需的计算资源时,在所述逻辑数据处理设备所属的逻辑层级之上设置一个上级逻辑数据处理设备作为时间维度逻辑数据处理设备,每个候选多维SBP分布式签名中与所述时间维度逻辑数据处理设备对应维度的SBP分布描述符为时间维度分布描述符,属于同一候选多维SBP分布式签名的时间维度分布描述符包括分割逻辑张量描述符和广播逻辑张量分布描述符,其中分割逻辑张量描述符所附有的逻辑张量的分割次数与广播逻辑张量分布描述符所附有的逻辑张量的广播次数相同。
8.根据权利要求7所述的多级分布式数据处理部署方法,其中所述计算图生成组件在多维SBP分布式签名中含有时间维度分布描述符时,基于分割逻辑张量描述符在当前逻辑节点对应的计算节点对应输入端之前***分割计算节点、基于广播逻辑张量分布描述符在当前逻辑节点对应的计算节点的输入端之前***重复广播计算节点以及在当前逻辑节点对应的计算节点的输出端之后***集结计算节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110386635.XA CN112764940B (zh) | 2021-04-12 | 2021-04-12 | 多级分布式数据处理部署***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110386635.XA CN112764940B (zh) | 2021-04-12 | 2021-04-12 | 多级分布式数据处理部署***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764940A true CN112764940A (zh) | 2021-05-07 |
CN112764940B CN112764940B (zh) | 2021-07-30 |
Family
ID=75691421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110386635.XA Active CN112764940B (zh) | 2021-04-12 | 2021-04-12 | 多级分布式数据处理部署***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764940B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626652A (zh) * | 2021-10-11 | 2021-11-09 | 北京一流科技有限公司 | 数据处理网络***、数据处理网络部署***及其方法 |
CN116166846A (zh) * | 2023-04-13 | 2023-05-26 | 广东广宇科技发展有限公司 | 一种基于云计算的分布式多维数据处理方法 |
CN116227585A (zh) * | 2023-05-10 | 2023-06-06 | 之江实验室 | 集群任务的并行执行方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089818A (zh) * | 2006-06-13 | 2007-12-19 | 国际商业机器公司 | 用于处理数据包的方法和上游处理节点 |
EP3109778A1 (en) * | 2015-06-25 | 2016-12-28 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Computer-implemented method of performing parallelized electronic-system level simulations |
CN110532072A (zh) * | 2019-07-24 | 2019-12-03 | 中国科学院计算技术研究所 | 基于微内核操作***的分布式流式数据处理方法及*** |
CN110928697A (zh) * | 2020-02-13 | 2020-03-27 | 北京一流科技有限公司 | 拓扑图转换***及其方法 |
CN110955734A (zh) * | 2020-02-13 | 2020-04-03 | 北京一流科技有限公司 | 逻辑节点的分布式签名决策***及其方法 |
CN111708685A (zh) * | 2020-05-18 | 2020-09-25 | 福建天晴在线互动科技有限公司 | 一种分布式服务器的日志采集监控方法及*** |
-
2021
- 2021-04-12 CN CN202110386635.XA patent/CN112764940B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089818A (zh) * | 2006-06-13 | 2007-12-19 | 国际商业机器公司 | 用于处理数据包的方法和上游处理节点 |
EP3109778A1 (en) * | 2015-06-25 | 2016-12-28 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Computer-implemented method of performing parallelized electronic-system level simulations |
CN110532072A (zh) * | 2019-07-24 | 2019-12-03 | 中国科学院计算技术研究所 | 基于微内核操作***的分布式流式数据处理方法及*** |
CN110928697A (zh) * | 2020-02-13 | 2020-03-27 | 北京一流科技有限公司 | 拓扑图转换***及其方法 |
CN110955734A (zh) * | 2020-02-13 | 2020-04-03 | 北京一流科技有限公司 | 逻辑节点的分布式签名决策***及其方法 |
CN111666151A (zh) * | 2020-02-13 | 2020-09-15 | 北京一流科技有限公司 | 拓扑图转换***及其方法 |
CN111708685A (zh) * | 2020-05-18 | 2020-09-25 | 福建天晴在线互动科技有限公司 | 一种分布式服务器的日志采集监控方法及*** |
Non-Patent Citations (1)
Title |
---|
黄月华 等: "基于传输代价最小原则的分布式数据库查询优化", 《中国西部科技》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626652A (zh) * | 2021-10-11 | 2021-11-09 | 北京一流科技有限公司 | 数据处理网络***、数据处理网络部署***及其方法 |
CN113626652B (zh) * | 2021-10-11 | 2021-12-17 | 北京一流科技有限公司 | 数据处理网络***、数据处理网络部署***及其方法 |
CN116166846A (zh) * | 2023-04-13 | 2023-05-26 | 广东广宇科技发展有限公司 | 一种基于云计算的分布式多维数据处理方法 |
CN116166846B (zh) * | 2023-04-13 | 2023-08-01 | 广东广宇科技发展有限公司 | 一种基于云计算的分布式多维数据处理方法 |
CN116227585A (zh) * | 2023-05-10 | 2023-06-06 | 之江实验室 | 集群任务的并行执行方法、装置、计算机设备和存储介质 |
CN116227585B (zh) * | 2023-05-10 | 2023-07-25 | 之江实验室 | 集群任务的并行执行方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112764940B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764940B (zh) | 多级分布式数据处理部署***及其方法 | |
CN110955734B (zh) | 逻辑节点的分布式签名决策***及其方法 | |
US20220129302A1 (en) | Data processing system and method for heterogeneous architecture | |
CN111930519B (zh) | 用于分布式数据处理的并行决策***及其方法 | |
CN110928697B (zh) | 拓扑图转换***及其方法 | |
US20120200580A1 (en) | Synchronous parallel pixel processing for scalable color reproduction systems | |
CN112799852B (zh) | 逻辑节点的多维sbp分布式签名决策***及其方法 | |
Schlag et al. | Scalable edge partitioning | |
Arnaiz-González et al. | MR-DIS: democratic instance selection for big data by MapReduce | |
CN105701128B (zh) | 一种查询语句的优化方法和装置 | |
CN111444309B (zh) | 用于对图进行学习的*** | |
CN108874873A (zh) | 数据查询方法、装置、存储介质及处理器 | |
KR20160081231A (ko) | 이미지 기반 검색을 위한 맵리듀스 기반의 이미지 특징 추출 방법 및 시스템 | |
CN111651507B (zh) | 一种大数据加工方法及*** | |
CN111049900B (zh) | 一种物联网流计算调度方法、装置和电子设备 | |
US9361588B2 (en) | Construction of tree-shaped bayesian network | |
CN115391170A (zh) | 用于分布式数据处理的并行决策***及其方法 | |
Goldman et al. | An efficient parallel algorithm for solving the knapsack problem on hypercubes | |
Hajiaghayi et al. | Hierarchical graph partitioning | |
CN112948087A (zh) | 一种基于拓扑排序的任务调度方法及*** | |
Rim et al. | An efficient dynamic load balancing using the dimension exchange method for balancing of quantized loads on hypercube multiprocessors | |
KR20170085396A (ko) | 스캔도서 식별을 위한 특징벡터 클러스터링 및 데이터베이스 생성 방법 | |
CN110018832B (zh) | 一种基于改进动态规划的雷达软件组件部署策略 | |
CN117544552A (zh) | 数据交换通信路径自动构建***及其方法 | |
Hosseinzadeh et al. | An effective duplication-based task-scheduling algorithm for heterogeneous systems |
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 |