Fluid + JindoRuntime:为微博深度学习平台提供高效支撑
为了能更好满足大规模深度学习模型训练的计算需求,需要取得更好的数据本地性效果。因此,我们希望达到以下目标:
计算能够充分利用本地化访问数据,这样数据就不需通过网络反复读取,加速深度学习模型训练的速度和提升集群的 GPU 使用率。
降低 HDFS 负载压力,通过应用对于部分数据的本地读取,减小数据访问延时和提升 HDFS 的可用性。
充分发挥热点数据集的缓存节点优势,在对用户无感知的前提下,智能的将任务调度到数据缓存节点上。让常用的模型训练程序越来越快。
通过 POSIX 接口读取数据,这样无需在模型开发和训练阶段使用不同的数据访问接口,降低开发深度学习模型程序的成本。
为了达到上述目标,我们迫切希望找到 Kubernetes 上具有分布式缓存加速能力的软件。很幸运,我们发现 CNCF Sandbox 项目 Fluid 正好可以满足我们的诉求。于是,我们设计了基于 Fluid 的新架构方案,经过验证比较,我们选择 JindoRuntime 作为加速运行时。
- 架构组件介绍
1)Fluid
Fluid[1] 是一个运行在 Kubernetes 上可扩展的分布式数据编排和加速系统,它通过数据的编排和使用数据的应用调度,解决云原生编排框架运行此类应用面临数据访问延时高、多数据源联合分析难、应用使用数据过程复杂等痛点。
<