Primus分布式训练调度框架
Primus 是一个用于机器学习应用程序的通用分布式训练调度框架,管理机器学习框架(如 Tensorflow、Pytorch)的训练生命周期和数据分布,帮助训练框架获得更好的分布式能力。
功能
-
多训练框架支持:Tensorflow、PyTorch、Monolith 等;
-
多调度器支持:YARN、Kubernetes 等;
-
多角色支持:如 PS-Chief-CPU、Worker-GPU、Worker-Evaluator 等,并支持多角色之间的亲和反亲和等特殊调度策略;
-
多编排策略:支持同时启动,逐个启动,基于角色的按顺序启动等(如先启动 PS,再启动 Worker);
-
容错处理:Worker 失败自动拉起新 Worker,PS 失败整体失败;
-
动态调度:例如支持动态扩大缩小 Worker 数;
-
多数据源数据类型支持:HDFS、Kafka 等;
-
数据负载均衡与状态保存:支持按 Worker 负载动态分配 Task,如在 Worker 失败时支持回收 Task 并进行重新分配;
-
多线程高速数据读取:支持多线程读取 HDFS 和 Kafka 后输出到训练器,提高单训练器的吞吐。
架构
评论