Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
25e57949
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
25e57949
编写于
7月 17, 2017
作者:
H
Helin Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add more linters, fix errors found by them.
上级
37624b30
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
19 addition
and
27 deletion
+19
-27
.pre-commit-config.yaml
.pre-commit-config.yaml
+1
-1
go/master/c/client.go
go/master/c/client.go
+2
-3
go/master/etcd_client.go
go/master/etcd_client.go
+2
-2
go/master/inmem_store.go
go/master/inmem_store.go
+1
-1
go/master/service.go
go/master/service.go
+1
-2
go/pserver/client/c/cclient.go
go/pserver/client/c/cclient.go
+5
-6
go/pserver/etcd_client.go
go/pserver/etcd_client.go
+3
-6
go/pserver/optimizer.go
go/pserver/optimizer.go
+3
-5
go/pserver/service.go
go/pserver/service.go
+1
-1
未找到文件。
.pre-commit-config.yaml
浏览文件 @
25e57949
...
...
@@ -22,7 +22,7 @@
hooks
:
-
id
:
clang-formater
-
repo
:
https://github.com/PaddlePaddle/pre-commit-golang
sha
:
fb3ba0e9e38a516543925e96cef76740b61321ab
sha
:
16398aeccf263adaf53b2495eed0406347d76281
hooks
:
-
id
:
go-fmt
types
:
[
go
]
...
...
go/master/c/client.go
浏览文件 @
25e57949
...
...
@@ -23,7 +23,6 @@ import (
log
"github.com/sirupsen/logrus"
)
var
nullPtr
=
unsafe
.
Pointer
(
uintptr
(
0
))
var
mu
sync
.
Mutex
var
handleMap
=
make
(
map
[
C
.
paddle_master_client
]
*
master
.
Client
)
var
curHandle
C
.
paddle_master_client
...
...
@@ -114,13 +113,13 @@ func paddle_next_record(client C.paddle_master_client, record **C.uchar) C.int {
if
err
!=
nil
{
// Error
// TODO: return the type of error?
*
record
=
(
*
C
.
uchar
)(
n
ullPtr
)
*
record
=
(
*
C
.
uchar
)(
n
il
)
return
-
1
}
if
len
(
r
)
==
0
{
// Empty record
*
record
=
(
*
C
.
uchar
)(
n
ullPtr
)
*
record
=
(
*
C
.
uchar
)(
n
il
)
return
0
}
...
...
go/master/etcd_client.go
浏览文件 @
25e57949
...
...
@@ -30,7 +30,7 @@ type EtcdClient struct {
// NewEtcdClient creates a new EtcdClient.
func
NewEtcdClient
(
endpoints
[]
string
,
addr
string
,
lockPath
,
addrPath
,
statePath
string
,
ttlSec
int
)
(
*
EtcdClient
,
error
)
{
log
.
Debugf
(
"Connecting to etcd at %v"
,
endpoints
)
// TODO(helin): gracefully shutdown etcd store. Bec
ua
se etcd
// TODO(helin): gracefully shutdown etcd store. Bec
au
se etcd
// store holds a etcd lock, even though the lock will expire
// when the lease timeout, we need to implement graceful
// shutdown to release the lock.
...
...
@@ -60,7 +60,7 @@ func NewEtcdClient(endpoints []string, addr string, lockPath, addrPath, statePat
}
log
.
Debugf
(
"Successfully acquired lock at %s."
,
lockPath
)
put
:=
clientv3
.
OpPut
(
addrPath
,
string
(
addr
)
)
put
:=
clientv3
.
OpPut
(
addrPath
,
addr
)
resp
,
err
:=
cli
.
Txn
(
context
.
Background
())
.
If
(
lock
.
IsOwner
())
.
Then
(
put
)
.
Commit
()
if
err
!=
nil
{
return
nil
,
err
...
...
go/master/inmem_store.go
浏览文件 @
25e57949
...
...
@@ -4,7 +4,7 @@ import "sync"
// InMemStore is an in memory implementation of Store interface.
//
// It does not tolerate the fault that ca
su
es the program to crash.
// It does not tolerate the fault that ca
us
es the program to crash.
type
InMemStore
struct
{
mu
sync
.
Mutex
buf
[]
byte
...
...
go/master/service.go
浏览文件 @
25e57949
...
...
@@ -160,7 +160,7 @@ func (s *Service) recover() (bool, error) {
// snapshot *must* be called with s.mu being held.
func
(
s
*
Service
)
snapshot
()
error
{
// TO
OD
(helin): etcd request has a size limit, so the snapshot
// TO
DO
(helin): etcd request has a size limit, so the snapshot
// size is limited by the max request size. We should either
// divide the snapshot into smaller chunks and save under
// different keys, or configure the request size to be big
...
...
@@ -289,7 +289,6 @@ func (s *Service) processFailedTask(t taskEntry, epoch int) {
log
.
Warningf
(
"Task %v failed %d times, discard."
,
t
.
Task
,
t
.
NumFailure
)
s
.
taskQueues
.
Todo
=
append
(
s
.
taskQueues
.
Todo
,
t
)
return
}
func
(
s
*
Service
)
checkTimeoutFunc
(
taskID
int
,
epoch
int
)
func
()
{
...
...
go/pserver/client/c/cclient.go
浏览文件 @
25e57949
...
...
@@ -34,7 +34,6 @@ import (
log
"github.com/sirupsen/logrus"
)
var
nullPtr
=
unsafe
.
Pointer
(
uintptr
(
0
))
var
mu
sync
.
Mutex
var
handleMap
=
make
(
map
[
C
.
paddle_pserver_client
]
*
client
.
Client
)
var
curHandle
C
.
paddle_pserver_client
...
...
@@ -63,7 +62,7 @@ func remove(client C.paddle_pserver_client) *client.Client {
}
func
cArrayToSlice
(
p
unsafe
.
Pointer
,
len
int
)
[]
byte
{
if
p
==
n
ullPtr
{
if
p
==
n
il
{
return
nil
}
...
...
@@ -137,7 +136,7 @@ func paddle_init_param(client C.paddle_pserver_client, param C.paddle_parameter,
if
err
!=
nil
{
if
err
.
Error
()
==
pserver
.
AlreadyInitialized
{
log
.
Warningf
(
"parameter %s already initialized, treat paddle_init_param as sucessful."
,
name
)
log
.
Warningf
(
"parameter %s already initialized, treat paddle_init_param as suc
c
essful."
,
name
)
return
C
.
PSERVER_OK
}
log
.
Errorln
(
err
)
...
...
@@ -153,7 +152,7 @@ func paddle_finish_init_params(client C.paddle_pserver_client) C.int {
err
:=
c
.
FinishInitParams
()
if
err
!=
nil
{
if
err
.
Error
()
==
pserver
.
AlreadyInitialized
{
log
.
Warningln
(
"parameters already initialized, treat paddle_finish_init_params as sucessful."
)
log
.
Warningln
(
"parameters already initialized, treat paddle_finish_init_params as suc
c
essful."
)
return
C
.
PSERVER_OK
}
...
...
@@ -223,12 +222,12 @@ func paddle_get_params(client C.paddle_pserver_client, dst **C.paddle_parameter,
p
:=
ps
[
i
]
param
:=
*
(
**
C
.
paddle_parameter
)(
unsafe
.
Pointer
((
uintptr
(
unsafe
.
Pointer
(
dst
))
+
uintptr
(
i
)
*
unsafe
.
Sizeof
(
*
dst
))))
if
unsafe
.
Pointer
(
param
)
==
n
ullPtr
{
if
unsafe
.
Pointer
(
param
)
==
n
il
{
log
.
Errorln
(
"must pre-allocate parameter."
)
return
C
.
PSERVER_ERROR
}
if
unsafe
.
Pointer
(
param
.
content
)
!=
n
ullPtr
{
if
unsafe
.
Pointer
(
param
.
content
)
!=
n
il
{
if
int
(
param
.
content_len
)
!=
len
(
p
.
Content
)
{
log
.
Errorf
(
"the pre-allocated content len does not match parameter content len. Pre-allocated len: %d, returned len: %d"
,
param
.
content_len
,
len
(
p
.
Content
))
return
C
.
PSERVER_ERROR
...
...
go/pserver/etcd_client.go
浏览文件 @
25e57949
...
...
@@ -177,10 +177,10 @@ func (e *EtcdClient) registerPserverEtcd(ctx context.Context, port int) (int, er
break
}
}
if
registered
==
true
{
if
registered
{
return
nil
}
return
errors
.
New
(
"not registerd, may due to already have enough pservers"
)
return
errors
.
New
(
"not register
e
d, may due to already have enough pservers"
)
},
concurrency
.
WithAbortContext
(
ctx
),
concurrency
.
WithIsolation
(
concurrency
.
RepeatableReads
))
if
err
!=
nil
{
...
...
@@ -211,8 +211,5 @@ func (e *EtcdClient) PutKey(key string, value []byte, timeout time.Duration) err
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
timeout
)
_
,
err
:=
e
.
etcdClient
.
Put
(
ctx
,
key
,
string
(
value
))
cancel
()
if
err
!=
nil
{
return
err
}
return
nil
}
go/pserver/optimizer.go
浏览文件 @
25e57949
...
...
@@ -14,8 +14,6 @@ import (
log
"github.com/sirupsen/logrus"
)
var
nullPtr
=
unsafe
.
Pointer
(
uintptr
(
0
))
type
optimizer
struct
{
opt
*
C
.
struct_paddle_optimizer
elementType
ElementType
...
...
@@ -23,7 +21,7 @@ type optimizer struct {
}
func
cArrayToSlice
(
p
unsafe
.
Pointer
,
len
int
)
[]
byte
{
if
p
==
n
ullPtr
{
if
p
==
n
il
{
return
nil
}
...
...
@@ -92,8 +90,8 @@ func (o *optimizer) UpdateParameter(g Gradient) error {
}
func
(
o
*
optimizer
)
Cleanup
()
{
if
unsafe
.
Pointer
(
o
.
opt
)
!=
n
ullPtr
{
if
unsafe
.
Pointer
(
o
.
opt
)
!=
n
il
{
C
.
paddle_release_optimizer
(
o
.
opt
)
o
.
opt
=
(
*
C
.
struct_paddle_optimizer
)(
n
ullPtr
)
o
.
opt
=
(
*
C
.
struct_paddle_optimizer
)(
n
il
)
}
}
go/pserver/service.go
浏览文件 @
25e57949
...
...
@@ -211,7 +211,7 @@ func (s *Service) GetParam(name string, parameter *Parameter) error {
// learning optimization methods are stochastic in
// nature. This race condition is allowed deliberately
// to save the program from making a copy of the
// paramter content.
// param
e
ter content.
parameter
.
Name
=
name
parameter
.
ElementType
=
opt
.
elementType
parameter
.
Content
=
opt
.
GetWeights
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录