编码分布式矩阵乘法(Coded Distributed Matrix Multiplication, CDMM)问题简单介绍

许多现代分布式计算框架都会遇到大规模分布式矩阵乘法问题,即计算两个大规模矩阵\mathbf{A}\mathbf{B}的乘积,如MapReduce、Spark。由于分布式计算系统会出现的无法预测的时延,主节点(master node)必须等到最慢的工作节点(worker node)完成计算才能恢复计算结果,这种现象称作掉队效应(straggler effect)。实验证明在Amazon EC2上,等待掉队者(stragglers)完成计算的时间比等待普通节点完成计算的时间长5到8倍。编码分布式矩阵乘法(Coded Distributed Matrix Multiplication, CDMM)通过引入冗余,即用擦除码、纠错码对矩阵A和B编码,使得主节点在收到一定数量(而非全部)工作节点的计算结果后就能解码出\mathbf{AB},从而缓和(mitigate)掉队效应。

CDMM的问题描述包括三部分。假设分布式计算系统包括1个主节点和N个工作节点。

1.编码(Encoding):主节点按照函数集\boldsymbol{f}=(f_1,f_2,\ldots,f_N)\boldsymbol{g}=(g_1,g_2,\ldots,g_N)将输入矩阵\mathbf{A}\mathbf{B}编码为(\mathbf{\tilde{A}}_1,\mathbf{\tilde{A}}_2,\ldots,\mathbf{\tilde{A}}_N)(\mathbf{\tilde{B}}_1,\mathbf{\tilde{B}}_2,\ldots,\mathbf{\tilde{B}}_N),其中\mathbf{\tilde{A}}_i=f_i(\mathbf{A}),\mathbf{\tilde{B}}_i=f_i(\mathbf{B})

2.分发和计算:主节点将(\mathbf{\tilde{A}}_i,\mathbf{\tilde{B}}_i)发送给工作节点i,工作节点计算\mathbf{\tilde{A}}_i \mathbf{\tilde{B}}_i并将结果返回给主节点。

3.解码(Decoding):主节点收到节点集合\mathcal{R}(大小为R)中的工作节点的计算结果后,使用按照函数集\boldsymbol{d}=\{d_\mathcal{R}:\mathcal{R}\subseteq[N]\}解码出\mathbf{AB}=d_\mathcal{R}(\{\mathbf{\tilde{A}}_i\mathbf{\tilde{B}}_i:i\in\mathcal{R}\})

计算策略(\boldsymbol{f},\boldsymbol{g},\boldsymbol{d})下,集合\mathcal{R}的大小R称作恢复阈值(recovery threshold)。最优恢复阈值定义为R^*\triangleq\min_{(\boldsymbol{f},\boldsymbol{g},\boldsymbol{d})\in\mathcal{L}} R(\boldsymbol{f},\boldsymbol{g},\boldsymbol{d}),其中\mathcal{L}表示所有可行策略的集合。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值