论文部分内容阅读
随着深度学习(Deep Learning)技术的发展,神经网络模型变得复杂,模型训练耗时,对计算资源的需求量很大,亟需高效利用计算资源,加快模型训练过程。常用深度学习框架(如Tensor Flow、Py Torch等)支持在集群中使用多GPU分布式并行训练模型,通用集群调度器对分布式深度学习作业的支持不足,导致模型训练效率不高,同时集群资源利用率较低。现有针对分布式深度学习作业的调度研究工作在进行资源分配(确定任务个数及各任务的资源量)时未考虑任务放置(在具体的机器上执行各任务)带来的影响。事实上对给定资源量的任务如果放置在不同机器上执行,由于机器异构和运行阶段作业之间的干扰,任务执行效率会存在差异,使得任务放置对资源分配的影响不能被体现出来。为解决以上问题,本文首先根据参数服务器架构的分布式深度学习作业的迭代特性,利用神经网络构建一个预测分布式深度学习作业的训练速度的模型,该模型能够预测在不同作业配置(资源分配和任务放置)和作业间干扰情况下分布式深度学习作业的训练速度。根据参数服务器的内存特性,建立一个通用的参数服务器内存预测模型,预测参数服务器的内存占用量。然后提出一种面向分布式深度学习的动态资源调度方法,利用速度预测模型指导作业配置的生成,利用参数服务器内存预测模型指导参数服务器的内存分配,将资源分配和任务放置结合,优化平均作业完成时间并提高资源利用率。具体工作包括:1.根据分布式深度学习作业训练过程的迭代特性,利用作业在集群中执行时的历史数据,使用深度神经网络(Deep Neural Network)构建一个速度预测模型,预测分布式深度学习作业的训练速度,确定作业的训练速度与作业配置和作业间干扰信息之间的关系。2.根据作业执行时的内存使用数据,分析参数服务器的内存开销与神经网络模型大小、计算节点数目之间的关系,建立了一个通用的参数服务器内存预测模型。利用该模型动态调整分配给参数服务器的内存量,提高集群内存利用率。3.设计了一种面向分布式深度学习的动态资源调度方法,通过速度预测模型预测作业在不同作业配置下的训练速度,动态调整作业配置,并利用参数服务器内存预测模型指导参数服务器的内存分配,将资源分配和任务放置结合,优化平均作业完成时间并提升集群资源利用率。4.基于Kubernetes系统实现定制的调度器原型,并使用到达时间服从泊松分布的作业trace对调度算法进行了验证,结果显示了本文提出的方法对比相关研究工作可以缩短分布式深度学习作业的训练时间,同时提高集群资源利用率。