petuum框架的ssp模型简介
来源:互联网 发布:泰·劳森国王数据 编辑:程序博客网 时间:2024/06/05 05:17
前言
SSP模型是利用机器学习算法的容错性构建的一种并行计算模型,机器学习的容错性是指在误差容许的范围内,算法迭代计算过程中可以存在一定的误差。例如随机梯度下降算法,可以在每一次迭代过程中容许存在一定的噪音梯度,而前提是不影响算法的收敛性。在SSP 模型中,给定了一个时间窗口,并保证了两个线程维持在这个时间窗口内,这样使得误差保持在一定的范围,并且有理论收敛性的保证。
SSP模型
假设现在有p个workers(线程或进程),需要在一个时钟(如一次迭代)去通过累加的方法去更新一个一致性参数如
- 快的worker和慢的worker时钟间隔是必须小于等于s,否则快的 worker 必须要停下来等待,这里快的 worker 并不是停下来不做任何事,而是去访问一次parameter server,使本地更新到最新值,这样做既满足时间窗口的条件,又可以更新最新值,减少噪音(图中worker 1在等worker 2);
- 当一个 worker在时钟c时读取parameter server中x时,读到可能是旧值,即本地 cache里面值,而旧值中每个worker更新部分一定包含 c-s-1之前的(图中黑色部分),但也可能包含某些worker的c-s-1之后的更新数据(图中蓝色部分);
- 每一个 worker每一次读 parameter server 时,读到的参数更新部分一定包含自己的上一次提交的那一部分,这就是所谓的“read-my-write(图中绿色部分);
- 每一个 worker本地时钟是 s 整数倍时,去读取一次 parameter server,而不是访问本地 cache;
- 每一个 worker提交更新时会更新本地时钟(编程时需要自己调用Clock操作),同时更新本地 cache 的值。
以上就是ssp模型基本条件,简单的说,ssp模型要求快的worker一旦突破了用户给定的时间窗口就必须停下来去访问一次parameter server,得到最新的参数,这样慢的worker访问cache一定可以慢慢追上快的worker,另一方面,每一个worker得到parameter server的参数更新的部分的时间窗口一定包含[0,c-s-1],可能包含的时间窗口[c-s,c+s-1],这里可能有几种情况,有可能是有些worker很快通过了下一个s整数倍,去访问了一次parameter server,也可能是出现了快的worker去等待慢的worker去访问了parameter server,而时间s整数倍去访问parameter server是为了避免所有的worker一直都没有一个worker去突破时间窗口。
基于ssp模型的矩阵分解
下面介绍如何利用基于ssp模型随机梯度下降算法去求解矩阵分解问题,矩阵分解问题如下
收敛性分析
给定一个
相比于BSP模型而言,每一个worker会同步更新的值,也就是每次时钟每一个worker在计算更新值之前得到的参数都是相同的,并且worker的时钟也是一致的,那么
阅读全文
0 0
- petuum框架的ssp模型简介
- petuum
- SSP
- Apache-Hama框架简介–BSP模型的实现
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN I2C I2S SPI SSP总线简介
- CAN、I2S、I2C、SPI、SSP总线简介
- CAN 、I2S、I2C、SPI 、SSP总线简介
- SSP和SPI的区别
- SSP和SCP的介绍
- SPI与SSP的区别?
- 在Redhat的Hadoop上安装Petuum笔记
- SSP中个人站点HOST的创建
- flex模式文字溢出问题
- XML的解析
- VS2013新建动态库及使用
- 晨跑
- Vim无插件实现Markdown文件实时预览
- petuum框架的ssp模型简介
- char数据类型3-C语言学习笔记5
- 编码规范
- 探索智能一站式硬件开发
- AC自动机
- Jenkins搭建CI环境
- 读取数据的常用方法
- Java正则表达式的语法与示例
- ORB-SLAM2的ORBMATCHER代码阅读