CherryPick是在刚过去的NSDI2017上发表的一篇文章。很欣喜地看到顶会论文作者上出现了阿里的身影。虽然不知道阿里在里面是什么角色……不过相对于只能看到微软或者谷歌的好多了

这两年,不管是NSDI,还是OSDI,都有关于资源推荐预测的论文,可以看出这块现在关注度还挺高的。上次去参加的技术沙龙,和一家国内云厂商经理聊天,他们的下一步也是要做资源预测来辅助调度。

那我们来一起看看这篇论文是怎么做的。首先描述一下CherryPick解决的问题的场景:

    你需要在公有云上运行一个大数据相关批处理任务。这时候你来到阿里云界面上,准备买几台虚拟机。但是玲琅满目的可选虚拟机的配置,让你不知道应该选哪种配置好。如果买最高的配置吧,费用又太高了(毕竟阿里云也不便宜)。如果买低配吧,可能程序运行的时间又会太慢了。这时候,就可以用CherryPick了。你输入你的预算花费、能够接受的程序运行时间,CherryPick就能给你推荐一个花费少、时间短的机器配置。waoooo,amazing~

从上面的场景描述可以看出,CherryPick用于最佳公有云机器配置推荐,也可以理解为对任务的运行时间估计,也可以理解为对任务所需资源的估计。下面我们详细看看CherryPick的设计。

一、背景介绍

在如今呢,是越来越多的大数据分析在云端运行,比如说有Map-Reduce、深度学习等等。这些应用在提交时,需要选择所需的机器配置。但是一般数据科学家们并不知道如果选择机器配置。据统计,在同样的运行时间下,不同的机器配置所需的花费,最多相差了12倍。因此一个自动的预测推荐功能是有存在的价值的。

敲黑板啊:CherryPick的面向的场景是对于周期性的重复性作业进行推荐。因为CherryPick会进行多次运行迭代逼近较优方案,因此需要任务本身会周期运行。同时据统计40%的作业都是周期性重复作业,所以只做重复性作业也是有价值的。

二、预测难点及现有方案

难点

预测并不是一件简单的事情,其中存在很多难点。
1.性能模型毕竟复杂
任务的运行时间并不是和资源配置呈线性相关的。同时,在公有云环境下,多租户之间的竞争,也导致了运行时间不是固定的。
2.费用模型
费用和性能一般来说是相互冲突的,性能越高,运行时间越短,费用花费可能就越高,当然不是绝对的。因此需要在花费和性能之间做一个平衡。
3.任务类型的多样
Job种类比较多,有计算密集型的、IO密集型等等,不同的配置,对任务产生的效果是不一样的。

任务的运行时间其实还和计算模型本身的设置有关,比如说Map-Reduce任务可以自己设置要多少个map和reduce数量。已经有其他研究做了,因此本文不考虑这个因素,只考虑机器配置

现有工作

现在的解决方案主要分为两种类型。
1.通过构建任务模型来预测
通过对Job本身结构的分析,来对其结构上建模。现在还挺多工作是按照这个方法来的,比如说Ernest(NSDI’16),就将所有类型的任务分成了几种模型(一对多,多对多等等),然后求出一个整体模型来进行预测。本文的作者也说了,这种方法存在弊端,并不是通用的模型(如SQL like情况下Ernest效果比较差)。同时呢,也需要对任务本身的结构进行深入分析,如果分析的不好的话,建模也建不好,不太稳定。
2.静态查找最佳的配置
这种方法就是直接试不同的配置会有什么样的效果。这样的方法就是需要试很多种不同的配置,对系统的负载会很大,花的时间会比较长。但是这种的好处就是把Job当黑盒来处理,不用深入研究Job本身的特性。

CherryPick就是基于第二种方法,但是有一定的改进。

三、CherryPick设计

CherryPick的基本思想并不是直接选到最优的配置,是从一堆候选的配置中,每次选择比较优的配置,不断逼近最佳配置或接近最佳位置。
相对于上面提到的“现有工作“中的第二种,CherryPick并不是傻瓜式地依次去测试哪种配置好, 而是有选择性地选择新的配置,更加快速地逼近最优解。

整体运行流程如上图所示。

1.先运行一种配置看看效果
2.让性能模型观察这次的运行,来修正性能模型
3.根据性能模型,选出一个新配置
4.重复第一步,直到满意为止

那CherryPick依据什么来每次选择每轮中的最优配置呢?核心就是CherryPick的性能模型[performance model]。整片论文的核心就是如何建立这个性能模型,以及如何通过性能模型来选择下一轮需要测试的配置。

那我们现在来讲讲这个核心是如何设计的。重点来啦(敲黑板,后排的李二狗不要睡了)

Performance Model

A.问题形式化

我们规定,X为一种配置(如2G内存,2核),C(X)为在X配置下所需要花费的总费用;P(X)为单位时间下X配置的价格;T(X)为在X配置下,该Job的运行总时间。因此很原始的费用模型就出来了:总价=单价*数量,对应到这里,目标是最小化总花费,即

> minimize           C(x) = T(x)* P(x) -----    公式 1subject to          T(x)<ExpectTime

因此我们的目标就是最小化C(x)。那问题来了,怎么去降低C(x)呢。

这里,就用到了机器学习的方法了。既然C(x)由于各种因素,比较随机,那就直接按照随机过程来处理,这里用的是高斯过程模型。至于为什么选高斯过程,后面作者有详细说明。

从上面的流程图可以看出,中间的性能模型,整体是用的Bayesian Optimization(贝叶斯优化,BO)。在每次计算中,首先选择一个配置,比如说配置A。贝叶斯优化可以通过配置A的运行情况,计算出总花费的一个置信区间,如有90%的可能性价格是落在在20元-30元的区间。然后再根据这次的结果,在下一轮计算中,选择一个新的配置B,通过在配置B的运行下,BO又算出一个置信区间,这次结果是90%可能性落在20-25之间。就这样不断不断降低时间,选择配置,最后得到一个最优或接近最优的配置。


在文章的最后回答这几个问题

  1. 研究问题是什么?为什么这是个有意义的问题?为什么这是个有挑战性的问题? 为什么已有工作在这个研究问题上不足?在哪方面、哪种情况下不足?
  2. 为什么提出的新方法能有效地解决该研究问题?究竟是什么内涵使得这种新方法区别与已有的工作?表现在哪里?
  3. 新方法是怎么运作的?它有什么假设?为什么这些假设可行? 新方法的可用性与有效性如何?它的使用场景和条件是什么?是否适用于实用场景?
  4. 新方法是如何与已有工作进行比较的?这样的比较是否有效?是否有隐藏的正确性威胁因素?
  5. 新方法是否有什么不足?在什么情况下会表现出来?是否有改进的可能?为什么及如何做?

电脑没电了…… Updating

NSDI'17-论文阅读[CherryPick:Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics]相关推荐

  1. 【论文阅读】[CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]

    文章目录 [论文阅读][CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]

  2. 【论文阅读】Adap-t: Adaptively Modulating Embedding Magnitude for Recommendation

    [论文阅读]Adap-

  3. 论文阅读:Volumetric and Multi-View CNNs for Object Classification on 3D Data

    Preface   最近由于要做正颌手术中术后变形预测的问题,要处理三维数据,所以在研究三维卷积,三维分类的问题.   今天阅读一篇CVPR2016的论文:<Volumetric and Mul ...

  4. 论文阅读:SO-Net: Self-Organizing Network for Point Cloud Analysis

    SO-Net: Self-Organizing Network for Point Cloud Analysis Jiaxin Li, Ben M. Chen, Gim Hee Lee Nationa ...

  5. 三维目标检测论文阅读:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection

    VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection 理解了PointPillars这篇文章后,看这篇文章就清 ...

  6. 论文阅读:Automatic Detection and Classi cation of Teeth in CT Data

    [论文信息] MICCAI 2012 会议论文 文章实现了中全自动的牙齿检测和分类,对象为CBCT/MSCT,实验数据集是43套临床头部CT图像. 主要是两个步骤: 1. 分割上颌骨: 2. 分成16 ...

  7. 论文阅读《Meta-FDMixup:Cross-Domain Few-Shot Learning Guided by Labeled Target Data》

    Background & Motivation 之前看的小样本论文大部分是目标域和源域属于同一个域,比如 COCO 数据集里的小样本设定:60类为 Base,20类为 Novel.Base 和 ...

  8. 论文阅读Super Edge 4-Points Congruent Sets-Based Point Cloud Global Registration

    来源:上海大学 数学和统计学院 期刊:remote sensing 摘要: 随着三维高帧率传感技术的加速发展,多站采集的密集点云对配准的准确性和效率提出了很大的挑战.广泛推进粗配准与精配准相结合.不同 ...

  9. 论文阅读笔记-You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis

    NDSS You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis 链接:https://www.ndss- ...

最新文章

  1. 教你如何防范远程桌面协议(RDP)的安全威胁
  2. Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...
  3. 创建JUNIT测试类
  4. Xamarin.Form的Android SDK工具下载安装
  5. Dubbo 高危反序列化漏洞,存在远程代码执行风险,建议及时升级到2.7.7或更高版本!...
  6. Jersey Restful Application with tomcat
  7. Android Settings中显示自定义dialog
  8. 每日程序C语言29-将数组逆序输出
  9. 移动互联网下一步:“深度学习”配合大数据
  10. Linux常用指令---快捷键
  11. Flink 1.7 文档翻译活动期待大家的参与 | ApacheCN
  12. 苹果 5G 掉队?!
  13. 图像匹配得到精确的旋转角度
  14. 从矩阵与空间操作的关系理解CSS3的transform
  15. 发那科机器人接线电源_电源开关上的L1和L2是不是火线和零线?
  16. Atitit 常见信息化系统类别erp mes crm cms oa 目录 1.  企业资源规划(ERP)、客户关系管理(CRM)、协同管理系统(CMS)是企业信息化的三大代表之作 1 2. 概
  17. zend studio php 错误提示,Zend Studio错误总结,zendstudio总结_PHP教程
  18. 颜色的RGBnbsp;指数
  19. 并购支付牌照中金支付90.01%股权该注意哪些风险
  20. 黑苹果注入显示器EDID解决部分核显独显黑屏花屏颜色不对等一系列问题

热门文章

  1. 启用计算机无线网络连接,无线网络连接未启用DHCP是怎么回事?如何解决?
  2. html中段落标志中标注文件子标题的是,html中段落标志中,标注文件子标题的是?()...
  3. 【JAVA进阶篇】时间与日期相关类
  4. python 检测直线 交点_OpenCV-Python教程(9、使用霍夫变换检测直线)
  5. SQL注入的一般过程
  6. 在线求助ing~ 急!!
  7. 菜刀php教程,中国菜刀的功能介绍和使用方法
  8. 【curl: (52) Empty reply from server】
  9. 背锅侠?程序出现bug是测试/开发工程师水平有限导致的?我只是个搬砖的......
  10. 计算机英语冯敏课后题答案,英语人教版五年级下册Unit 6 Work quietly人教版五年级冯敏.docx...