感觉这篇文章没有讲的很好,也许是我看的问题。 比如空间学习的两个挑战是怎么解决的?细节的实验设置和选择太多覆盖了宏观的一些东西。
背景
实际上要解决的问题是学习Job Completion Time以优化集群作业的调度。 实质上,之前所有的学习算法都是通过观察相同作业的历史执行情况来学习作业运行时间特征的,上述基于历史的学习方案的有效性关键取决于两个条件是否成立
- 作业是重复出现的
- 相同或类似作业的性能将在一段时间内保持一致
然而,在实践中,这两个条件往往并不成立。
- 首先,以前的许多工作都承认,并不是所有的工作都是反复出现的。例如,在Corral[43]和Jockey[30]使用的跟踪中,只有40%的工作是复发性的,而Morpheus[44]显示只有60%的工作是复发性的。
- 其次,即使是3Sigma[47]和Morpheus[44]等基于历史的预测方案的作者也强烈认为,为什么作业的运行时属性,即使是相同的输入,也不会保持一致,而是会不断地演变。主要原因是由于集群硬件、应用软件和执行集群作业的用户脚本的更新。
- 第三,我们自己对三个生产集群跟踪的分析(第4节)也表明,历史上的作业运行时间特征有相当大的变化。
主要内容
本篇论文提出了另外一种方案来更好地实现cluster job scheduling。这种方法的key insight来源于两个方面
一个作业通常有一个空间维度,即它通常由许多任务组成
一个作业的任务(在同一阶段)通常执行相同的代码并处理不同的类似大小的数据块[9, 16]。
调度员首先安排一个工作的几个抽样任务,即试点任务,运行到最后,它可以使用观察到的这些任务的运行时间特性来准确估计整个工作的运行时间。有效地,这种基于任务抽样的方法在空间维度上学习工作属性。我们把这种新的学习方案称为SLearn,意为 "空间学习"。
SLearn避免了基于历史的学习技术的主要缺点,即依赖工作的重复性和工作属性随着时间的推移保持固定。然而,空间学习引入了两个新的挑战:
它的估计精度可能会受到任务运行时间属性变化的影响,即任务倾斜;
延迟调度一个工作的剩余任务,直到采样任务的完成,可能会损害工作的完成时间。
结论
在本文中,我们对基于任务抽样的预测和基于历史的预测进行了比较研究,这两种预测通常在目前的集群作业调度器中使用。
我们的研究回答了两个关键问题:
- 通过定量、跟踪和实验分析,我们表明基于任务采样的方法能够以比基于历史的方案更高的精度预测作业运行时间属性。
通过对一个通用的集群作业调度器进行广泛的模拟和测试平台实验,我们表明,尽管基于抽样的学习会延迟非抽样的任务,直到完成抽样的任务,但这种延迟可以被比基于历史的预测方案更高的精度所补偿
对于三个生产集群跟踪,平均JCT降低了1.28倍、1.56倍和1.32倍。这些结果表明,在促进集群作业调度方面,基于任务抽样的预测为基于历史的预测提供了一个很有前途的替代方案。