十分钟了解分布式计算:Petuum

Petuum是一个分布式机器学习专用计算框架,本文介绍其架构,并基于文章 More Effective Distributed ML via a Stale Synchronous Parallel Parameter Server,NIPS 2013 重点探讨其核心内容SSP协议。

主要思想

Parameter server提供了一个易于读写Global模型参数的接口,而SSP协议允许distributed workers读写本地缓存中stale版本的参数(而不是每次都花大量时间时间等待central storage传回最新参数)。更进一步,通过限制参数的stale程度,SSP模型提供了机器学习算法的正确性保证。

Stale Synchronous Parallel (SSP)
  1. 并行机器学习面临着两个挑战:集群本身的Unequal performance machines和网络通信上的Low bandwidth, High delay问题。集群越大,线性扩展的代价就越大,网络通信会占据时间开销的主要部分。
  2. BSP和Asynchronous协议各有缺点
  3. SSP协议的好处在于,faster worker会遇到参数版本过于stale的问题,导致每一步迭代都需要网络通信,从而达到了平衡计算和网络通信时间开销的效果。
  4. Petuum提供了分布式共享global模型参数的接口,使得很容易可以将多线程版本算法修改为Petuum版本。
  5. SSP放宽一致性约束后,结果可以达到更好。
    但还不够激动人心,因此改进的空间也很大。
  6. Asynchronous的问题在于,整体对参数的更新量delta_w=delta_w1+delta_w2+...(delta_wi表示单个worker i根据部分数据计算的参数更新量),delta_wi之间应该是不能跨迭代次数的(而SSP则是放宽了这种约束),因此Asynchronous并没有收敛的保证。而SSP是有收敛的保证的,论文提供了一个bound。
  7. 对于非凸问题来说,BSP和SSP有可能收敛到的最优解不一样。对于非凸优化问题(比如说神经网络),有大量局部最优解,随机梯度下降(可以跳出局部最优解)比批量梯度下降效果要更好。LDA本身也是非凸优化问题,不过如果采用变分法就会目标函数变成凸优化。
Structure-aware dynamic scheduler (STRADS)
  1. STRADS负责模型的并行,涉及到参数的partition。
  2. LDA(主题参数,归属主题(混合概率),隐变量)和DL模型(分层参数)的参数具有天然的分块,可能会好做一些。
Fault tolerance
  1. Petuum的Fault tolerance功能非常简单,通过在Parameter Sever上taking snapshots,将参数备份到持久化存储,而结点的故障恢复是没有支持的。

十分钟了解分布式计算:Petuum

时间: 2024-10-11 02:34:29

十分钟了解分布式计算:Petuum的相关文章

十分钟了解分布式计算:Google Dataflow

介绍 Google Cloud Dataflow是一种构建.管理和优化复杂数据处理流水线的方法,集成了许多内部技术,如用于数据高效并行化处理的Flume和具有良好容错机制流处理的MillWheel.Dataflow当前的API还只有Java版本(其实Flume本身是提供Java/C++/Python多种接口的). 相比原生的map-reduce模型,Dataflow有几个优点: 可以构建复杂的pipeline,在这不妨引用Google云平台的产品营销总监Brian Goldfarb的话 Clou

十分钟了解分布式计算:Spark

Spark是一个通用的分布式内存计算框架,本文主要研讨Spark的核心数据结构RDD,及其在内存上的容错,内容基于论文 Zaharia, Matei, et al. "Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing" Proceedings of the 9th USENIX conference on Networked Systems Desig

十分钟了解分布式计算:GraphX

GraphX是Spark中用于图(e.g., Web-Graphs and Social Networks)和图并行计算(e.g., PageRank and Collaborative Filtering)的API,可以认为是GraphLab(C++)和Pregel(C++)在Spark(Scala)上的重写及优化,跟其他分布式图计算框架相比,GraphX最大的贡献是,在Spark之上提供一栈式数据解决方案,可以方便且高效地完成图计算的一整套流水作业. GraphX最先是伯克利AMPLAB的一

十分钟了解分布式计算:GraphLab

GraphLab是一个面向大规模机器学习/图计算的分布式内存计算框架,由CMU在2009年开始做,这里的内容是基于论文 Low, Yucheng, et al. "Distributed GraphLab: A Framework for Machine Learning in the Cloud" Proceedings of the VLDB Endowment 5.8 (2012)[ppt] 后续会介绍GraphLab加强版PowerGraph (v. 2.2)的内容 Graph

【时序数据库】十分钟系列

参考文档: 十分钟看懂时序数据库(I)-存储 十分钟看懂时序数据库(II)- 预处理 十分钟看懂时序数据库(III)- 压缩 十分钟看懂时序数据库(IV)- 分级存储 十分钟看懂时序数据库(V)- 分布式计算 原文地址:https://www.cnblogs.com/badboy200800/p/10986467.html

Orange's 自己动手写操作系统 第一章 十分钟完成的操作系统 U盘启动 全记录

材料: 1 nasm:编译汇编源代码,网上很多地方有下 2  WinHex:作为windows系统中的写U盘工具,需要是正版(full version)才有写的权限,推荐:http://down.liangchan.net/WinHex_16.7.rar 步骤: 1 编译得到引导程序的机器代码.用命令行编译汇编源代码:name boot.asm -o boot.bin,其中boot.bin文件产生在命令行的当前目录中. 2 将引导程序写入到U盘引导盘的第一个扇区的第一个字节处(后),即主引导区.

[转]教你十分钟下载并破解IntelliJ IDEA(2017)

来源:http://www.itwendao.com/article/detail/400687.html 之前都是用myeclipse,但是最近发现看的很多教学视频都是使用 IntelliJ IDEA,于是决定换个软件开始新的学习征程! 下面讲讲我是如何在十分钟之内安装并破解该软件. 1.首先,我找到了 IntelliJ IDEA的官网:www.jetbrains.com 然后找到下载的地方,选择自己电脑所匹配的下载安装包,这里我们选择收费版的下载,因为免费版的功能并没有收费版的强悍. 2.接

十分钟学会Markdown(younghz原创)

younghz原创,转载请注明:http://blog.csdn.net/u012150179/article/details/26503779 原内容及代码托管在GitHub上,并持续更新,欢迎交流:https://github.com/younghz/Markdown 主要内容 MARKDOWN是什么? 谁发明可这么个牛X的东西? 为什么要使用它? 怎么使用? 都谁在用?没人用的东西我可不用. 感觉有意思?趁热打铁,推荐几个工具. 正文 1. MARKDOWN是什么? MARKDOWN是一种

【NLP】十分钟学习自然语言处理

十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问题,博客里面都有详细的文章去介绍,本文只是对其各个部分高度概括梳理.(本文原创,转载注明出处:十分钟学习自然语言处理概述  ) 1 什么是文本挖掘? 文本挖掘是信息挖掘的一个研究分支,用于基于文本信息的知识发现.文本挖掘的准备工作由文本收集.文本分