ps-lite源码解读

本片文章主要解读 参数服务器源码,关于参数服务器的基本工作原理请移步https://www.zybuluo.com/Dounm/note/529299。
1.代码的类图
2. 程序启动流程

(1)首先执行PostOffice.start():{记录每个worker或者server所在的组(即可以与之通讯的节点),然后调用van.start(){读取schedule节点的信息,判断当前节点的属性,如果当前节点不是schedule节点,则向schedule节点发送自身节点信息完成注册,并开启van.receiving进程与心跳进程}一旦,schedule收到节点的注册信息后,会将其记录在nodelist中,一旦所有节点都注册完毕,则schedule节点给节点分配id,然后把含有节点信息的列表广播出去,其它节点收到节点列表后,将ready字段至1,心跳进程检测到ready为1时,每间隔一段时间向schedule发送活跃状态,schedule收到活跃状态后记录节点最后一次活跃的时间。这也就是schedule的监控历程。
(2)新建一个worker或者server时,都会创建一个customer实例,在创建customer实例时会启动customer.receiving进程{这个线程一直监听收到消息的队列recv_queue_}。这个消息队列内容存放过程为:当van.receiving监听到发送的数据后,调用customer.accept方法{recv_queue_->push_back(msg)}把监听到的数据放在队列中,这样customer.receiving进程从recv_queue_中取出消息,在通过回调函数recv_handle处理消息,其中recv_handle对于worker来说是worker.process对于server来说是sercer.process。
(3)主进程就按照模型的训练过程正常执行worker.pull worker.push,对于server来说只需要自定义server.set_handle就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值