Skip to content

论文阅读 - ElasticFlow: An Elastic Serverless Training Platform for Distributed Deep Learning

Posted on:2023.08.14

TOC

Open TOC

一、论文研究背景、动机与主要贡献

研究背景与动机

基于深度神经网络的训练是一项重要的工作负载,由于计算量巨大,为了提升效率,通常采用分布式训练的方法。现有的训练平台大多数采用服务器中心化的 IaaS 架构,这些平台往往存在资源管理困难和灵活性不足的问题,也无法保证训练任务能够在给定的截止时间之前完成,即 Performance Guarantees。

因而,这篇论文依据无服务器计算 FaaS 架构设计了 ElasticFlow,其关注点不在加速训练任务,而在于多训练任务场景下的资源调度,以利用弹性特性并以无服务的形式提供性能保证。

主要贡献

这篇论文的主要贡献为引入了 ElasticFlow 平台,该平台提供了一些 Serverless Functions,减少了 DL 开发者资源配置的心智负担。ElasticFlow 引入了 Minimum Satisfactory Share 的概念来进行作业的准入控制,以提供性能保证。

此外,他们还提出了一种基于贪心算法的资源分配策略,以提高训练吞吐量和扩展效率。这些贡献使得 ElasticFlow 成为了目前先进的分布式深度学习平台,为用户提供了更好的训练体验和性能保证。

二、论文问题描述或定义

现有的训练平台存在的问题

ElasticFlow 所应对的挑战

三、论文提出的新思路、新理论、或新方法

针对上述问题,这篇论文相应给出了下述方案:

对外接口

依据无服务器计算 FaaS 架构设计 ElasticFlow 对外接口,与 PyTorch 集成,将一个分布式训练任务抽象为一个单机训练的函数,DL 开发者只需传入模型、Global Batch Size、超参数等信息给 ElasticFlow,平台会自动依据 GPU 内存等硬件环境和任务预运行的采样信息,决定该任务所需的 GPU 数量(Workers 数量)、Local Batch Size 等信息。

此外,DL 开发者只需指定任务的 DDL,无需考虑资源释放,这也方便了平台综合各种信息,在事件触发时动态调度资源。

准入控制

用于判断在未来是否可能存在一定的资源来满足某个任务的 DDL 需求,如果不存在,则立刻拒绝该任务,避免影响后续训练任务的调度。这里引入了 Minimum Satisfactory Share 这个概念,即满足某个任务的 DDL 需求所需的最少 GPU 数量。当只存在一个训练任务时,可以直接用二分查找来获得满足 DDL 需求的最少 GPU 数量。当存在其他训练任务时,某个训练任务完成所需的 GPU 数量依赖于其他训练任务的资源占用情况。

为此,有新的训练任务时,需要将训练任务按 DDL 升序排序,渐进地增加每个训练任务的 GPU 数量,直到训练任务 DDL 被满足,如果能够满足在任意时间,所有训练任务分配的 GPU 数量不超过总的 GPU 数量,那么就准入该训练任务,否则拒绝。这便是论文中所描述的 Prograssive Filling 算法,个人感觉有一些银行家算法的思想。

资源分配

资源分配是在 Minimum Satisfactory Share 的基础上,将空闲资源分配给准入的训练任务,从而加速任务完成速度,让系统在未来能够容纳更多的任务。这里方案的难点在于需要考虑边际收益效应,例如一个直观的想法是将空闲的 GPU 全部分配给 DDL 最早的那个训练任务,但是会受到边际收益效应的惩罚。

论文中给出的优化目标是最小化全部训练任务的总 GPU 占用时间,其约束条件有三个:(1) 所有训练任务 DDL 被满足;(2) 所有训练任务分配 GPU 数量不超过总的 GPU 数量的基础上;(3) 在下一个时间槽中所有 GPU 均被分配,除非给任一训练任务分配更多资源都会导致执行更慢。其实现使用贪心算法,思想是将剩余的 GPU 分配给边际收益最高的作业。

拓扑放置

这一模块会影响上述准入控制和资源分配算法的准确性,因为 Workers 间的通信开销受拓扑位置的影响较大,进而会影响实际的凹缩放曲线。这里的思想是使用多级架构建模 GPU 集群,使用最佳匹配的方法来将包含与所需 GPU 数目最接近的子树分配给训练任务,从而尽可能减少额外开销。同时,使用类似伙伴系统的思想,要求每个训练任务使用的 GPU 数量只能为 2 的幂次,从而避免 GPU 碎片。

四、论文方法的理论分析或实验评估方法与效果

这篇论文主要采用了实验评估方法来验证 ElasticFlow 平台的性能。搭建了实际的测试硬件平台以及一个模拟器(用于测试较大规模下的平台表现)。采集了实际生产环境中记录的集群和训练任务信息。基线包括传统的 EDF 调度器以及最近一些工作设计的调度器,这些调度器有 Deadline-aware 的,也有 Elastic 的,但是没有两者兼具的。

在实际的硬件平台上测试,ElasticFlow 可以满足 DDL 训练任务的作业数量,相较于其他调度器均有所提升,提升了 1.46x 到 7.65x 不等。在模拟器上更大尺度的测试结果与实际的硬件平台一致。在包含没有 DDL 的训练任务的情况下,通过调整两种训练任务的比例,相较于其他调度器,ElasticFlow 依旧取得了 Deadline Satisfactory Ratio 上的优势,但是代价是 JCT 的增加。

在随后的分析中,这篇论文评估了 Deadline Satisfactory Ratio 和 CE 这两个指标。对于 Deadline Satisfactory Ratio,这一部分通过实验论证了准入控制和资源分配这两个模块的有效性。对于 CE,为了公平起见,实验中设置的任务 DDL 足够宽松,以准入所有任务,实际上发挥作用的是资源分配模块,最大程度利用了集群中的空闲 GPU。

五、总结

这篇论文提出了一种名为 ElasticFlow 的新型分布式深度学习平台,旨在解决资源管理和性能保证的挑战。论文的主要创新点包括引入 Minimum Satisfactory Share 的准入控制、基于贪心算法的资源分配策略以及无服务器接口的设计。

优点

首次提出了 Deadline-aware 且 Elastic 的基于 FaaS 的分布式深度学习平台,并通过实验证明了其性能优势。此外,论文还引入了 Minimum Satisfactory Share 的概念和基于贪心算法的资源分配策略,为资源管理和性能保证提供了新的思路。

局限性

首先,论文的实验评估中使用的 Traces 和 DL Models 有限,无法完全代表实际复杂的生产环境。其次,论文没有详细讨论平台的可扩展性和容错性,这些因素在实际应用中也非常重要。最后,这篇论文假设平台用户不是恶意的,在实际的场景中需要更复杂的策略来应对恶意用户。

启示

后续研究思路

参考资料

  1. https://cp5555.github.io/publications/elasticflow-asplos23.pdf
  2. https://github.com/DicardoX/Individual_Paper_Notes/tree/main/ElasticFlow