【技术实现步骤摘要】
优化的分布式私有矩阵乘法
[0001]相关申请的交叉引用
[0002]本申请要求美国临时专利申请第63/243,726号以及美国专利申请第17/942,087号的权益,这些申请全文以引用方式并入本文。
[0003]本公开涉及矩阵运算。
技术介绍
[0004]存在用于获得矩阵(A)并且执行将所获得的矩阵(A)单次分离成K个条带A
i
的常规系统,这些条带A
i
将被混淆并且然后分发在不同的工作器计算机之间以用于处理。将矩阵(A)分离成K个条带A
i
的目标是通过使用多个工作器计算机并行处理K个条带以实现整体速度增加。
技术实现思路
[0005]尽管存在用于矩阵A的K个条带的分布式处理的常规系统,但此类系统具有缺点。例如,当K增长得太大时,此类系统通常不能从并行化的增加中获得最大的利益,因为对于如此大数量的K,适应编码过程所必需的系统设计改变常常抵消了可经由增加并行化所实现的益处。
[0006]本公开通过使得能够将矩阵数据结构部分进一步划分为矩阵数据结构子部分而不增加导致常规系统的处理负载,解决了常规系统中的此类缺陷。本公开通过使用混淆过程来实现该解决方案,该混淆过程混淆矩阵数据结构子部分的集合,而不是如常规系统中将发生的那样混淆每个子部分。因此,本公开可以增加并行化和吞吐量,而不以指数或至少多项式增加分发器计算机的计算资源支出。
[0007]本公开整体涉及一种用于优化的分布式私有矩阵乘法的系统和方法,其改进了执行矩阵乘法的系 ...
【技术保护点】
【技术特征摘要】
1.一种用于对矩阵数据结构进行分布式处理的方法,包括:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成M个不同的矩阵数据结构部分的集合,其中M是大于1的整数;由一个或多个计算机将所述不同的M个矩阵数据结构部分中的每一个矩阵数据结构部分分割为K个矩阵数据结构子部分的相应集合,其中K是大于1的整数;对于K个矩阵数据结构子部分的所述相应集合中的每一个相应集合:由一个或多个计算机生成具有与所述K个矩阵数据结构子部分中的每一个矩阵数据结构子部分相同的维度的混淆矩阵;以及由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的混淆表示,所述混淆表示包括(i)所述K个矩阵数据结构子部分和(ii)所述混淆矩阵;以及由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理。2.根据权利要求1所述的方法,所述方法还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收包括结式矩阵的结果数据,其中所述结式矩阵中的每个结式矩阵是(a)不同矩阵和(b)M个矩阵数据结构子部分中的一个矩阵数据结构子部分的混淆表示的乘积;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机并且对于每个结式矩阵识别特定结式矩阵,所述特定结式矩阵是所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积。3.根据权利要求1所述的方法,其中由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的包括(i)所述K个矩阵数据结构部分和(ii)所述混淆矩阵的混淆表示包括:由一个或多个计算机生成对应于多项式的表达式,所述多项式具有所述K个矩阵数据结构子部分中的至少一个矩阵数据结构子部分作为系数并且具有混淆矩阵作为系数。4.根据权利要求3所述的方法,所述方法还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收结果数据集,其中每个结果数据集包括表示与(a)不同矩阵和(b)所生成的表达式的乘积相对应的表达式的数据;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机确定每个结果数据集中所生成的表达式具有未知参数;由一个或多个计算机并且基于所生成的表达式、每个表达式的相关未知参数来识别作为所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积的特定结式矩阵。5.根据权利要求1所述的方法,其中由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(所述N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理包括:对于所述N个混淆表示中的每个特定混淆表示:使用一个或多个网络将所述特定混淆表示传输到远离所述一个或多个计算机的不同
远程计算机。6.根据权利要求1所述的方法,其中由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(所述N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理包括:对于所述N个混淆表示中的每个特定混淆表示:将所述特定混淆表示传输到所述一个或多个计算机中的一个计算机的不同处理核心。7.一种系统,包括:一个或多个计算机;以及一个或多个存储器,所述一个或多个存储器存储指令,所述指令在由所述一个或多个计算机执行时致使所述一个或多个计算机执行操作,所述操作包括:由一个或多个计算机获得第一矩阵数据结构;由一个或多个计算机将所获得的矩阵数据结构分割成M个不同的矩阵数据结构部分的集合,其中M是大于1的整数;由一个或多个计算机将所述不同的M个矩阵数据结构部分中的每一个矩阵数据结构部分分割为K个矩阵数据结构子部分的相应集合,其中K是大于1的整数;对于K个矩阵数据结构子部分的所述相应集合中的每一个相应集合:由一个或多个计算机生成具有与所述K个矩阵数据结构子部分中的每一个矩阵数据结构子部分相同的维度的混淆矩阵;以及由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的混淆表示,所述混淆表示包括(i)所述K个矩阵数据结构子部分和(ii)所述混淆矩阵;以及由一个或多个计算机将表示M个矩阵数据结构部分的所述相应集合的所述(K个)矩阵数据结构子部分的(N个)混淆表示中的每一个混淆表示的数据传输到不同计算机以用于处理。8.根据权利要求7所述的系统,所述操作还包括:由一个或多个计算机从所述不同计算机中的每一个计算机接收包括结式矩阵的结果数据,其中所述结式矩阵中的每个结式矩阵是(a)不同矩阵和(b)M个矩阵数据结构子部分中的一个矩阵数据结构子部分的混淆表示的乘积;以及由一个或多个计算机对所述结果数据进行解码,其中对所述结果数据进行解码包括:由一个或多个计算机并且对于每个结式矩阵识别特定结式矩阵,所述特定结式矩阵是所述不同矩阵和所述K个矩阵数据结构中的一个矩阵数据结构的乘积。9.根据权利要求7所述的系统,其中由一个或多个计算机生成K个矩阵数据结构子部分的每个相应集合的包括(i)所述K个矩阵数据结构部分和(...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。