论文部分内容阅读
众所周知,在互联网时代信息呈爆炸性地增长。在科学领域、工程领域以及商业计算领域每天产生大量的数据。如此海量数据给计算机数据的存储和计算带来了严峻的挑战,实际对计算能力的需求远超自身IT架构的计算能力,传统的方式是不断地加大硬件投入来适应大数据的增长[1]。但是由于传统并行编程模型的复杂性,这无疑限制了系统的可拓展性,同时也降低了系统的易维护性。面对此种情况,这就迫切的需要一种全新的并行计算框架。近年来Hadoop已经发展为一个主流的云计算平台,由于它的MapReduce计算框架以及高效的分布式文件系统(HDFS),其特别适合处理海量数据。HDFS具有高容错性和高扩展性,允许用户将Hadoop部署在低廉的服务器上构成分布式系统。MapReduce编程模型屏蔽了分布式系统的底层细节,用户可在无需了解底层细节的情况下进行并行应用程序开发。但是由于CPU的并行度有限,对于数据密集型以及计算密集型问题,Hadoop还是显得力不从心。从这个方面来讲,Hadoop依然缺乏高性能计算能力。现代GPU (Graphics Processing Unit)已经广泛用于通用计算,常用于加速任务。众所周知,GPU由大量计算核心构成,拥有强大的并行能力,其计算能力远超CPU,擅长高性能计算。在科学理论领域和工程计算领域GPU集群已经被普遍采用。但是由于GPU集群有着低级别的数据存储能力,因此缺乏良好的容错机制。如果将GPU和Hadoop融合在一起,就可以充分利用GPU的高性能计算能力以及Hadoop的分布式计算模型以及其高性能文件系统。基于此,本文将深入探讨如何在Hadoop上运用GPU。本论文将介绍四种在Hadoop中应用GPU的方法,并通过对比实验结果,细致地分析这四种方法以及论证在Hadoop中利用GPU进行计算的有效性。