Skip to content

How to specify the distributed training job resource #2019

@Yancey0623

Description

@Yancey0623

在用户提交分布式训练任务时,集群需要确定以下几个资源:

  • trainer/pserver count: trainer/pserver 进程数量
  • trainer/pserver memory: 每个 trainer/pserver 进程的memory limit
  • trainer CPU/GPU count: 每个trainer 进程使用 CPU/GPU count
  • pserver CPU count: 每个pserver使用的CPU count
  1. 分别指定所有的资源使用情况:
    • 好处:直接
    • 坏处:用户需要知道集群中物理硬件的情况,例如一台机器多少块GPU卡,例如每台机器只有4块GPU卡,那么应该指定trainer_gpu_num=4, trainer_count=2而不是trainer_gpu_num=8, trainer_count=1
  2. 只指定一共需要的CPU/GPU countmemory limit,根据集群物理配置决定pserver/trainer count以及按比例分配pserver/trainer memoery, pserver CPU limittrainer CPU/GPU limit
    • 好处:用户可以无感知集群的物理配置情况,根据集群当前情况动态调整pserver/trainer count
    • 坏处:灵活性略差,pserver CPU limittrainer CPU limit根据不同的模型可能需要不同的分配比例,没有办法达到最优。

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions