论文部分内容阅读
随着互联网和物联网时代的相继开启,我们已于不觉间置身于“大数据”时代。为充分挖掘这些数据的价值,种类繁多的数据分析技术应运而生,且不同应用的数据处理模式大相庭径。与此同时,各种处理器飞速发展,大规模集群中逐渐出现了适用于高度并行计算,和专用算法加速,低功耗等具有不同特性的异构计算资源。这些计算资源的出现在一方面提升了集群的数据处理能力,降低了功耗,节约了计算成本,另一方面,也为方便、高效地使用异构集群中的各种资源带来了新的挑战。 本文就是为底层的异构集群和上层的异构应用搭建桥梁,从三个层次展开研究,为程序员提供一个易编程,可以充分发挥集群中异构资源的特性,可灵活适用于不同配置的集群的编程环境,且通过构建异构集群中的任务模型,优化了集群的资源管理与任务调度,让集群中的异构资源更加高效地被使用,具体贡献如下: 构建一个面向异构集群大规模数据处理的编程框架解决异构集群中“编程难”的问题:让程序员使用高层的并行编程模型(MapReduce)完成整个作业的并行,自动完成程序员提供的算法库与计算资源的映射,对程序员屏蔽底层硬件细节,具有高度的灵活性。此外,编程框架允许程序员调用已有的高度调优的算法实现,极大程度地提高了程序员的编程效率,更充分地发挥了各种异构计算资源的特性。在本文所使用的5个测试程序中,相对于各个程序的Hadoop实现(最优配置)取得了1.4x~16.1x的性能提升。 提出基于异构任务的行为特征的资源管理通过构建模型刻画异构集群中任务的异构性,并能使用该异构任务模型预测作业在集群的共享资源竞争情况下的性能,在本文使用的5个测试程序中,对K近邻算法的11种配置的性能预测误差平均为3.8%,对其他4个测试程序的平均预测误差仅为2.5%;集群的管理者能结合异构任务的特征进行任务划分,通过模型预测的各种资源配置方案下集群的数据处理速度,和处理单位大小的输入数据所需要的成本,为各作业选择最合适的资源配置方案;使用异构任务模型选择的资源配置方案相对于默认的方案最多能提高36.0%的性能。 根据异构任务的特性进行资源调度通过分析异构集群中不同作业对集群中异构资源的不同亲和性,我们先提出了基于异构任务模型的资源调度,在实验所用的两个集群中分别取得了19.4%和14.0%的性能提升;考虑到异构资源上分配到的任务加剧了集群中的系统I/O带宽资源的竞争,我们又提出基于异构动态亲和性的资源调度策略,在实验所用的两个集群中分别取得了24.4%和17.3%的性能提升。在实验所用的两个异构集群中,这两种策略都能够把集群中的异构资源优先分配给使用该资源效率高的任务,且性能提升的程度随集群中的GPU资源增多而增大。此外,基于异构动态亲和性的资源调度还能进一步减小任务在运行时受共享资源竞争的影响,提高负载运行周期中集群中各种资源的利用率,在集群中GPU资源分布较为集中的情况下表现明显优于基于异构任务模型的资源调度。