Sigcomm‘2018 Sincronia: Near-Optimal Network Design for Coflows 论文阅读笔记

Introduction

这是sigcomm2018年的有关于coflow调度的文章。
一作:康奈尔大学博一,研究方向是数据中心,导师是四作,康奈尔大学计算机科学系助理教授,研究方向是系统与网络,在NSDI,OSDI上发表了多篇文章。
二作:康奈尔大学博士,研究方向是理论计算机科学,主要做近似算法和组合优化,导师是五作,康奈尔大学计算机科学系教授,主要研究近似算法。
三作:MIT计算机科学与人工智能实验室的研究生。
最后一个作者:博士毕业伯克利加州大学,是Google网络技术带头人,对google DCN,广域网,云网络基础设施做出了很大贡献。

Background

不同于传统的应用仅仅关心单条流的完成时间,现代数据中心网络中间同样部署有大量的分布式应用,它们同时关心多条流的完成时间,因此与优化流级别性能的网络设计是不匹配的。(分布式应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式。)

在分布式系统中,系统收到的计算任务都会被分解成多个子任务分别由不同的主机完成。产生中间数据在主机之间相互交换,作为下一个主机任务的输入。在这种情况下只要有一条流对应的中间数据没有到达,下一阶段的计算任务就无法执行。

对于这个问题,加州大学伯克利分校博士Mosharaf Chowdhury & Ion Stoica,Hotnets就对从coflow进行了定义:一组具有共同性能目标的协同数据流的集合。一个coflow中所有流都完成了,才能进入下一阶段。所以这个时候用于优化FCT的方法,类似于最短优先作业就已经不再适用了。对于coflow来说优化目标应该是最小化平均coflow完成时间(CCT)。
在这里插入图片描述

Motivation

这里可以看到之前的研究者对coflow提出的解决办法:

[9] Managing Data Transfers in Computer Clusters with Orchestra
Mosharaf, SIGCOMM’11,将调度从流上升到更高一层;
[7] Coflow: A Networking Abstraction for Cluster Applications
Mosharaf,Hotnets’12,提出coflow的概念;
[10] Efficient Coflow Scheduling with Varys
Mosharaf,SIGCOMM’14,Varys集中式,最小影响瓶颈优先和带宽分配策略, 需要知道coflow的信息,包括流的数量、大小和终端节点等;
[12] Decentralized Task-Aware Scheduling for Data Center Networks
Microsoft, SIGCOMM’14, Barrat 分布式,FIFO-LM方式避免线头阻塞;
[8] Efficient Coflow Scheduling Without Prior Knowledge
Mosharaf, SIGCOMM’15, Aalo在没有coflow先验知识的情况下,利用优先级队列进行调度。

在14年之后的有关于coflow调度的论文都是对14年这一篇Varys的改进方案。
Varys方案的设计包括两个部分,分别是一个简单的最小影响瓶颈优先以及带宽分配策略。Varys整个论文的侧重点在于后者,通过为每条流分配速率从而达到节约带宽,减少平均coflow完成时间的最终目的。但是这么做有两个很严重的问题:DCN中发生拥塞时,路径难以设计;然后是coflow的重新分配带宽过于频繁,难以实现。

Sincronia Design

这里介绍Sincronia的具体设计。
Sincronia将数据通信网络抽象为一个无阻塞的大型交换机,每当有Coflow到达时就记录coflow的信息,例如ID,流数,流大小,目标地址等。最终目标:最小化平均coflow完成时间。
在这里插入图片描述

offline

首先看到,在offline的情况下,Sincronia是如何解决coflow问题的。
Offline是一种理想的离线状态,即所有coflow都在t=0的时刻到达。这里论文设计了一种 瓶颈选择规模迭代算法(BSSI) 对所有的coflow进行排序,而不需要为每条流分配速率。
具体的,BSSI设计如下所示:

  • 找 Bottleneck 端口
    • 计算到每个端口(包括入端口和出端口)的总数据量;
    • 最大数据量的端口为瓶颈端口 b。
  • Select (权重)最大的coflow
    • 初始权重都为1;
    • 对瓶颈端口的所有coflow分别计算:权重/coflow到达瓶颈端口的数据量;
    • 最小值即可选出最大剩余处理时间的coflow,后发送(LRPT-last)。
  • Scale 剩余coflow的权重
    • 重新分别计算瓶颈端口未排序的coflw的权重;
    • 减去已排序的coflow对剩余coflow的影响;
  • Iterate
    • 从所有端口移除已经排序的coflow,再对所有端口重复前面的3个步骤。

在这里插入图片描述

online

现在从offline转换到online情况,也就是说,coflow会在任意时间到达。

  • 将时间分割为时间片;
  • 在每个时间片的开始,选择一组未完成的coflow,用BSSI算法排序;
  • 每个主机根据coflow的顺序独立设置流的优先级,按顺序发送;
  • 在时间片之间到达的coflow调度要work consevation,在小coflow和饥饿coflow之间平衡。
    在这里插入图片描述

Discussion

本文做出的主要贡献是Coflow调度问题的优化。作者证明的一个理论:只需要coflow的顺序是合理的,那么不管是哪一种per-flow发送控制策略,其平均的CCT都是最优CCT的2X-4X。
主要存在的问题笔者认为有以下三点:

  • 首先是把数据通信网络抽象成了交换机,认为coflow的控制只是在ingress和egress端口进行的。其实Coflow是可以路由调度相结合的。比如说让coflow内部的小流走差一些的路径,大流走好一点的路径,从而达到更好的性能。也就是说考虑coflow内部的流之间的先后顺序。
  • 第二个问题是这个论文只对ACCT进行了优化,并没有考虑到有deadline的coflow。所以我觉得应该可以对有deadline的coflow也进行优化。
  • 最后一个问题是,这个论文是默认有所有coflow的先验知识的,也就是说在coflow到达时就能够知道大小等所有信息,但是有部分coflow的大小其实是无法获取的。关于这个问题nsdi2019年有一篇文章已经提出了解决办法:思路就是通过机器学习来对coflow的大小进行估计。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值