PaddlePaddle推出弹性深度学习特性
极客时间编辑部
讲述:丁婵大小:1.31M时长:02:52
近日,PaddlePaddle 在新版本 Fluid 中推出了弹性深度学习特性,以下简称 “Fluid EDL”。Fluid EDL 中包括一个 Kubernetes 控制器、一个根据集群中的闲置硬件资源改变分布式作业进程数量的 PaddlePaddle 自动调度器,以及如 PaddlePaddle 设计文档中描述的新的容错架构。
工业化的深度学习需要非常强大的计算能力。研究实验室和公司经常构建由 SLURM、MPI 或者 SGE 管理的 GPU 集群,如果闲置资源能满足所提交作业的需求,这些集群就会运行它,否则将其挂起一段难以估计的时间。这种方法有它的不足之处,比如可用节点有 99 个,但提交的作业需要 100 个,那么这个作业必须等待,这个期间无法使用任何可用的节点。对此,Fluid 与 Kubernetes 一起协作,尽可能早地揭示潜在的算法问题,为缺乏最佳资源的弹性深度学习工作提供支持。
另一个挑战是,工业化用户喜欢将深度学习作业作为完整数据管道的子阶段来运行,包括 Web 服务器和日志控制器,这使其可以在高网络流量时,令 Web 服务作业中运行更多的进程,从而减少深度学习进程,当网络流量降低时,则优先进行深度学习。而 Fluid 可以通过 Kubernetes 的 API 服务器了解整体情况,协调不同作业的进程数量。
在这两种场景中,无论进程量忽然冲高还是降低,PaddlePaddle 作业均可忍受。在新的设计中,只要一个作业中还有三个进程,就继续工作,在所有进程都被杀掉的极端情况下,该进程可以被恢复并重新执行。
PaddlePaddle 团队还针对以下两种情况对 Fluid EDL 进行了测试:
Kubernetes 集群只运行 PaddlePaddle 作业;
集群同时运行 PaddlePaddle 和 Nginx 两类作业。
第一个测试的结果显示,在没有 EDL 的情况下挂起的作业数单调递增,而打开 EDL 时,资源会被均匀分布给所有的作业,Fluid EDL 会杀掉一些已有的进程,为新作业和稍后开始的作业腾出资源。
而第二个测试的结果则显示,Fluid EDL 通过减少 Nginx Pod,自动开启了一些 PaddlePaddle 进程,并在稍后增加 Nginx Pod 来杀掉 PaddlePaddle 进程,使得集群的利用率保持在 90% 左右。但当关闭 Fluid EDL 时,PaddlePaddle 进程是不会自动增加的,利用率也会随着 Nginx Pod 数量的不同产生波动。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论