parameter server 源码剖析

首先调用Start(int customer_id, const char* argv0 =nullptr)。这个函数其实就是把进程block,直到所有的node准备完毕。


Postoffice:负责初始化相关的操作

全局维护一个static对象,

Postoffice::InitEnvironment():该函数主要是读取配置文件,获取work/server数量,以及通过DMLC_ROLE得到该node的类型(work/server/scheduler),

Postoffice::Start:该函数会block住,初始化相关的环境,包括配置信息,以及node信息,把node进行注册

WorkerRankToID:把node的id转化为worker的rank,worker的rank都是奇数;

ServerRankToID:把node的id转化为server的rank,server的rank都是偶数;

为什么server的rank最小值为8,worker为9呢?因为kServerGroup=2,kWorkerGroup=4,kScheduler=1,这几种组合起来是1-7。

你可能感兴趣的:(parameter server 源码剖析)