Skip to content
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

trainer use cclient of new parameterserver of go #2274

Closed
jacquesqiao opened this issue May 25, 2017 · 4 comments
Closed

trainer use cclient of new parameterserver of go #2274

jacquesqiao opened this issue May 25, 2017 · 4 comments
Assignees

Comments

@jacquesqiao
Copy link
Member

jacquesqiao commented May 25, 2017

1. 现状

目前 @helinwang 用go实现了一个新版本的pserver,代码在paddle/paddle/go/cclient/pserver下,主要有三个抽象:
1,service.go 实现了pserver的对外rpc接口。比如InitParam、SendGrads等。
2,optimizer.go 实现了一个基本的optimizer的功能,目前是调用optimizer.c中的实现。
3,client.go 实现了pclient的功能。
上面三个是核心抽象。

paddle/paddle/go/cclient/cmd这个目录下实现了一个启动pserver的main函数。
paddle/paddle/go/cclient/cclient这个目录下的cclient.go封装了pclient,并且会被编译出一个libclient.h供trainer调用。

paddle/paddle/go/cclient/cclient/test/main.c实现了一个这样的调用逻辑。

2. 测试方法。

启动pserver:

cd paddle/paddle/go/cmd/pserver
go run pserver.go -p 3000

3. 计划

目前的trainer使用的是之前实现的一个parameterclient和parameterserver通信。现在需要实现一个新版本的trainer过程,调用cclient中编译出来的libclient.h中的接口来实现parameter的upload/download/optimize的过程。

@helinwang
Copy link
Contributor

For cclient C API documentation, please see updated design doc here: #2277

@jacquesqiao
Copy link
Member Author

parameter client is mainly used in RemoteParameterUpdater and Evaluator, we will only consider RemoteParameterUpdater for this moment. So we need to implement a new RemoteParameterUpdater that use cclient C-API to set/update/get parameter from pserver.

@jacquesqiao
Copy link
Member Author

I will first implement the RemoteParameterUpdater using cclient and then expose it's API to python.

@helinwang
Copy link
Contributor

This is implemented, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants