ACM头
登入

ACM的通信

研究亮点

技术视角:在所有负载下平衡


不平衡的Seesaw的两端的服务器

图片来源:Getty,freepnglogos

对于处理机器学习和其他具有不断增加的复杂性和数据要求的算法,大规模分布式平行计算已成为必要的。例如,Google TensorFlow可以执行分布式算法,这些算法需要数千个计算节点同时工作。但是,计算系统的服务时间随机波动。电源管理,软件或硬件故障,维护和资源共享是服务时间可变性的主要原因。故障和维护是不可避免的,电力管理对于减少能源消耗至关重要。多路复用和平衡许多应用程序,而不是共享硬件和软件,可实现高资源利用。因此,随机服务时间波动是计算环境固有的,因为通信系统中的噪声是不可避免的。

分布式并行计算同时执行构成较大计算作业的较小任务。但是,由于服务的随机波动,有些任务需要更多时间来完成。我们称这些任务Stragglers。大规模系统将作业分为许多任务。因此,即使是较小的随机服务时间,也将出于较高的概率,导致不可忽略的散落任务。任务执行的冗余已成为减少总体服务可变性的有力方法,原因有两个:它可以在不监视任务执行速度的情况下达到负载平衡,并且消除了快速在节点之间移动数据的需求。

要了解这些好处,请考虑将矢量乘以两任务的工作X通过两个矩阵,一种b,具有相同的尺寸。该系统具有四个计算节点,因此我们可以以各种方式冗余地执行这两个任务。我们称为复制的直接方式是有两个节点计算斧头还有另外两个Bx。因此,当两个节点计算之一时,该作业执行斧头完成和两个节点计算之一Bx完成。引入冗余的另一种方法(我们称为编码)是要让四个服务器中的每一个都计算来自集合的不同产品斧头,,,,Bx((((一种+bX, 和 (A-BX。观察到,当四个服务器中的任何两台服务器完成任务时,作业执行结束,并进行一些简单的后处理。因此,编码比复制更具灵活性。

但是,随着冗余的增加,资源共享的规模增长。服务时间的波动(冗余试图抵消)增加。我们应该添加多少冗余?分布式系统中有关冗余的最新工作都集中在代码设计上。已经提出了许多工作类型和各种散乱者的不同代码。但是,我们对我们应该选择特定系统的确切代码速率(冗余级别)知之甚少,以优化系统的性能。以下论文通过制作代码来解决此问题无重量。该方案自动将冗余级别调整为不同的节点计算速度和提供的负载。因此,它可以在一系列系统参数中实现接近完美的负载平衡,而不必知道它们的值。

无等代码可以从一组源符号中生成一个无限的编码符号序列,并可以保证从源符号的任何子集中恢复源符号的大小比源符号数量大一点的子集的高概率。由于编码符号的数量是任意的,因此此类代码没有固定的代码率。因此,术语无重量。规范的无重量代码是随机线性代码。这些代码将编码符号作为源符号的随机线性组合。尽管其速率效率,但由于解码器的计算复杂性,很少使用随机线性代码。但是,有关移动无线网络的几种标准已经采用了无重量的编码方案,例如喷泉和猛禽代码,因为它们的巧妙设计可实现低复杂性解码。


以下论文着重于矩阵矢量乘法,这是许多机器算法中的必不可少的操作。


传统的无重量方案适应了变化的频道增长,因此比普通的通道在具有波动条件下的通道上获得了更好的吞吐量。同样,本文提出的无重视策略将其冗余适应了计算环境中不可预测的变化,例如未知数的流浪者数量。因此,它可以通过较小的开销达到最小延迟。本文着重于矩阵矢量乘法,这是许多机器算法(包括梯度下降)的基本操作。

作者提出的计划的另一个好处是其计算效率。引入冗余的目的是减少工作执行的延迟。但是,我们预计冗余的工作执行在计算时间,网络带宽和扩展能量的成本会增加。提供计算服务的平台,例如Amazon EC2和MS Azure,与租户的累积计算时间成比例地为其服务收费。常见的固定利率编码策略降低了工作执行延迟,但这涉及许多,通常未使用的冗余计算。在大规模的情况下,本文中提出的编码策略接近理想负载平衡的延迟,并且执行几乎为零的冗余计算。

回到顶部

作者

Emina Soljanin是美国新泽西州皮斯卡塔维的罗格斯大学电气和计算机工程教授。

回到顶部

脚注

要查看随附的纸,请访问doi.acm.org/10.1145/3524298


作者拥有的版权。
请求(重新)向所有者/作者发布(重新)发布

数字图书馆由计算机协会发布。版权所有©2022 ACM,Inc。


找不到条目

登入全面访问
“ 忘记密码? »创建一个ACM Web帐户
文章内容:
Baidu
map