论文部分内容阅读
随着当今信息技术的高速发展,人们日常生产生活中产生的数据量呈现出爆发式增长。因此,对于海量数据集的处理已成为数据挖掘技术的主要挑战。而如何能以高性价比的方式挖掘到有价值的信息是目前数据挖掘研究的新课题。GPU通用计算技术的日益成熟为数据挖掘技术的发展注入了新的动力。GPU通过与CPU截然不同的发展路线,由当初的专用图形处理器一步步走进今天的通用计算领域,并且正在向传统架构的超级计算机发起挑战。很显然,数据挖掘这类计算密集型应用也必将受益于现代GPU所提供的廉价大规模并行计算能力。关联规则是数据挖掘的重要技术之一,而其中的频繁项集计算任务又是整个算法的核心,研究如何利用GPU通用计算技术来加速频繁项集挖掘具有一定的理论与实际意义。本文通过分析与总结过去关于频繁项集挖掘的研究成果,设计了一种基于OpenCL的CPU+GPU异构执行的挖掘算法,利用OpenCL创建大规模并发线程来加速计算Apriori算法中的计算密集部分。实验采用OpenCL的Java绑定接口来具体实现,并选择了同一级别的CPU与GPU用于改进后算法与原算法的性能对比测试。实验结果表明,改进算法对于稀疏数据集有更好的加速性能,并且随着支持度的降低,加速比呈现扩大趋势,最高达到约20倍。另外,本文初步讨论并实验了利用OpenCL的Local Memory机制来对事务数据的访问作进一步优化。不过,最后的测试结果表明这种改进仅对稠密数据集产生了约10%的性能提升。本文在最后还指出了一些未来值得进一步研究与改进的方向。