trainer use cclient of new parameterserver of go
Created by: jacquesqiao
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的过程。