正在加载图片...
第4期 申彦,等:CMP上基于数据集划分的K-means多核优化算法 ·611- 验,所以需要针对不同实验平台中不同类型的CPU 个数据点的所属类别、计算簇中心以及计算准则函 进行测试。HPPR03380MT平台采用的CPU是 数E这4个阶段均进行了并行化改进。且在这4个 Intel i3-3240@3.40GHz,核心类型为Ivy Bridge,64 阶段中,每个数据点的任务量是相当的,因此MC-K- 位CPU,双核,四线程,支持超线程技术,3MB三级 means算法所采取的等分数据集的方法可以取得较 缓存,双通道。HP ProLiant DL388pGen8平台采用 好的负载均衡性,算法取得了对比算法中最高的加 的CPU是Intel Xeon E5-2609@2.40GHz,核心类型 速率。 为Sandy Bridge,64位CPU,四核,四线程,10MB三 PKMeans_.MT算法取得了较低的加速率。分析 级缓存,四通道。 算法可知,该算法仅在读取数据集以及迭代计算每 对比算法为文献[l5]描述的基于MapReduce 个数据点的归属时利用parfor函数进行了并行化。 的并行K-means算法(PKMeans_MR)以及文献[l6] 对新分类中心点的计算及准则函数的计算均没有并 描述的PKMeans_.MT算法。在实验中根据上述文 行化,且算法需要依托MATLAB平台,故取得了较 献描述的算法思想分别实现了各算法进行对比实 低的加速率。 验。因为相同初始化条件下各算法最终聚类的结果 PKMeans_.MR算法在对比算法中取得了最低的 是一样的,所以实验主要对比分析相关算法的执行 加速率。分析算法可知,PKMeans_.MR算法改进原 时间以及加速率情况。 K-means算法,使其以MapReduce方式运行,节点之 4.1人工生成数据集测试 间在迭代时需要多次通信、多次同步,且算法需适应 人工生成数据集由数据生成程序根据K个高 MapReduce固有模式,降低了算法的运行效率,因此 斯分布随机产生,每个高斯分布设置一个随机权重 取得了最低的加速率。但对比原K-means算法仍提 来确定是否产生数据。每一个高斯分布的中心是随 高了一倍多的运行效率。 机产生的,区间为[-5,5]。数据点每个维度值的产 可以看出,对K-means进行并行化改进,适应了 生区间为[0.7,1.5]。产生的人工数据集包含100 多核CPU的发展趋势,可以极大程度提高算法的运 维,180000个数据点,数据集使用二进制bin文件 行效率,满足处理大规模数据集的需要。 保存。本次实验因为数据集以及聚类测试算法是在 同一台计算机上的,所以读取数据集时的阻塞系数 30 28.24 25.28 blockCoefficient设置为0。聚类簇数量设置为k=5。 整个实验随机产生5个不同的人工生成数据 20 =5 集,针对每个数据集,分别执行MC-K-means、PK- 15 11.47 :水 PKMeans MR 10 1001 9.029.35 Means_.MR、PKMeans_MT以及K-means算法各I0 7.028 oK-means 次,各自共运行50次,最后以聚类时间的平均值作 5 为算法聚类效率的评价。实验结果如图2、3所示。 Intel Xeon E5-2609Intel i3-3240 该数据集较为规整,算法运行收敛较快。从实 操作平台 验结果可以看出:针对服务器领域的Xeon E5-2609, 图2运行时间对比 虽然主频较低,但依靠较大的L3缓存以及四通道 Fig.2 Comparison of run time 的内存控制器,使得各算法取得了较高的执行效率。 4.00r 3.60 K-means算法在该平台环境下执行消耗了25.28s, 3.50 3.10 PKMeans_.MR消耗了10.01s,PKMeans_MT消耗了 3.00 3.133.02 2.53 2.16 =5 2.50 8.15s,MC-K-means则需要7.02s。而在i3-3240所 2.00 MC-K-means 在平台环境下,K-means算法消耗了28.24s,PK- 翼 PKMeans MT 1.50 PKMeans MR 1.00 Means_MR消耗了11.47s,PKMeans_MT消耗了 0.50 9.35s,MC-K-means在该平台则需要9.02s。从并 0 Intel Xeon E5-2609 Intel i3-3240 行化改造后各算法的执行结果来看,在Xeon E5- 操作平台 2609所在平台,算法获得了更高的加速比。这主要 图3加速率对比 是由于Xeon E5-2609是四核四线程的,拥有真实的 Fig.3 Comparison of speedup rate 四核心,可以更好地并行完成各并行化算法划分的 逐步增大生成数据集的规模,生成的人工数据 多任务聚类工作。而3-3240是双核心的,依靠超 集为100维,分别包含180000个数据点,360000 线程技术实现的四线程并行,但是CPU的双物理核 个数据点,540000个数据点,720000个数据点, 心需要频繁的进行线程上下文的切换,消耗了一部 900000个数据点。在Intel Xeon E5-2609平台测试 分的运行时间,获得了较低的加速比。 每个算法的加速率。实验每次随机产生2个相同大 其中,MC-Kmeans算法在读取数据集、判断每验,所以需要针对不同实验平台中不同类型的 CPU 进行测试。 HP PRO 3380 MT 平台采用的 CPU 是 Intel i3⁃3240@ 3.40 GHz,核心类型为 Ivy Bridge,64 位 CPU,双核,四线程,支持超线程技术,3 MB 三级 缓存,双通道。 HP ProLiant DL388p Gen8 平台采用 的 CPU 是 Intel Xeon E5⁃2609@ 2.40 GHz,核心类型 为 Sandy Bridge,64 位 CPU,四核,四线程,10 MB 三 级缓存,四通道。 对比算法为文献[15] 描述的基于 MapReduce 的并行 K⁃means 算法(PKMeans_MR)以及文献[16] 描述的 PKMeans_MT 算法。 在实验中根据上述文 献描述的算法思想分别实现了各算法进行对比实 验。 因为相同初始化条件下各算法最终聚类的结果 是一样的,所以实验主要对比分析相关算法的执行 时间以及加速率情况。 4.1 人工生成数据集测试 人工生成数据集由数据生成程序根据 K 个高 斯分布随机产生,每个高斯分布设置一个随机权重 来确定是否产生数据。 每一个高斯分布的中心是随 机产生的,区间为[-5,5]。 数据点每个维度值的产 生区间为[0.7,1.5]。 产生的人工数据集包含 100 维,180 000 个数据点,数据集使用二进制 bin 文件 保存。 本次实验因为数据集以及聚类测试算法是在 同一台计算机上的,所以读取数据集时的阻塞系数 blockCoefficient 设置为 0。 聚类簇数量设置为 k = 5。 整个实验随机产生 5 个不同的人工生成数据 集,针对每个数据集,分别执行 MC⁃K⁃means、 PK⁃ Means_MR、PKMeans_MT 以及 K⁃means 算法各 10 次,各自共运行 50 次,最后以聚类时间的平均值作 为算法聚类效率的评价。 实验结果如图 2、3 所示。 该数据集较为规整,算法运行收敛较快。 从实 验结果可以看出:针对服务器领域的 Xeon E5⁃2609, 虽然主频较低,但依靠较大的 L3 缓存以及四通道 的内存控制器,使得各算法取得了较高的执行效率。 K⁃means 算法在该平台环境下执行消耗了 25.28 s, PKMeans_MR 消耗了 10.01 s,PKMeans_MT 消耗了 8.15 s,MC⁃K⁃means 则需要 7.02 s。 而在 i3⁃3240 所 在平台环境下,K⁃means 算法消耗了 28. 24 s,PK⁃ Means_MR 消耗了 11. 47 s, PKMeans _MT 消耗了 9.35 s,MC⁃K⁃means 在该平台则需要 9.02 s。 从并 行化改造后各算法的执行结果来看,在 Xeon E5⁃ 2609 所在平台,算法获得了更高的加速比。 这主要 是由于 Xeon E5⁃2609 是四核四线程的,拥有真实的 四核心,可以更好地并行完成各并行化算法划分的 多任务聚类工作。 而 i3⁃3240 是双核心的,依靠超 线程技术实现的四线程并行,但是 CPU 的双物理核 心需要频繁的进行线程上下文的切换,消耗了一部 分的运行时间,获得了较低的加速比。 其中,MC⁃Kmeans 算法在读取数据集、判断每 个数据点的所属类别、计算簇中心以及计算准则函 数 E 这 4 个阶段均进行了并行化改进。 且在这 4 个 阶段中,每个数据点的任务量是相当的,因此 MC⁃K⁃ means 算法所采取的等分数据集的方法可以取得较 好的负载均衡性,算法取得了对比算法中最高的加 速率。 PKMeans_MT 算法取得了较低的加速率。 分析 算法可知,该算法仅在读取数据集以及迭代计算每 个数据点的归属时利用 parfor 函数进行了并行化。 对新分类中心点的计算及准则函数的计算均没有并 行化,且算法需要依托 MATLAB 平台,故取得了较 低的加速率。 PKMeans_MR 算法在对比算法中取得了最低的 加速率。 分析算法可知,PKMeans_MR 算法改进原 K⁃means 算法,使其以 MapReduce 方式运行,节点之 间在迭代时需要多次通信、多次同步,且算法需适应 MapReduce 固有模式,降低了算法的运行效率,因此 取得了最低的加速率。 但对比原 K⁃means 算法仍提 高了一倍多的运行效率。 可以看出,对 K⁃means 进行并行化改进,适应了 多核 CPU 的发展趋势,可以极大程度提高算法的运 行效率,满足处理大规模数据集的需要。 图 2 运行时间对比 Fig. 2 Comparison of run time 图 3 加速率对比 Fig. 3 Comparison of speedup rate 逐步增大生成数据集的规模,生成的人工数据 集为 100 维,分别包含 180 000 个数据点,360 000 个数据点,540 000 个数据点,720 000 个数据点, 900 000个数据点。 在 Intel Xeon E5⁃2609 平台测试 每个算法的加速率。 实验每次随机产生 2 个相同大 第 4 期 申彦,等:CMP 上基于数据集划分的 K⁃means 多核优化算法 ·611·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有