-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parameter server design doc #1880
Comments
补充一下:现在的parameter server的rpc机制有些问题
|
go rpc用的on-wire格式gob很有意思:
有压缩传输尺寸的可能性。 |
Issue resolved by design doc: https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/cluster_train/pserver_client.md |
无论是否重写parameter server,我们都需要一个清晰的parameter server接口:
目前parameter server只需要支持:异步SGD,不带动量的优化算法(传统SGD),dense更新。
不需要支持:同步SGD,各种带动量的优化算法,sparse更新。
接口需要涵盖目前不需要支持的功能,不需要实现不支持的功能。
据我理解,design doc需要以下几块接口的定义:
运行parameter server的命令行参数是什么:
比如:
--port 8000 --save-period 60
RPC Server接口伪代码:
我想象的,举个例子:
RPC client API,python and C/C++
出于性能考虑update和download貌似只能是C/C++ API (不然数据类型需要经过python中转)。
我想象的,举个例子:
把parameter server 主干部分(参数存储,更新部分,除去RPC以及使用etcd做service announcement的部分)当作一个库,库的API。
定义库API可以把RPC代码与主干部分清晰分开。以后保持接口,更换实现会很方便。另外有可能用golang写主程序,编译时候链接这个库。
The text was updated successfully, but these errors were encountered: