一种多GPU分布式并行的K-Means聚类方法技术

技术编号:35075877 阅读:18 留言:0更新日期:2022-09-28 11:41
本发明专利技术公开了一种多GPU分布式并行的K

【技术实现步骤摘要】
一种多GPU分布式并行的K

Means聚类方法


[0001]本专利技术涉及数据挖掘
,特别涉及一种基于Ring

Allreduce框架的多GPU分布式并行的K

Means聚类方法。

技术介绍

[0002]K

Means聚类算法是在数据挖掘等领域中最常用的聚类算法之一,该算法适合处理样本数量比较多的数据集。而使用并行计算的方法是较为常用的提高机器学习方法效率的方法,其主要原理是给运算方式相同并且相互独立的数据运算分配不同的运算资源,从而更好地提高处理器性能,提高算法效率。而并行计算的优化效率与计算处理的硬件性能以及并行策略相关,并行策略即是给予数据运算分配多少线程、块、网格等GPU资源策略,而多GPU的并行策略是能够处理更大数据量的并行计算方法。
[0003]目前应用于K

Means聚类算法的多GPU策略通常使用数据并行的传统策略,数据并行的分布式策略将聚类数据集划分为多个子集,然后将其分布到不同的GPU,每个GPU都单独运行K

Means聚类算法。K

Means聚类算法使用的数据并行策略能够有一定的计算效率优化,但是在工业软件等应用大型数据量的计算中,数据并行策略不一定能实现最优计算效率,会存在以下几个方面的问题:(1)随着GPU数量增加,计算成本增加。(2)随着计算数据量增大,计算成本增大。
[0004]江西理工大学廖列法等人提出基于Spark和ASPSO并行化K

means聚类算法[1]。通过分割函数粗略的划分数据集,并利用网络划分策略PCCV来计算数据网络相关系数再对数据网络进行划分,获取网络单元。采用SPFG策略对数据点进行局部区域覆盖,更新数据集中的样本点,获取局部聚类簇数。采用ASPSO策略计算自适应参数,获取局部簇质心。采用CRNN策略计算每个簇的簇半径,并根据簇的相似性函数进行相似性判断,结合Spark并行计算框架将相似度大的簇进行合并,然后再输出聚类结果,以提高聚类计算的效率。
[0005]由于基于Spark和ASPSO并行化的优化技术,仍属于数据并行类型的优化方法,数据并行策略对K

Means聚类算法不一定能达到最优的效率提升。使用该策略下的计算成本会随着数据量增大的应用而增加,因为随着计算环境的GPU数量增加而增加,GPU间数据通信成本会增加,进而使得整个算法计算成本会增加。

技术实现思路

[0006]本专利技术针对现有技术的缺陷,提供了一种多GPU分布式并行的K

Means聚类方法。
[0007]为了实现以上专利技术目的,本专利技术采取的技术方案如下:
[0008]一种多GPU分布式并行的K

Means聚类方法,包括以下步骤:
[0009]S1:根据遥感图像的预想聚类数量划分,即设定簇数k,选定k个初始簇中心Q={Q1

Qk},设定参与计算的k个GPU编号,即编号为GPU1到GPUk,把k个簇中心数据和整个数据集分别传递进k个数据集。
[0010]其中存在的第i(1<=i<=k)块GPU,1<=i<=k,该GPU则会从CPU端传递获得数据
集以及第i个编号的簇中心Qi,GPU把每个数据分配独立且不同线程或块并行运算资源。
[0011]S2:第i块GPU的第i个线程的数据与GPU上的第i号的簇中心计算其距离Distance(Qi,i)。
[0012]S3:GPU(i+1)计算簇中心Qi+1到第i+1线程数据的距离Distance(Qi+1,i+1)。
[0013]S4:从GPUi传递Distance(Qi,i)至GPU(i+1),与GPU(i+1)其中Distance(Qi+1,i+1)比较大小,较小的距离会记录在GPU(i+1)上。
[0014]S5:S2到S4的步骤针对第i位置的数据重复执行,直到所有GPU的同一位置的距离最小值记录Distance相同。
[0015]S6:S2到S5的步骤针对第i+k位置的数据重复执行,直至GPU上所有数据都找到最近的簇中心为止。
[0016]S7:GPU间遍历距离记录。
[0017]S8:对簇i内所有数据求均值,计算出新的簇中心并更新Qi。
[0018]S9:重复执行S1到S8,直至簇中心不再变化为止。最终得到以5个点为簇中心的簇,把数据集划分成5个类,结束。
[0019]作为优选,S2中采用计算的是欧几里得,计算如下:
[0020][0021]进一步地,S7具体为:GPUi遍历数据距离记录,查看是否存在离簇中心Qi更近的数据Distance(Qi,i+nk)(1<=i<=k)&&(n∈N),存在的话把该数据点i+nk点划入簇i。
[0022]与现有技术相比,本专利技术的优点在于:
[0023](1)可以降低在多GPU环境下的GPU间数据通信成本。
[0024](2)基于Ring

Allreduce框架实现,计算效率高,易于实现。
[0025](3)这最大限度地减少了计算资源争用的数量,显著降低了在多GPU环境下K

means算法计算成本,解决数据量大时K

means算法计算成本线性增加的问题。
附图说明
[0026]图1是本专利技术实施例Ring

Allreduce架构图;
[0027]图2是本专利技术实施例优化算法后GPU间数据流图;
[0028]图3是本专利技术实施例三维遥感图像数据示意图;
[0029]图4是本专利技术实施例聚类分析后的三位遥感图像聚类图;
[0030]图5是本专利技术实施例K

Means聚类方法流程图。
具体实施方式
[0031]为使本专利技术的目的、技术方案及优点更加清楚明白,以下根据附图并列举实施例,对本专利技术做进一步详细说明。
[0032]K

Means聚类算法
[0033]K

mean算法又名k均值算法,K

means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。其算法思想大致为,对于给定的样本集,K

means按照样本之间的距离大小,
将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。具体步骤如下:
[0034]1选择K值,K的选择通常按照需求决定。
[0035]2样本中选择随机选择K个样本作为初始的聚类中心。
[0036]3对与数据样本与各个聚类中心本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多GPU分布式并行的K

Means聚类方法,其特征在于,包括以下步骤:S1:根据遥感图像的预想聚类数量划分,即设定簇数k,选定k个初始簇中心Q={Q1

Qk},设定参与计算的k个GPU编号,即编号为GPU1到GPUk,把k个簇中心数据和整个数据集分别传递进k个数据集;其中存在的第i(1<=i<=k)块GPU,1<=i<=k,该GPU则会从CPU端传递获得数据集以及第i个编号的簇中心Qi,GPU把每个数据分配独立且不同线程或块并行运算资源;S2:第i块GPU的第i个线程的数据与GPU上的第i号的簇中心计算其距离Distance(Qi,i);S3:GPU(i+1)计算簇中心Qi+1到第i+1线程数据的距离Distance(Qi+1,i+1);S4:从GPUi传递Distance(Qi,i)至GPU(i+1),与GPU(i+1)其中Distance(Qi+1,i+1)比较大小,较小...

【专利技术属性】
技术研发人员:王卓薇林浩然程良伦
申请(专利权)人:广东能哥知识科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1