论文摘要
随着现代计算机技术的不断发展,获取的数据的规模也越来越大,对大规模数据的快速处理成为亟需解决的问题。MapReduce作为一种分布式计算模型,能够简化程序员编写并行应用程序的工作,因而自2004年提出来后,迅速在世界范围内得到广泛的使用。然而,现有的MapReduce系统大多运行在CPU集群上,单个节点的计算性能有限,且前期投入和后期运维的成本较高。近年来,随着GPU的性能和可编程性不断提高,通过GPU加速成为提升大规模数据处理效率的新突破口。如何在CPU/GPU的异构环境上实现MapReduce架构迅速成为大数据处理领域的研究热点。本文针对上述问题展开了深入的研究,主要工作如下:1.提出了一种基于CPU/GPU异构系统的MapReduce模型,在保留原有MapReduce工作流的情况下,将MapReduce中的大部分计算任务转移到GPU上进行加速处理,提高了单节点的处理效率。2.在分析研究了整个系统数据调度的基础上,提出并实现了面向GPU的MapReduce数据调度策略,有效的实现了文件系统与CPU之间,CPU与GPU之间,以及GPU与GPU之间的快速数据交换。3. 由于异构环境的存在,集群的计算节点性能不尽相同,本文在深入研究现有MapReduce系统负载平衡算法的基础上,提出并实现了一种适应基于GPU的MapReduce系统的任务调度负载平衡策略。4.提出并实现了一个基于CPU/GPU异构系统的MapReduce并行计算框架(NESTOR),并通过叠前时间偏移(PKTM)等典型应用验证了本文并行计算框架的有效性。实验证明NESTOR能够完成MapReduce的基本工作流,并且简化了用户开发GPU计算程序的过程,对大计算量的应用有明显的提速。