欢迎来到天天文库
浏览记录
ID:18783733
大小:282.50 KB
页数:7页
时间:2018-09-24
《22629945.基于mapreduce和gpu双重并行层次下的关联规则挖掘的探讨》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于MapReduce和GPU双重并行层次下的关联规则挖掘的探讨计算机学院2011级硕七班张宗禹21121276摘要:数据挖掘是指从巨量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。而关联规则就是其中一种典型的例子,本论文主要关注关联规则的挖掘。在许多情况下,将所有数据集中在一起进行分析往往是不可行的。分布式数据挖掘系统则可以充分利用分布式计算的能力对相关的数据进行分析与综合,再加上可以节省大量的时间和空间开销,分布式数据挖掘应运而生。同时,随着数据量的指数型增加以及对计算量的需求急切增长,已有的数据挖掘软件很难满足应用
2、的实时性需要,人们对并行数据挖掘技术的需求十分强烈。图形处理器(GPU)的最新发展已经能够以低廉的成本提供高性能的通用计算。本文将在介绍当前分布式数据挖掘的发展现状和趋势,以及当前基于GPU的并行数据挖掘发展现状的同时,从理论上以关联规则挖掘为例探讨一种将这两种正火热的技术结合的方法。关键字:数据挖掘、关联规则、MapReduce、GPGPU、CUDA、HadoopStreaming1.研究背景和现状1.1云计算框架Hadoop和MapReduce计算模型云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按
3、需服务。提供资源的网络被称为“云”。Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop依赖于社区服务器,因此它的成本比较低,任何人都可以使用。 Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理
4、想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++,当然也自然可以用CUDA语言,之后会详细说明。Hadoop最有趣的方面之一是MapandReduce流程,它受到Google开发的启发。MapReduce本身就是用于并行处理大数据集的软件框架。MapReduce的根源是函数性编程中的map和reduce函数。它由两个可能包含有许多实例(许多Map和Reduce)的操作组成。Map函数接受一组数据并将其转换为一个键/值对列表,输入域中的每个元素对应一个键/值对。Reduce函数接受Map函数生成的列表,然后根据它们的键(为每个键
5、生成一个键/值对)缩小键/值对列表。1.2GPGPU以及CUDA编程GPGPU全称GeneralPurposeGPU,即通用计算图形处理器。这个GPU可以分担CPU的处理任务,一般集成在CPU上。近年来,计算机图形处理器(GPU,GraphicsProcessingUnit)正在以大大超过摩尔定律的速度高速发展,极大的提高了计算机图形处理的速度和质量,不但促进了图像处理、虚拟现实、计算机仿真等相关应用领域的快速发展,同时也为人们利用GPU进行图形处理以外的通用计算提供了良好的运行平台。GPU应用领域的拓宽与其硬件发展有着极大关系。GPU自19
6、99年首先由NVIDIA公司提出后,就其发展的速度而言,是CPU更新速度的三倍。从1993年开始,GPU的性能以每年2.8倍的速度增长。目前,图形处理器已经经历了五代发展,平均每半年就有新一代的GPU问世。GPU具有四大优势:分别是众多的处理单元(ALU),高数据带宽的运算,高效的并行性,超长图形流水线。在3D领域,GPU的用途很简单,就是为拉更好的渲染3D场景,减轻CPU在图形运算方面的负担。时下刚刚出台的GPGPU,是将应用范围扩展到图形之外,无论是科研教育,财务计算,还是在工业领域,GPGPU都得到拉广泛的使用,关于它的科研成果和新应用
7、模式也层出不穷。CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVidia推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。1.3并行数据挖掘并行数据挖掘技术不同于其它并行算法的
8、地方在于它需要处理的数据的规模很大。人们知道,对于并行而言,交互之间的消耗(即内存的使用)是比执行时间(计算阶段)重要得多的因素。串行数据挖掘算法对于规模很小的数据
此文档下载收益归作者所有