论文部分内容阅读
如今,机器学习已成为必不可少的数据分析技术,该技术可从大规模数据集中获取有用的信息。传统机器学习在单个机器上训练和处理数据。随着大数据时代的到来,单个机器无法满足机器学习任务庞大的存储和计算需求。于是,分布式机器学习应运而生。机器学习庞大的训练数据集和复杂的训练模型被划分为多个部分分布式地部署在多台机器上,并发地训练数据。大多数领先的IT公司都部署和维护着基于GPU服务器的分布式机器学习集群。分布式机器学习任务是非常消耗时间和资源的。那么对于服务提供商来说,最小化分布式机器学习系统中任务的平均完成时间是非常必要的。分布式机器学习任务通常具有资源需求弹性,其特征是当一个任务采用不同资源配置和数量的工作节点训练数据时,所需要的完成时间不同。对于单个任务来说,为其分配最佳配置的工作节点训练速度最快。但从分布式机器学习系统全局考虑,以最优配置运行每一个任务并不是最佳的解决方案。于是,分布式机器学习集群中的一个基本问题是如何探索机器学习任务的资源需求弹性并为每个任务采用不同的资源配置进行调度,从而最大程度地利用资源并最小化任务的平均完成时间。
本文以分布式机器学习任务为研究对象,以分布式机器学习任务的资源需求弹性为切入点,以最小化分布式机器学习系统中的任务平均完成时间为目的,基于参数服务器架构和Ring-AllReduce架构,开展任务调度算法设计研究。本文提出了一种在线调度算法,用以在每个任务到达时确定任务执行窗口,并发工作结点(和参数服务器结点)的数量和资源配置,从而最大程度地减小任务平均完成时间。本文提出的在线算法包括:一个在线调度框架,该框架采用迭代的方式将未处理的机器学习任务分批,从而将平均完成时间最小化问题分解为一系列的批处理调度问题;以及批处理调度算法,该算法为每一个机器学习任务配置资源以最大化当前迭代中已调度作业的总权重。
本文通过严谨的理论分析证明了本文提出的在线算法具有良好的参数化竞争比率,并且具有多项式时间复杂性。本文选取了三种在现今的分布式机器学习系统中具有代表性的调度策略来进行对比实验。在模拟实验中,本文以实际数据作为该在线算法的输入,从输出目标函数值和运行时间两个方面对算法进行分析评估。最终的实验结果表明本文提出的在线调度算法比当今云系统中最先进的调度程序更具优势。
本文以分布式机器学习任务为研究对象,以分布式机器学习任务的资源需求弹性为切入点,以最小化分布式机器学习系统中的任务平均完成时间为目的,基于参数服务器架构和Ring-AllReduce架构,开展任务调度算法设计研究。本文提出了一种在线调度算法,用以在每个任务到达时确定任务执行窗口,并发工作结点(和参数服务器结点)的数量和资源配置,从而最大程度地减小任务平均完成时间。本文提出的在线算法包括:一个在线调度框架,该框架采用迭代的方式将未处理的机器学习任务分批,从而将平均完成时间最小化问题分解为一系列的批处理调度问题;以及批处理调度算法,该算法为每一个机器学习任务配置资源以最大化当前迭代中已调度作业的总权重。
本文通过严谨的理论分析证明了本文提出的在线算法具有良好的参数化竞争比率,并且具有多项式时间复杂性。本文选取了三种在现今的分布式机器学习系统中具有代表性的调度策略来进行对比实验。在模拟实验中,本文以实际数据作为该在线算法的输入,从输出目标函数值和运行时间两个方面对算法进行分析评估。最终的实验结果表明本文提出的在线调度算法比当今云系统中最先进的调度程序更具优势。