一种基于mic实现聚类算法的方法及装置制造方法

文档序号:6630827阅读:604来源:国知局
一种基于mic实现聚类算法的方法及装置制造方法
【专利摘要】本发明公开了一种基于MIC实现聚类算法的方法及装置,其中方法的具体实现过程为:将确定的MIC类数组和MIC点数组划分为一个或一个以上的矩阵;对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算;统计MIC矩阵运算结果,当MIC矩阵运算结果中改变的点数大于或等于预先设置的阈值时,根据MIC矩阵运算结果更新MIC类数组,直至聚类完成;装置的结构包括接收单元、划分单元、计算单元、统计处理单元和确定单元。该一种基于MIC实现聚类算法的方法及装置与现有技术相比,使用了MIC协处理器,提高了运算性能,实用性强。
【专利说明】-种基于MIC实现聚类算法的方法及装置

【技术领域】
[0001] 本发明涉及数据处理【技术领域】,具体地说是一种实用性强、基于MIC实现聚类算 法的方法及装置。

【背景技术】
[0002] 聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同 时也是数据挖掘的一个重要算法。聚类分析以相似性为基础,在一个聚类中的模式之间比 不在同一聚类中的模式之间具有更多的相似性。
[0003] K-means算法是聚类分析中的一种硬聚类算法,是典型的基于原型的目标函数聚 类方法,K-means算法以数据点到原型的某种距离作为优化的目标函数,利用函数求极值的 方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,是求对应某一初 始聚类中心向量最优分类,使得评价指标最小;采用误差平方和准则函数作为聚类准则函 数。
[0004] 集成众核技术MIC (Many Integrated Core)是Intel公司在2012年底推出的基 于x86架构的高并发协处理器架构。其产品系列名称为Intel Xeon Phi。
[0005] 但是,现在还没有一种方法,可以使用MIC优化算法,使之能够高效k-means算法, 更遑论处理任意规模的k-means算法。
[0006] 基于此,现提供一种基于MIC实现聚类算法的方法及装置,该方法及装置基于集 成众核技术MIC实现聚类算法,实用性强。


【发明内容】

[0007] 本发明的技术任务是针对以上不足之处,提供一种实用性强、基于MIC实现聚类 算法的方法及装置。
[0008] -种基于MIC实现聚类算法的方法,其具体实现过程为: 一、 开辟CPU端内存,并根据该CPU端内存设置MIC数组; 二、 将CPU内存复制到MIC数组; 三、 将确定的MIC数组划分为一个或一个以上16乘16的大小的矩阵;对不足16乘16 的矩阵,设置对应矩阵行列的两个标志位,标志位为16bit,其中每个bit对应矩阵中行或 列,如存在该行或列,则该bit赋值为1,否则赋值为0 ; 四、 对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算,对不足16乘16的矩阵,在结 果累加时,使用标志位参与运算,以获得协处理器MIC矩阵运算结果; 五、 统计MIC矩阵运算结果,当MIC矩阵运算结果中改变的点数大于或等于预先设置的 阈值时,根据MIC矩阵运算结果更新MIC类数组,直至聚类完成。
[0009] 所述步骤一中的CPU端内存包括CPU点数组和CPU类数组,相对应的,MIC数组包 括MIC点数组、MIC类数组,其具体的开辟过程为: 从输入文件中获取每行一组浮点数的二进制或文本形式的信息,根据获取的二进制或 文本形式的信息,建立中央处理器CPU内存相应的CPU点数组和CPU类数组; 根据CPU点数组和CPU类数组,确定MIC点数组、MIC类数组。
[0010] 所述MIC点数组、MIC类数组确定过程为:将CPU点数组转置变化后赋值给MIC点 数组,将CPU类数组直接赋值给MIC类数组。
[0011] 所述矩阵运算前进行初始化的步骤:设置元素个数与MIC点数组相同的聚类结果 数组,并初始化聚类结果数组各元素为-1。
[0012] 所述步骤五中统计MIC矩阵运算结果通过聚类结果数组实现。
[0013] 所述步骤五中聚类完成是指MIC矩阵运算结果中改变的点数小于预先设置的阈 值。
[0014] 所述步骤五中根据MIC矩阵运算结果更新MIC类数组的具体过程为:根据MIC矩 阵运算结果更新CPU类数组,再直接将CPU类数组赋值给MIC类数组。
[0015] 一种基于MIC实现聚类算法的装置,该装置包括接收单元、划分单元、计算单元、 统计处理单元和确定单元;其中, 接收单元,用于接收CPU处理的点数组和类数组; 划分单元,用于将确定的MIC类数组和MIC点数组划分为一个或一个以上16乘16的 大小的矩阵;对不足16乘16的矩阵,标志位赋值为0,除标志位以外的其他位赋值为1 ; 计算单元,用于对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算,对不足16乘16 的矩阵,在结果累加时,使用标志位参与运算,以获得协处理器MIC矩阵运算结果; 统计处理单元,用于统计MIC矩阵运算结果,当MIC矩阵运算结果中改变的点数大于或 等于预先设置的阈值时,根据MIC矩阵运算结果更新MIC类数组,直至聚类完成; 确定单元,用于将CPU点数组转置变化后赋值给MIC点数组,将CPU类数组直接赋值给 MIC类数组。
[0016] 本发明的一种基于MIC实现聚类算法的方法,具有以下优点: 该发明的一种基于MIC实现聚类算法的方法及装置使用了 MIC协处理器,提高了运算 性能;实现了对不规则的矩阵的聚类,使K-means聚类方法在MIC下实现了高效运行;实用 性强,适用范围广泛,易于推广。

【专利附图】

【附图说明】
[0017] 附图1为本发明基于MIC实现聚类算法的方法的流程图。
[0018] 附图2为本发明基于MIC实现聚类算法的装置示意图。

【具体实施方式】
[0019] 下面结合附图和具体实施例对本发明作进一步说明。
[0020] 本发明提供一种基于MIC实现聚类算法的方法,如附图1所示,其具体实现过程 为: 一、开辟CPU端内存,并根据该CPU端内存设置MIC数组。
[0021] 所述步骤一中的CPU端内存包括CPU点数组和CPU类数组,相对应的,MIC数组包 括MIC点数组、MIC类数组,其具体的开辟过程为: 从输入文件中获取每行一组浮点数的二进制或文本形式的信息,根据获取的二进制或 文本形式的信息,建立中央处理器CPU内存相应的CPU点数组和CPU类数组。
[0022] 根据CPU点数组和CPU类数组,确定MIC点数组、MIC类数组。
[0023] 所述MIC点数组、MIC类数组确定过程为:将CPU点数组转置变化后赋值给MIC点 数组,将CPU类数组直接赋值给MIC类数组。
[0024] 二、将CPU内存复制到MIC数组。
[0025] 三、将确定的MIC数组划分为一个或一个以上16乘16的大小的矩阵;对不足16 乘16的矩阵,设置对应矩阵行列的两个标志位,标志位为16bit,其中每个bit对应矩阵中 行或列,如存在该行或列,则该bit赋值为1,否则赋值为0。
[0026] 在该步骤中,选择16为计算维度,是由MIC硬件特性决定的,即因为MIC的主要 运算单元为512位宽的向量化单元,512位宽即对应16个浮点数。使用标志位参与运算是 指,使用MIC专用函数,在执行累加函数时,将标志位作为参数传入,即可计算出结果,即标 志位为0的不进行累加,标志位为1的进行累加。
[0027] 另外,MIC类数组和MIC点数组是在MIC内存中完成的数组,只有在MIC上实现聚 类时,才需要确定MIC类数组和MIC点数组。
[0028] 四、对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算,对不足16乘16的矩阵, 在结果累加时,使用标志位参与运算,以获得协处理器MIC矩阵运算结果。
[0029] 这里,MIC类数组和MIC点数组划分为16乘16的矩阵,MIC类数组的矩阵中行的 元素与MIC点数组列的元素按照矩阵乘法会进行相乘,这里类似于矩阵乘法的形式,是指 将该部分相乘部分替换为求差的平方。
[0030] 以下以矩阵

【权利要求】
1. 一种基于MIC实现聚类算法的方法,其特征在于其具体实现过程为: 一、 开辟CPU端内存,并根据该CPU端内存设置MIC数组; 二、 将CPU内存复制到MIC数组; 三、 将确定的MIC数组划分为一个或一个以上16乘16的大小的矩阵;对不足16乘16 的矩阵,设置对应矩阵行列的两个标志位,标志位为16bit,其中每个bit对应矩阵中行或 列,如存在该行或列,则该bit赋值为1,否则赋值为0 ; 四、 对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算,对不足16乘16的矩阵,在结 果累加时,使用标志位参与运算,以获得协处理器MIC矩阵运算结果; 五、 统计MIC矩阵运算结果,当MIC矩阵运算结果中改变的点数大于或等于预先设置的 阈值时,根据MIC矩阵运算结果更新MIC类数组,直至聚类完成。
2. 根据权利要求1所述的一种基于MIC实现聚类算法的方法,其特征在于:所述步骤 一中的CPU端内存包括CPU点数组和CPU类数组,相对应的,MIC数组包括MIC点数组、MIC 类数组,其具体的开辟过程为: 从输入文件中获取每行一组浮点数的二进制或文本形式的信息,根据获取的二进制或 文本形式的信息,建立中央处理器CPU内存相应的CPU点数组和CPU类数组; 根据CPU点数组和CPU类数组,确定MIC点数组、MIC类数组。
3. 根据权利要求2所述的一种基于MIC实现聚类算法的方法,其特征在于:所述MIC点 数组、MIC类数组确定过程为:将CPU点数组转置变化后赋值给MIC点数组,将CPU类数组 直接赋值给MIC类数组。
4. 根据权利要求1?3中任一所述的一种基于MIC实现聚类算法的方法,其特征在于: 所述矩阵运算前进行初始化的步骤:设置元素个数与MIC点数组相同的聚类结果数组,并 初始化聚类结果数组各元素为-1。
5. 根据权利要求4所述的一种基于MIC实现聚类算法的方法,其特征在于:所述步骤 五中统计MIC矩阵运算结果通过聚类结果数组实现。
6. 根据权利要求4所述的一种基于MIC实现聚类算法的方法,其特征在于:所述步骤 五中根据MIC矩阵运算结果更新MIC类数组的具体过程为:根据MIC矩阵运算结果更新CPU 类数组,再直接将CPU类数组赋值给MIC类数组。
7. 根据权利要求4所述的一种基于MIC实现聚类算法的方法,其特征在于:所述步骤 五中聚类完成是指MIC矩阵运算结果中改变的点数小于预先设置的阈值。
8. -种基于MIC实现聚类算法的装置,其特征在于:该装置包括接收单元、划分单元、 计算单元、统计处理单元和确定单元;其中, 接收单元,用于接收CPU处理的点数组和类数组; 划分单元,用于将确定的MIC类数组和MIC点数组划分为一个或一个以上16乘16的 大小的矩阵;对不足16乘16的矩阵,标志位赋值为0,除标志位以外的其他位赋值为1 ; 计算单元,用于对各划分的矩阵,按照矩阵乘法的形式进行矩阵运算,对不足16乘16 的矩阵,在结果累加时,使用标志位参与运算,以获得协处理器MIC矩阵运算结果; 统计处理单元,用于统计MIC矩阵运算结果,当MIC矩阵运算结果中改变的点数大于或 等于预先设置的阈值时,根据MIC矩阵运算结果更新MIC类数组,直至聚类完成; 确定单元,用于将CPU点数组转置变化后赋值给MIC点数组,将CPU类数组直接赋值给 MIC类数组。
【文档编号】G06F17/16GK104360985SQ201410555944
【公开日】2015年2月18日 申请日期:2014年10月20日 优先权日:2014年10月20日
【发明者】王恩东, 沈铂, 王娅娟, 张清 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1