论文部分内容阅读
随着互联网、移动互联网的和企业信息化的迅速发展,出现了越来越多以文本形式存储的信息,如何从这些数据中获得有价值的信息成为了计算机科学与技术领域的一个挑战。文本聚类可以发现文本之间的相关程度,将文本进行自动归类,是进行文本挖掘的一种关键方法。目前,已存在很多聚类算法可以应用到文本聚类任务中,其中谱聚类算法是一种基于谱图理论的聚类算法,它最大的优势是能够在任意形状的样本空间上聚类并且能够收敛于全局最优解。随着多核、众核处理器的快速发展,并行算法已成为提高程序运行效率的重要手段之一。另一方面,GPU能够提供强大的并行能力和存储带宽,并且提供了具有良好可编程性的CUDA平台,为编写基于GPU的并行程序提供支持。因此本文主要研究如何利用CUDA编写并行的谱聚类算法程序,并应用到文本聚类中,以提高聚类算法效率。本文详细分析了基于谱聚类的文本聚类算法实现步骤和时间复杂度,并对基于CPU的串行谱聚类算法执行时间进行分析。算法的高复杂度和良好的可并行性都证明其非常适合于在GPU上进行并行。在本文的并行实现部分,首先将谱聚类算法的各个步骤划分为CPU端程序和GPU端程序,划分时充分考虑各个步骤的复杂度和CPU端和GPU端的通信情况。在GPU端进行并行的部分主要包括相似度矩阵的计算、拉普拉斯矩阵的计算、Lanczos法和K-means聚类算法。实现时将以上步骤抽象为矩阵和向量运算的形式,并参考了现有矩阵向量运算的CUDA实现和CUDA提供的矩阵向量运算函数库,最后且根据GPU的体系结构特点和CUDA的执行模型对并行程序进行充分的优化。在Geforce GTX260型号的GPU上多个数据集的测试结果显示,本文实现的基于谱聚类的并行文本聚类算法具有良好的加速效果。