论文部分内容阅读
生活在一个信息技术日新月异,网络技术推陈出新的时代,生活中,人们对获取数据的方式也不断发生变革。特别是近年来移动互联网技术的兴起,通过移动终端就能方便的获知用户方方面面的数据信息。随着数据被不断的累积,怎样快速的从这些数据中挖掘出有价值的信息正被各行各业所重视。通常一些大的企业会采取将数据挖掘算法运行在高昂成本的分布式系统上,以加快挖掘速度。在单机环境下,只能采用CPU多线程的方式进行。随着多图形处理器(GPU)的普及以及运算能力的不断增强,在并行线程数量上GPU甚至超过了CPU。面对大型分布式系统高昂的成本以及单机CPU环境下有限的数据处理速度,GPU能以相对低廉的价格获得不错的计算性能。在该背景下,研究基于GPU的数据挖掘算法具有很重要的意义。 分类与聚类是数据挖掘中常被采用的两类算法。通过分类与聚类来发掘隐藏在海量、无规则数据中一些有价值的模式已经得到广泛的应用。本文对聚类中的K-means算法以及分类中的决策树C4.5算法进行了深入的分析。为了加快使用K-means算法进行聚类与C4.5算法进行分类的速度,详细分析了这两个算法的并行性,并将算法中需要进行大量计算的可并行部分移植到了GPU上进行加速处理。同时文中对基于CUDA平台的GPU并行编程模型、CUDA的线程块配置、CUDA存储器模型进行了详细分析,以充分发挥GPU高效的并行计算能力。 本文设计并实现了基于CUDA平台的K-means算法以及C4.5算法。首先,对两个算法进行了针对CUDA平台的并行性分析。在数据能被全部载入显存以及使用的线程数量在GPU设备支持的情况下,提出了对K-means算法采用了一个线程负责一个数据点到中心点距离计算的策略,并且对中心点采用了共赏存储器优化。同时对C4.5算法本文提出了与该算法在CPU执行时不同的并行策略,使用对信息增益率的计算进行拆分最后求和的方式来充分利用GPU的计算资源。实验测试中,首先重点分析了K-means算法在处理不同数据集时的加速性能,结果表明基于CUDA平台的算法对数据处理有很好的加速效果,并且随着数据量的增大加速效果越明显。此外本文对核函数块中线程数量配置对程序执行时间的影响也进行了分析,得出需要根据数据量大小来合理配置块中线程数的结论。接着对普通C4.5算法与通过GPU并行计算信息增益率的新C4.5算法的执行耗时情况进行了分析,并且对新的C4.5算法存在可以进一步优化的地方进行了总结。