Skip to content

Clean the PServer API #649

@reyoung

Description

@reyoung

image

目前PServer具有太多API了,我们可以将PServer的API缩减成几条就可以了,主体需要做两个事情。

1、将锁服务,与简单的Key-Value Database单独提取出来,作为Master节点。所有的同步经由Master节点控制。同时外部借助于控制Key-Value Database来控制当前Paddle的训练状态。

2、参数相关操作,分为下面三个

  • create_buf
  • destroy_buf
  • push_buf
  • get_buf
  • do_ops

其中,do_ops操作传一串操作进来(可以是字符串,也可以是自定义的Message,但总体类似于S表达式)。

例如,对于常见的sgd操作,公式为 (Value := Value - ita * Gradient)。那么翻译成S表达式就为,
(:= Value (- Value (* ita Gradient))))

使用这个api可以将pserver整体关于如何计算或者如何优化的逻辑全部去掉。这样我们的pserver其实会变得很薄,可以用任何语言来写。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions