Ray:机器学习的分布式计算利器
1. Ray调度高级选项:Placement Groups
Ray调度中有一个高级选项——Placement Groups。它允许Ray用户以事务性的方式跨多个节点预留一组资源。在某些机器学习场景中,若没有一组最少的资源就无法推进任务(即“帮派调度”场景),这时Placement Groups就非常有用。
2. 容错机制
Ray是一个复杂的分布式系统,故障的发生是常态而非例外。通常有两种类型的故障:
- Ray级故障 :Ray负责将Python函数和类扩展到多台计算机的集群中,因此扩展部分出现的任何错误都被视为Ray级故障。例如,若Node 1上的Raylet崩溃(如因意外原因被操作系统终止),这就是Ray级故障。
- 应用级故障 :Ray尝试扩展的Python函数或类内部发生的任何错误都被视为应用级故障。例如,若file1对于Python函数count_lines来说太大,导致内存不足(OOM)错误,这就是应用级故障。
Ray针对不同类型的故障有不同的容错策略:
| 类型 | 容错策略 |
| ---- | ---- |
| 任务(Task) | 默认情况下,失败的Ray任务将重试3次。可以使用 @ray.remote (max_retries=x) 进行自定义。 |
| 参与者(Actor) | 默认情况下,失败的Ray参与者不会重新启动。可以使用 @ray.remote (max_retries=y) 进行自定义。 |
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



