Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads

通过分析微软Philly集群log来分析深度学习训练workload的特征。通过将调度程序日志与各个作业的日志关联起来,文章研究了三个不同的问题,这些问题影响多租户集群上DNN训练工作负载的集群利用率:(1)gang scheduling 和位置限制对排队的影响,(2) 局部性对GPU利用率的影响,以及(3)训练期间的failure。 基于在大规模运营中的经验,文章提供了有关DNN培训工作负载的下一代集群调度程序的设计指导建议。

文章使用的资源调度和集群管理服务:微软Philly.

深度学习工作负载workload对集群管理系统提出了许多新要求或约束:需要GPU来做大量浮点运算,但是和CPU不同,并没有适当的硬件支持细粒度共享。
本文研究了locality-aware scheduling 如何影响性能和利用率的两个主要方面。 1.等待局部性约束如何影响训练作业开始之前的排队延迟。2.locality-aware scheduling 如何影响分布式训练作业的GPU利用率。
文章还探究了训练任务失败的原因。

文章为下一代的GPU集群调度器提出了三个指导性建议:

  1. 由于缺乏局域性会影响利用率和作业运行时间,并且由于DNN训练任务长期运行,因此调度程序应以queue的延迟为代价。
  2. 共享单个服务器的不同作业可能会相互干扰,从而不利地影响其训练时间。 因此,调度程序的目标应该是隔离专用服务器上的作业,同时实施诸如迁移以进行碎片化的技术,以支持需要更多GPU的作业的局限性。
  3. 应该尽早发现许多故障,而不是安排在更大的共享集群上。这可以通过在小型专用服务器池上安排每个传入的作业,甚至使用单个GPU应该能够捕获来自多GPU作业的简单编程和配置错误来实现。 此外,在运行时对故障进行在线分析可以使调度程序调整其重试策略,从而避免浪费的重新执行时间。

文中通过对log分析得到的结论:
1.随着训练的进行,放松局部性以减轻分布式训练的排队延迟具有一定的合理性。除了公平份额排队延迟之外,对gang scheduling和局部性的需求还为机器学习作业带来了碎片化延迟。
2.在共享集群中,GPU并没有充分利用。文中介绍了分布和干扰如何影响利用率。


原文作者:Myeongjae Jeon, Shivaram Venkataraman, Amar Phanishayee, Junjie Qian, Wencong Xiao, Fan Yang
原文链接:https://www.usenix.org/system/files/atc19-jeon.pdf
公开数据集:https://github.com/msr-fiddle/philly-traces