Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
1f1cc222
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看板
未验证
提交
1f1cc222
编写于
7月 08, 2019
作者:
G
guru4elephant
提交者:
GitHub
7月 08, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add random port (#18504)
* add random port
上级
fe32879d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
6 deletion
+32
-6
python/paddle/fluid/incubate/fleet/base/role_maker.py
python/paddle/fluid/incubate/fleet/base/role_maker.py
+32
-6
未找到文件。
python/paddle/fluid/incubate/fleet/base/role_maker.py
浏览文件 @
1f1cc222
...
...
@@ -234,6 +234,7 @@ class MPISymetricRoleMaker(MPIRoleMaker):
super
(
MPISymetricRoleMaker
,
self
).
__init__
()
self
.
_node_type
=
None
self
.
_proc_per_node
=
2
self
.
_pserver_rand_port
=
0
def
_check_role_generation
(
self
):
if
not
self
.
_role_is_generated
:
...
...
@@ -248,6 +249,20 @@ class MPISymetricRoleMaker(MPIRoleMaker):
return
self
.
is_worker
()
and
0
==
self
.
worker_index
()
return
False
def
get_pserver_endpoints
(
self
):
if
self
.
_pserver_rand_port
<=
0
:
import
random
random
.
seed
(
self
.
_server_num
())
# port will be randomly generated from 60001 to 63999
# random seed is server num so that all nodes will get
# the same port
self
.
_pserver_rand_port
=
random
.
randint
(
60001
,
64000
)
endpoints
=
[
x
+
":"
+
str
(
self
.
_pserver_rand_port
)
for
x
in
self
.
_server_endpoints
]
return
endpoints
def
worker_num
(
self
):
return
self
.
_worker_num
()
...
...
@@ -273,7 +288,7 @@ class MPISymetricRoleMaker(MPIRoleMaker):
"""
if
self
.
_check_role_generation
():
if
self
.
is_worker
():
return
self
.
_get_size
()
/
2
return
self
.
_get_size
()
/
self
.
_proc_per_node
return
0
def
_server_num
(
self
):
...
...
@@ -281,9 +296,10 @@ class MPISymetricRoleMaker(MPIRoleMaker):
return the current number of server
"""
if
self
.
_check_role_generation
():
if
self
.
is_server
():
return
self
.
_get_size
()
/
2
return
0
return
self
.
_get_size
()
/
self
.
_proc_per_node
else
:
self
.
generate_role
()
return
self
.
_get_size
()
/
self
.
_proc_per_node
def
worker_index
(
self
):
"""
...
...
@@ -291,7 +307,9 @@ class MPISymetricRoleMaker(MPIRoleMaker):
"""
if
self
.
_check_role_generation
():
return
self
.
_rank
/
self
.
_proc_per_node
return
0
else
:
self
.
generate_role
()
return
self
.
_get_size
()
/
2
def
server_index
(
self
):
"""
...
...
@@ -299,7 +317,9 @@ class MPISymetricRoleMaker(MPIRoleMaker):
"""
if
self
.
_check_role_generation
():
return
self
.
_rank
/
self
.
_proc_per_node
return
0
else
:
self
.
generate_role
()
return
self
.
_get_size
()
/
self
.
_proc_per_node
def
_barrier_worker
(
self
):
"""
...
...
@@ -308,6 +328,8 @@ class MPISymetricRoleMaker(MPIRoleMaker):
if
self
.
_check_role_generation
():
if
self
.
is_worker
():
self
.
_node_type_comm
.
barrier
()
else
:
raise
Exception
(
"You should check role generation first"
)
def
_barrier_server
(
self
):
"""
...
...
@@ -316,6 +338,8 @@ class MPISymetricRoleMaker(MPIRoleMaker):
if
self
.
_check_role_generation
():
if
self
.
is_server
():
self
.
_node_type_comm
.
barrier
()
else
:
raise
Exception
(
"You should check role generation first"
)
def
generate_role
(
self
):
"""
...
...
@@ -332,6 +356,8 @@ class MPISymetricRoleMaker(MPIRoleMaker):
self
.
_node_type
=
1
self
.
_node_type_comm
=
self
.
_comm
.
Split
(
self
.
_node_type
)
self
.
_role_is_generated
=
True
else
:
raise
Exception
(
"You should check role generation first"
)
class
PaddleCloudRoleMaker
(
RoleMakerBase
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录