论文部分内容阅读
随着人工智能的兴起,数据中心运行有大量的深度学习任务。容器技术能够降低数据中心管理员部署多个深度学习任务的难度,因此越来越多的深度学习任务以容器化的方式被提交到数据中心。深度学习任务的训练过程需要依赖于分布式机器学习框架,由于框架内部不同组件之间存在频繁的数据交互,网络通信速率容易成为任务训练过程的性能瓶颈。但现有容器集群编排系统的调度策略未考虑到框架内各组件间跨节点网络数据传输与节点内数据通信性能的差异,容易导致容器化组件被调度到集群内不同的节点上运行,造成组件之间传输数据的时间较长,框架训练任务的速率较低;同时,容器的虚拟网络协议栈相较于服务器原生系统的网络协议栈更长,导致容器化组件之间的通信速率较低;此外,在框架训练任务的过程中,现有容器集群编排系统未提供动态调整各容器化组件所占用资源的机制,导致框架的计算资源利用率较低,深度学习任务的完成时间更长。针对上述问题,提出了一种面向深度学习应用的容器集群管理系统(CMS-DL,Container cluster Management System for Deep Learning applications)。在容器调度阶段,系统采取两阶段式调度策略保障集群内属于同一框架的容器化组件被调度到同一节点上运行,以减少框架内组件之间跨节点的网络数据包传输量;在创建容器阶段,系统采取精简的容器网络协议栈机制缩短框架内容器化组件之间的网络数据包传输路径;在容器运行阶段,系统动态调整框架内各容器化组件的可用资源,以增大框架的计算资源利用率。CMS-DL有效提升了框架内容器化组件之间的网络通信速率,减少容器化组件之间传输数据的时间,从而缩短深度学习任务的训练时间。在Kubernetes集群上实现CMS-DL,测试结果表明,相较于Docker容器的覆盖网络模式,CMS-DL使单个深度学习任务的训练时间缩短了0.6%-20.1%;相较于Kubernetes默认的调度策略以及贪心调度策略,CMS-DL使集群内深度学习任务的训练时间分别减少了42.3%与12.3%。