NSDI'17-论文阅读[CherryPick:Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics]
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之间。就这样不断不断降低时间,选择配置,最后得到一个最优或接近最优的配置。
在文章的最后回答这几个问题
- 研究问题是什么?为什么这是个有意义的问题?为什么这是个有挑战性的问题? 为什么已有工作在这个研究问题上不足?在哪方面、哪种情况下不足?
- 为什么提出的新方法能有效地解决该研究问题?究竟是什么内涵使得这种新方法区别与已有的工作?表现在哪里?
- 新方法是怎么运作的?它有什么假设?为什么这些假设可行? 新方法的可用性与有效性如何?它的使用场景和条件是什么?是否适用于实用场景?
- 新方法是如何与已有工作进行比较的?这样的比较是否有效?是否有隐藏的正确性威胁因素?
- 新方法是否有什么不足?在什么情况下会表现出来?是否有改进的可能?为什么及如何做?
电脑没电了…… Updating
NSDI'17-论文阅读[CherryPick:Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics]相关推荐
- 【论文阅读】[CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]
文章目录 [论文阅读][CVPR 2018] PU-Net: Point Cloud Upsampling Network. [tensorflow] [rec. oth.]
- 【论文阅读】Adap-t: Adaptively Modulating Embedding Magnitude for Recommendation
[论文阅读]Adap-
- 论文阅读:Volumetric and Multi-View CNNs for Object Classification on 3D Data
Preface 最近由于要做正颌手术中术后变形预测的问题,要处理三维数据,所以在研究三维卷积,三维分类的问题. 今天阅读一篇CVPR2016的论文:<Volumetric and Mul ...
- 论文阅读: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 ...
- 三维目标检测论文阅读: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这篇文章后,看这篇文章就清 ...
- 论文阅读:Automatic Detection and Classication of Teeth in CT Data
[论文信息] MICCAI 2012 会议论文 文章实现了中全自动的牙齿检测和分类,对象为CBCT/MSCT,实验数据集是43套临床头部CT图像. 主要是两个步骤: 1. 分割上颌骨: 2. 分成16 ...
- 论文阅读《Meta-FDMixup:Cross-Domain Few-Shot Learning Guided by Labeled Target Data》
Background & Motivation 之前看的小样本论文大部分是目标域和源域属于同一个域,比如 COCO 数据集里的小样本设定:60类为 Base,20类为 Novel.Base 和 ...
- 论文阅读Super Edge 4-Points Congruent Sets-Based Point Cloud Global Registration
来源:上海大学 数学和统计学院 期刊:remote sensing 摘要: 随着三维高帧率传感技术的加速发展,多站采集的密集点云对配准的准确性和效率提出了很大的挑战.广泛推进粗配准与精配准相结合.不同 ...
- 论文阅读笔记-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- ...
最新文章
- 教你如何防范远程桌面协议(RDP)的安全威胁
- Oracle 10g Toad查看 表空间 报错 ORA-00600 internal error code arguments [ktfbhget-4], [6], [5]...
- 创建JUNIT测试类
- Xamarin.Form的Android SDK工具下载安装
- Dubbo 高危反序列化漏洞,存在远程代码执行风险,建议及时升级到2.7.7或更高版本!...
- Jersey Restful Application with tomcat
- Android Settings中显示自定义dialog
- 每日程序C语言29-将数组逆序输出
- 移动互联网下一步:“深度学习”配合大数据
- Linux常用指令---快捷键
- Flink 1.7 文档翻译活动期待大家的参与 | ApacheCN
- 苹果 5G 掉队?!
- 图像匹配得到精确的旋转角度
- 从矩阵与空间操作的关系理解CSS3的transform
- 发那科机器人接线电源_电源开关上的L1和L2是不是火线和零线?
- Atitit 常见信息化系统类别erp mes crm cms oa 目录 1. 企业资源规划(ERP)、客户关系管理(CRM)、协同管理系统(CMS)是企业信息化的三大代表之作	1 2. 概
- zend studio php 错误提示,Zend Studio错误总结,zendstudio总结_PHP教程
- 颜色的RGBnbsp;指数
- 并购支付牌照中金支付90.01%股权该注意哪些风险
- 黑苹果注入显示器EDID解决部分核显独显黑屏花屏颜色不对等一系列问题
热门文章
- 启用计算机无线网络连接,无线网络连接未启用DHCP是怎么回事?如何解决?
- html中段落标志中标注文件子标题的是,html中段落标志中,标注文件子标题的是?()...
- 【JAVA进阶篇】时间与日期相关类
- python 检测直线 交点_OpenCV-Python教程(9、使用霍夫变换检测直线)
- SQL注入的一般过程
- 在线求助ing~ 急!!
- 菜刀php教程,中国菜刀的功能介绍和使用方法
- 【curl: (52) Empty reply from server】
- 背锅侠?程序出现bug是测试/开发工程师水平有限导致的?我只是个搬砖的......
- 计算机英语冯敏课后题答案,英语人教版五年级下册Unit 6 Work quietly人教版五年级冯敏.docx...