How to specify the distributed training job resource
Created by: Yancey1989
在用户提交分布式训练任务时,集群需要确定以下几个资源:
- 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
- 分别指定所有的资源使用情况:
- 好处:直接
-
坏处:用户需要知道集群中物理硬件的情况,例如一台机器多少块GPU卡,例如每台机器只有4块GPU卡,那么应该指定
trainer_gpu_num=4, trainer_count=2
而不是trainer_gpu_num=8, trainer_count=1
- 只指定一共需要的
CPU/GPU count
和memory limit
,根据集群物理配置决定pserver/trainer count
以及按比例分配pserver/trainer memoery
,pserver CPU limit
和trainer CPU/GPU limit
-
好处:用户可以无感知集群的物理配置情况,根据集群当前情况动态调整
pserver/trainer count
-
坏处:灵活性略差,
pserver CPU limit
和trainer CPU limit
根据不同的模型可能需要不同的分配比例,没有办法达到最优。
-
好处:用户可以无感知集群的物理配置情况,根据集群当前情况动态调整