Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #1208

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 1月 22, 2017 by saxon_zh@saxon_zhGuest

【Improvement】改进Parameter Server对端口范围的特定要求

Created by: backyes

本issue 重点描述Parameter Server的端口范围问题,此问题在内部某些大业务的生产环境会有较大影响。

目前, Parameter Server要求所有逻辑pserver instances 监听端口范围保持强一致。

它主要受三个参数控制:

  • --ports_num, --port, --ports_num_for_sparse

上述三个参数选择了一个port range。

这种问题的影响特说明一下:

  • 为了提高计算利用率或者提高可活跃作业的容量,部分平台可能会同时在同一台物理机上调度多个Paddle instance,同时可能会出现因为端口冲突导致服务启动失败,同时也可能出现早期的paddle作业因为重复instance的启动导致parameter server被重复初始化,最终整个集群出现undefined的问题。 这类问题一般出现在多个非虚机(virtual machine)、非容器(container)场景下。

  • 对于基于container的集群调度,比如k8s等,由于端口资源是被映射的,所以不会出现上述冲突。同理, 对于虚机场景一般也不会出现这种冲突。

  • 理论上,这种限制是可以完全打破的, 允许任意parameter server instance使用任意连续的端口范围,不同instance之间无需强一致,达到这种目的需要:

    • 需要调度平台(脚本)能预留相关端口资源 (需要在任务启动前,原子性分配任意的port range资源)
    • 需要paddle trainer支持连接parameter server的任意端口范围 (需要改动trainer 逻辑) 内部曾经实现过一个版本: http://cooder.baidu.com/3206819/, 但是由于历史原因,并未merge进 trunk,且距离当前开源版本差距较远,仅供参考。
  • 未来paddle架构升级以后(比如采用基于master-worker架构), 实现上述功能可能也要做较大的改动。 所以, 建议综合考虑此问题,希望在新设计中能去除这种限制。

指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#1208
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7