论文部分内容阅读
深度学习是近年来机器学习领域最令人瞩目的方向。自2006年深度学习界泰斗Geoffrey Hinton在Science杂志上发表Deep Belief Networks的论文后,学术界和工业界对深度学习热情高涨,并逐渐在语音识别、图像识别、自然语言处理等领域获得突破性进展。 深度学习具有模型复杂、训练数据多、计算量大等特点。随着深度学习模型在规模和计算需求上的快速增长,应用CPU集群计算深度学习模型已力不从心,而GPU因其具有强大的浮点计算、矩阵计算能力,极高的内在并行性,非常适合深度学习。在相同的精度下,GPU相对CPU而言拥有更快的处理速度、更少的服务器投入和更低的功耗。GPU已被广泛应用于深度学习作业。因此,在面向深度学习的资源管理系统中增加对GPU的细粒度支持已成为当务之急。 深度学习作业分为训练型作业和生产型作业,训练得到的模型用于生产,生产产生的数据反馈训练,两类作业在实际使用中相辅相成。并且,现有研究表明,将两类作业部署在相同的集群可以提高资源利用率、降低成本。但是训练型作业需要大量的计算,生产型作业又要求实时响应,在集群复用后为了保证生产型作业的实时响应将会不断的中断训练型作业,从而影响训练型作业的及时交付。因此,两类作业复用集群在带来诸多好处的同时也给集群调度带来了巨大挑战。 研究人员为此开展了大量的研究工作,并取得了一定的成果,但是仍然存在一些问题:(1)能否细粒度支持GPU问题。现有资源管理系统无法支持GPU或者仅将GPU作为一个特殊设备,不能细粒度的管理和调度GPU资源。(2)作业异构性调度问题。现有调度系统未能很好的区分生产型作业与训练型作业的资源需求以及时延需求,不能保证训练与生产协同调度。(3)GPU资源利用率与生产型作业服务质量的协调问题。现有研究成果尚不能很好兼顾GPU资源利用率和生产型作业的服务质量,面向生产型作业的资源弹性伸缩在GPU维度仍存在一定的不足。 针对上述问题,本文对现有资源管理与集群调度研究成果进行了细致深入的分析与对比,提出了面向深度学习框架的资源管理系统的三种关键技术,并在实际应用场景中设计实现了资源管理系统TaiRM,解决了上述问题。本文的主要贡献如下: 1.面向GPU集群提出了一个资源描述模型。该模型包含两部分:在物理资源层面,系统基于静态和动态信息归一化GPU资源的计算能力;在作业需求层面,系统基于资源预测模型预测作业的GPU资源需求,合理使用GPU资源提高各阶段的效率。 2.在生产与训练复用集群的情况下,提出调度包括GPU在内的多种资源调度策略。系统保证生产型作业资源充足的同时,尽量调度空闲资源给训练型作业。从而确保生产型作业具有良好的响应能力的同时,尽快完成训练型作业,以此达到提高资源利用率的效果。 3.为了兼顾GPU资源利用率和生产型作业服务质量,提出了一种面向生产型作业的资源弹性伸缩策略。该策略能够根据生产型作业负载情况及时调整资源。在保证生产型作业服务质量的前提下,有效的提高GPU资源利用率。 4.设计并实现了一种面向深度学习作业的资源管理系统TaiRM。该系统实现了上述各种机制,并经过实际应用和多种实验验证了方案的可行性、正确性以及有效性。