首页 理论教育Google公司开发的高效并行编程模型MapReduce

Google公司开发的高效并行编程模型MapReduce

【摘要】:然而,基于传统并行编程模型的高效并行程序的编写并不容易。同时,随着领域中数据量的高速增长,传统并行计算编程模型在处理大数据集时也存在性能瓶颈。针对上述两个问题,Google公司研发了一种新的并行编程模型MapReduce。例如,参考文献[21]中提出了改进的MapReduce模型,对Map和Reduce过程进行了优化;参考文献[22]中建立了适应多核的MapReduce并行编程支撑平台HPMR。它将数据尽可能放到内存中以提高迭代应用和交互式应用的计算效率。

高性能计算机的发展促使高效能程序设计环境的产生与发展。然而,基于传统并行编程模型的高效并行程序的编写并不容易。同时,随着领域中数据量的高速增长,传统并行计算编程模型在处理大数据集时也存在性能瓶颈。针对上述两个问题,Google公司研发了一种新的并行编程模型MapReduce。作为一种解决方案,MapReduce计算模型有效地解决了传统算法处理大数据集时的性能瓶颈问题,同时以易使用和易理解的方式简单高效地解决了传统并行计算编程效率不高的问题。

伴随着MapReduce应用范围的扩大,MapReduce的不足越来越明显。很多学者进行了相关的研究,对MapReduce进行了改进。例如,参考文献[21]中提出了改进的MapReduce模型,对Map和Reduce过程进行了优化;参考文献[22]中建立了适应多核的MapReduce并行编程支撑平台HPMR。针对MapReduce计算框架不适合迭代计算和交互式计算,伯克利大学的研究者开发了一个基于内存的计算框架Spark[23]。它将数据尽可能放到内存中以提高迭代应用和交互式应用的计算效率。针对MapReduce不适合进行流式计算和实时分析等,人们开发了实时性要远好于MapReduce的计算框架Storm[24]。(www.chuimin.cn)

研究者还针对多核、多处理器等不同平台实现了MapReduce模型。比如为了在多核平台上高效地执行程序,斯坦福大学的Ranger等人实现了一个基于多核平台的MapReduce的实现Phoenix[23]。针对GPU,香港科技大学与NVIDIA公司的统一计算设备架构(Compute Unified Device Architecture,CUDA)技术在GPU上实现了一个MapReduce系统Mars[24]