【论文】略读笔记24-经典-大规模智算集群任务调度
📖《Job scheduling for large-scale machine learning clusters》
🎯需求
- 随着现代平台上运行的机器学习 (ML) 和深度学习 (DL) 应用程序的快速增长,满足应用程序性能要求(例如按时完成和确保准确性)至关重要。
- 机器学习 (ML) 和深度学习 (DL) 技术的快速普及和发展为未来铺平了道路,智能应用程序可以帮助人们完成生活、工作和学习等个人任务,以及更广泛的社区目标,例如例如更高效的交通、有效的医疗保健和其他活动。
- 例如,科学家使用机器学习技术来预测病毒(例如 2020 年中国武汉的冠状病毒)在人群中的传播情况,以及飓风(例如 2019 年的飓风多里安)的路径,以便在受影响地区及时采取预防措施。
- 许多公司(例如亚马逊和谷歌)和学术组织现在为用户提供训练机器学习模型的平台。如图1 所示,ML 作业被提交到 ML 集群并放入作业队列中,等待分配给服务器。
- 作业总是有性能要求(例如截止日期和准确性)。
- 例如,预测飓风路径的机器学习作业必须在飓风登陆前的某个时间以较高的预测精度完成,以最大程度地避免损坏和人员伤亡。
- 机器学习 (ML) 和深度学习 (DL) 技术的快速普及和发展为未来铺平了道路,智能应用程序可以帮助人们完成生活、工作和学习等个人任务,以及更广泛的社区目标,例如例如更高效的交通、有效的医疗保健和其他活动。
- 因此,确保 ML 集群中所有正在运行和等待的 ML 作业及时完成而不降低其准确性性能至关重要。
- 近年来,ML 和 DL 模型变得越来越深、越来越大,这极大地增加了作业完成时间(JCT)。
🚧现状
- 为此,研究人员提出了几种用于 ML 集群的作业调度器。然而,之前提出的调度程序都没有考虑 ML 模型并行性,尽管它已被提议作为提高运行大规模 ML 和 DL 作业效率的方法。
- 为了满足日益大规模的机器学习或深度学习应用的高可扩展性要求,人们提出了模型并行性,其中对机器学习模型进行分区,多个分区并行运行。
- 随着 ML 和 DL 模型的规模迅速增长,模型并行的作业调度程序越来越有必要,以帮助减少作业的 JCT,同时保证高度的准确性。
- 然而,据我们所知,尽管之前对 ML 集群中的作业调度进行了研究,但之前提出的调度程序都无法同时处理模型和数据并行性。
- 为了满足日益大规模的机器学习或深度学习应用的高可扩展性要求,人们提出了模型并行性,其中对机器学习模型进行分区,多个分区并行运行。
🛩创新
作业调度系统应满足以下要求。
- 1)首先,它应该降低带宽成本,这可能是增强 JCT 时分布式 ML 作业的瓶颈,因为任务之间需要频繁的数据传输。
- 例如,对于数据并行作业,GPU 之间的通信开销为每个小批量 970MB-3168MB,对于模型并行作业,GPU 之间的通信开销为每个小批量 784MB-1037MB。
- 2)其次,它应该同时提高 JCT 和准确性,因为两者对于 ML 工作都很重要。
- 例如,飓风路径预测工作时间紧迫,而且需要高精度以避免损坏和人员伤亡。
- 3)第三,应考虑工作的紧迫性和准确性要求,确定工作的优先顺序。
- 例如,飓风路径预测对时间要求严格,精度要求很高,但年度人员流动预测具有时间容忍性,不需要非常高的精度。
- 第四,当系统过载时,它仍然可以提供作业期限保证或低JCT。
- 1)首先,它应该降低带宽成本,这可能是增强 JCT 时分布式 ML 作业的瓶颈,因为任务之间需要频繁的数据传输。
综上所述,MLFS的目标是最小化平均JCT,最大化平均作业精度,最大化满足截止日期和精度要求的作业数量,并最小化带宽成本。
在本文中,我们提出了一种基于 ML 作业特征的作业调度系统(MLFS),用于运行数据并行和模型并行 ML 作业的 ML 集群。此外,MLFS 还适用于**仅数据并行** ML 作业和仅模型并行 ML 作业。
- MLFS 的新颖之处在于它智能地利用了 ML 作业的空间/时间特征。
- 1)MLFS 首先使用启发式调度方法,考虑这些特征来确定作业队列排序的任务优先级,以提高 JCT 和准确性性能。为了减轻过载服务器的额外负载,它还会考虑任务优先级来选择从服务器移出的任务并将其放入要重新调度的队列中。
- 首先,不同的任务(针对不同的模型分区)单独运行,并且任务对最终作业延迟和准确性(即空间特征)有不同的影响。
例如,在ML模型分区图(或任务依赖图)中,如果一个任务有更多的依赖任务,或者它的依赖任务位于离该任务更近的层中,那么它应该更早运行,以在作业截止日期之前改善作业延迟和准确性。
此外,模型分区大小(通过 ML 模型参数的数量来衡量)会影响最终的准确性结果 - 较大的大小会产生较高的影响,反之亦然。
- 其次,机器学习作业通常会运行多次迭代,早期迭代比后期迭代对准确性的影响更大(即时间特征)。因此,早期迭代中的任务应该具有更高的优先级来运行,反之亦然。
- 首先,不同的任务(针对不同的模型分区)单独运行,并且任务对最终作业延迟和准确性(即空间特征)有不同的影响。
- 2)它使用启发式调度方法的数据来训练深度强化学习 (RL) 模型。强化学习模型训练好后,就会切换到强化学习方法,自动做出作业调度决策。
- 3)此外,当系统过载时,MLFS具有系统负载控制方法,可以根据任务优先级从过载的服务器中选择任务转移到负载不足的服务器上,并智能地终止那些在所需精度性能上产生很少的任务,这有助于提高JCT以及工作截止日期前的准确性。
- 1)MLFS 首先使用启发式调度方法,考虑这些特征来确定作业队列排序的任务优先级,以提高 JCT 和准确性性能。为了减轻过载服务器的额外负载,它还会考虑任务优先级来选择从服务器移出的任务并将其放入要重新调度的队列中。
- 它使用启发式调度方法的数据来训练深度强化学习 (RL) 模型。强化学习模型训练好后,就会切换到强化学习方法,自动做出作业调度决策。
- 此外,MLFS还具有系统负载控制方法,可以根据任务优先级从过载的服务器中选择任务移动到负载不足的服务器上,并在系统过载时智能地删除对所需精度性能影响很小或没有改善的任务,以提高JCT以及工作截止日期的准确性。
- MLFS 的新颖之处在于它智能地利用了 ML 作业的空间/时间特征。
MLFS 由以下组件组成:
- (1)基于机器学习特征的启发式任务调度(MLF-H)。
- MLFH 根据空间/时间 ML 作业特征和计算特征(例如截止日期、等待时间、剩余作业时间)确定任务优先级,以提高 JCT 和准确性。对准确性和 JCT 贡献更大的任务被赋予更高的优先级。任务的优先级用于在存在具有可用资源的服务器时对任务进行排队和分配任务。
- MLF-H还通过考虑任务优先级和其他因素来选择从过载服务器中迁移出的任务来处理过载服务器,并将这些任务与队列中等待的任务一起重新调度。 MLF-H在从过载的服务器中选择迁移任务以及选择主机服务器来分配任务时,进一步尝试充分利用资源并降低带宽成本。
- (2)基于ML特征的强化学习任务调度(MLF-RL)。
- MLFS 最初运行 MLF-H 一段时间,并使用数据训练深度 RL 模型,然后在模型训练良好时切换到 MLF-RL。给定正在运行和等待的任务以及节点,MLF-RL根据其状态选择任务从过载节点中移出,并为所选任务和队列中的等待任务确定目标节点或队列,以实现上述目的目标。
- (3)基于机器学习特征的系统负载控制(MLF-C)。
- 当系统过载时,作业在作业截止日期前会出现高 JCT 和低准确度的情况。一旦达到所需的精度(基于用户的选择),MLF-C 可以停止运行或生成任务,以减轻系统工作负载,从而在作业截止日期前提高 JCT 和精度。 MLF-C还采用了最佳ML迭代停止方法,即找到迭代停止训练,以在最小化迭代次数的同时获得最大精度。
- (1)基于机器学习特征的启发式任务调度(MLF-H)。
📊效果
- 我们在 AWS 上使用 Pytorch 进行了真实实验,并基于真实工作负载跟踪进行了大规模模拟。
- 大量的实验结果表明,与最先进的方法相比,MLFS 具有优越的性能及其每个组件的有效性,可将 JCT 降低高达 53%,完工时间降低高达 52%,准确性提高高达 64%。
- 我们在 Github 中开源了我们的代码[2]。
🧠疑问
- 多目标优化是如何处理的?
- 任务排序的几种优先级是如何分析的?为什么不考虑其他而考虑这几个因素?
- 为什么要使用启发式算法和深度强化学习算法结合的方式?这种结合方式能够借鉴到所有场景吗?还是有所限制?
- 调度与迁移兼顾的方案有什么好处?是否会带来额外开销?能否借鉴到其他场景?
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手 给我一个follow或star。
🗺参考文献
[2] Source Code. https://github.com/hiddenlayer2020/ ML- Job- Scheduler- MLFS.
- 标题: 【论文】略读笔记24-经典-大规模智算集群任务调度
- 作者: Fre5h1nd
- 创建于 : 2023-11-14 16:08:37
- 更新于 : 2024-10-08 11:39:55
- 链接: https://freshwlnd.github.io/2023/11/14/literature/literatureNotes24/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论