论文部分内容阅读
最近几年对大规模处理和更复杂科学计算的需求,高性能计算的研究有了很大的发展,出现了一系列并行计算架构,如Nvidia公司的统一设备计算架构(CUDA)、Intel公司的集成众核架构(MIC)、IBM公司的CELL架构。这些架构对应推出的加速器(Nvidia GPU, Intel Xeon Phi, IBM Cell),具有很高峰值性能,高能效,较低功耗。异构计算主要是指采用不同指令集架构和体系结构的计算处理单元组成系统的计算方式。由于对并行化的需求不断增长,在高性能领域,异构计算系统已越来越多地被采用。然而,充分挖掘异构计算系统的能力,往往需要对异构平台中各处理器架构的细节有很好的掌握,这对开发者来说,是一项非常沉重的工作。MapReduce是Google公司提出的一个大数据处理框架。MapReduce向用户提供自定义的Map和Reduce接口,开发者只需要针对特定的应用编写Map和Reduce函数,就可以编写并行分布式应用。自从Google提出MapReduce框架之后,开发者和研究人员开展了大量的研究工作。MapReduce作为大数据处理框架,广泛应用在数据挖掘、机器学习、生物信息学等领域。在异构系统上实现MapRedue编程模型,既能简化异构系统上程序开发,充分利用异构系统中各设备的计算能力,又能在大量领域得到应用,具有很强的应用价值,对异构系统的研究具有重要意义。在本文中,提出了一种基于异构计算平台的MapReduce编程模型HyMR。 HyMR能充分利用异构计算平台中所有计算设备的计算能力,如多核CPU,众核GPU和Xeon Phi协处理器。我们将HyMR实现为一个可以扩展的框架来处理所有计算设备上的通用操作,并使用可扩展的运行时系统来对设备有关的操作进行扩展。为了将我们的框架很好的映射到异构架构上,我们采用了两层设计的方案:高层设计实现了混合任务调度器,对不同设备间的计算任务进行分配调度;低层设计实现了HyMR适配器来作为底层MapReduce运行时系统的抽象,通过HyMR适配器针对特定设备扩展实现,来实现HyMR编程模型对异构计算平台的扩展。为了充分利用异构平台各设备的计算能力,我们采用了协同计算的方案和混合并行。同时提出了混合任务调度器、中间键值处理优化、数据传输优化等方案,来提高HyMR模型的性能。HyMR在使用几个常用MapReduce程序的大数据集上的测试发现,与目前CPU上最快的MapReduce程序Phoenix++相比,HyMR在异构计算平台上实现了高达18.7倍的加速,表现了较好的扩展性,并且能实现对大规模数据集的处理。