tensorflow分布式的原理、架构以及更新参数模式

一、定义
分布式Tensorflow是由高性能的gRPC框架作为底层技术来支持的。这是一个通信框架gRPC(google remote procedure call),是一个高性能、跨平台的RPC框架。RPC协议,即远程过程调用协议,是指通过网络从远程计算机程序上请求服务。
RPC框架:远程过程调用,相当于是对底层协议的一个封装,解决一些传输错误和同步的问题,例如视频会议这些都需要用到RPC框架。
分布式系统:hadoop、tensorflow
二、计算机网络七层模型
(一)应用层 http协议
(二)表示层
(三)会话层
(四)传输层 tcp/udp
(五)网络 ip
(六)数据链路层 ppp
(七)物理层 rj45
三、分布式原理
在这里插入图片描述
(一)单机多卡:指单台服务器有多快GPU设备,运算速度GPU>CPU。假设一台机器上有4块GPU,单机多GPU的训练过程如下:
1、在单机单GPU的训练中,数据是一个batch一个batch的训练。在单机多GPU中,数据一次处理4个batch(假设是4个GPU训练),每个GPU处理一个batch的数据计算。
2、变量,或者说参数,保存在CPU上。数据由CPU分发给4个GPU,在GPU上完成计算,得到每个批次要更新的梯度。
3、在CPU上收集完4个GPU上要更新的梯度,计算一下平均梯度,然后更新。
4、循环进行上面步骤。
(二)多机多卡:指有多台计算机,充分使用多台计算机的性能,处理数据的能力。可以根据不同计算机划分不同的工作节点。当数据量或者计算量达到超过一台计算机处理能力的上限的话,必须使用分布式。
tensorflow的特点:计算速度提高,设备多
四、多机多卡分布式的架构
在这里插入图片描述
参数服务器ps:更新参数,保存参数
工作服务器(worker):主要功能就是去计算
在这里插入图片描述
tensorflow分布式会从所有worker里面默认指定一个worker(一般会默认指定第一台)来创建会话、运行会话、创建文件等(将这些资源都分配好),然后再由所有worker一起来计算。
五、分布式的模式
(一)分布式更新参数的模式(协调存储,更新参数)
1、同步模式更新
在这里插入图片描述
2、异步模式更新
在这里插入图片描述