Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
025e7f9c
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
025e7f9c
编写于
5月 24, 2017
作者:
H
Helin Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
implement basic master server
上级
d7b5a136
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
80 addition
and
2 deletion
+80
-2
paddle/go/cmd/master/master.go
paddle/go/cmd/master/master.go
+78
-0
paddle/go/master/service.go
paddle/go/master/service.go
+2
-2
未找到文件。
paddle/go/cmd/master/master.go
0 → 100644
浏览文件 @
025e7f9c
package
main
import
(
"flag"
"net"
"net/http"
"net/rpc"
"os"
"strconv"
"strings"
"time"
"github.com/PaddlePaddle/Paddle/paddle/go/master"
"github.com/wangkuiyi/recordio"
)
const
(
taskTimeoutDur
=
20
*
time
.
Minute
taskTimeoutMax
=
3
)
func
main
()
{
port
:=
flag
.
Int
(
"p"
,
0
,
"port of the master server"
)
dataset
:=
flag
.
String
(
"d"
,
""
,
"dataset: comma separated path to RecordIO files"
)
faultTolerant
:=
flag
.
Bool
(
"fault-tolerance"
,
false
,
"enable fault tolerance (requires etcd)."
)
flag
.
Parse
()
if
*
dataset
==
""
{
panic
(
"no dataset specified."
)
}
if
*
faultTolerant
{
panic
(
"fault tolernat not implemented."
)
}
var
chunks
[]
master
.
Chunk
paths
:=
strings
.
Split
(
*
dataset
,
","
)
idx
:=
0
for
_
,
path
:=
range
paths
{
f
,
err
:=
os
.
Open
(
path
)
if
err
!=
nil
{
panic
(
err
)
}
index
,
err
:=
recordio
.
LoadIndex
(
f
)
if
err
!=
nil
{
panic
(
err
)
}
f
.
Close
()
count
:=
index
.
NumChunks
()
for
i
:=
0
;
i
<
count
;
i
++
{
chunk
:=
master
.
Chunk
{
Idx
:
idx
,
Path
:
path
,
Index
:
*
index
.
ChunkIndex
(
i
),
}
chunks
=
append
(
chunks
,
chunk
)
}
}
s
:=
master
.
NewService
(
chunks
,
taskTimeoutDur
,
taskTimeoutMax
)
err
:=
rpc
.
Register
(
s
)
if
err
!=
nil
{
panic
(
err
)
}
rpc
.
HandleHTTP
()
l
,
err
:=
net
.
Listen
(
"tcp"
,
":"
+
strconv
.
Itoa
(
*
port
))
if
err
!=
nil
{
panic
(
err
)
}
err
=
http
.
Serve
(
l
,
nil
)
if
err
!=
nil
{
panic
(
err
)
}
}
paddle/go/master/service.go
浏览文件 @
025e7f9c
...
@@ -64,14 +64,14 @@ func partition(chunks []Chunk, targetTaskCount int) []taskEntry {
...
@@ -64,14 +64,14 @@ func partition(chunks []Chunk, targetTaskCount int) []taskEntry {
}
}
// NewService creates a new service.
// NewService creates a new service.
func
NewService
(
chunks
[]
Chunk
,
timeoutDur
time
.
Duration
,
timeoutMax
int
)
(
*
Service
,
error
)
{
func
NewService
(
chunks
[]
Chunk
,
timeoutDur
time
.
Duration
,
timeoutMax
int
)
*
Service
{
s
:=
&
Service
{}
s
:=
&
Service
{}
s
.
timeoutDur
=
timeoutDur
s
.
timeoutDur
=
timeoutDur
s
.
timeoutMax
=
timeoutMax
s
.
timeoutMax
=
timeoutMax
s
.
taskQueues
=
taskQueues
{}
s
.
taskQueues
=
taskQueues
{}
s
.
taskQueues
.
Pending
=
make
(
map
[
int
]
taskEntry
)
s
.
taskQueues
.
Pending
=
make
(
map
[
int
]
taskEntry
)
s
.
taskQueues
.
Todo
=
partition
(
chunks
,
targetTaskCount
)
s
.
taskQueues
.
Todo
=
partition
(
chunks
,
targetTaskCount
)
return
s
,
nil
return
s
}
}
// Chunk is a chunk of data consisted of several data instances.
// Chunk is a chunk of data consisted of several data instances.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录