CN113268333B - 一种基于多核计算的层次聚类算法优化方法 - Google Patents
一种基于多核计算的层次聚类算法优化方法 Download PDFInfo
- Publication number
- CN113268333B CN113268333B CN202110685192.4A CN202110685192A CN113268333B CN 113268333 B CN113268333 B CN 113268333B CN 202110685192 A CN202110685192 A CN 202110685192A CN 113268333 B CN113268333 B CN 113268333B
- Authority
- CN
- China
- Prior art keywords
- block
- index
- clustering algorithm
- hierarchical clustering
- array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000005457 optimization Methods 0.000 title claims abstract description 10
- 239000011159 matrix material Substances 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多核计算的层次聚类算法优化方法,涉及并行化技术领域,包括S1准备压缩后的距离矩阵存储空间,层次聚类算法的距离矩阵存储空间压缩处理为数组da;S2数组da进行分块编号;S3构建线程池及任务队列;S4块block放入任务队列;S5判断任务队列中是否有任务块block,有进S6,没有进S8;S6选取一个块block,计算该块block在原距离矩阵中对应的索引区间;S7根据索引区间指示区域,计算该区域内所有样本点之间的距离,将距离写回数组da,返回S5;S8借助索引映射关系,样本数据两两合并,合并后类别数量与待处理样本数据一致时,结束聚类;缩短了层次聚类算法整体的运算时间,降低计算资源占用,提高了运行效率,且不影响输入输出数据的格式和大小。
Description
技术领域
本发明涉及并行化技术领域,尤其涉及一种基于多核计算的层次聚类算法优化方法。
背景技术
层次聚类算法是目前在各个应用领域都广泛使用的一种无监督机器学习算法,它将相似的对象归到同一个簇中,聚类过程不依赖于预先定义的类或带类标记的训练实例,由聚类过程自动确定标记。
然而通过层次聚类算法分析大量高维度数据时,难以克服分析速度慢、计算资源占用高等问题。在一些需要快速获得分析结果的情况下,就需要分析算法具有较快的分析速度。显然现有的层次聚类算法难以满足要求。
发明内容
本发明的目的就在于为了解决上述问题设计了一种基于多核计算的层次聚类算法优化方法。
本发明通过以下技术方案来实现上述目的:
一种基于多核计算的层次聚类算法优化方法,包括以下步骤:
S1、为待处理样本数据准备压缩后的距离矩阵存储空间,将层次聚类算法的距离矩阵存储空间压缩处理为数组da;
S2、对数组da按照固定块大小block_size进行分块,并对块按先后顺序从0开始编号;
S3、构建线程池及其对应的任务队列;
S4、将携带编号block_id和当前块大小bs的块block放入任务队列;
S5、判断任务队列中是否还有任务块block,若有,则进入S6;若没有,则进入S8;
S6、选取一个块block,并根据块block携带的block_id和块大小bs,利用索引映射关系计算出该块block在原距离矩阵中对应的索引区间;
S7、根据索引区间指示区域,计算该区域内所有样本点之间的距离,将获得的距离写回到数组da指定索引位置,返回S5;
S8、借助索引映射关系,运行NN-CHAIN算法对距离最近的样本数据进行两两合并,直到合并后的类别数量与待处理样本数据的类别数一致时,结束聚类。
本发明的有益效果在于:采用本方法缩短了层次聚类算法整体的运算时间,降低计算资源占用,提高了运行效率,且不影响输入输出数据的格式和大小。
附图说明
图1是本发明一种基于多核计算的层次聚类算法优化方法的原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要理解的是,术语“上”、“下”、“内”、“外”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,“设置”、“连接”等术语应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
下面结合附图,对本发明的具体实施方式进行详细说明。
一种基于多核计算的层次聚类算法优化方法,包括以下步骤:
S1、为待处理样本数据准备压缩后的距离矩阵存储空间,将层次聚类算法的距离矩阵存储空间压缩处理为数组da,其中待处理样本数据的样本数量为n,原始距离矩阵大小为n*n,压缩处理后的数组da大小为n*(n-1)/2。
S2、对数组da按照固定块大小block_size进行分块,并对块按先后顺序从0开始编号。
S3、构建线程池及其对应的任务队列,线程池的线程数量小于等于计算机的CPU核心数,块大小block_size设置为2097152。
S4、将携带编号block_id和当前块大小bs的块block放入任务队列。
S5、判断任务队列中是否还有任务块block,若有,则进入S6;若没有,则进入S8。
S6、选取一个块block,并根据块block携带的block_id和块大小bs,确定该块block对应数组da的索引范围为[block_id*block_size,block_id*block_size+bs-1],再利用索引映射关系计算出该块block在原距离矩阵中对应的索引区间,其中行索引为i,列索引为j,原始距离矩阵的索引到数组da的索引k的映射关系为其中记函数则数组da的索引k到原始距离矩阵的索引映射关系:当k=fk(fi1(k),n-1)时,则i=fi1(k),j=n-1;否则i=fi1(k)+1,j=k-fk(i,i+1)+i+1。
S7、根据索引区间指示区域,采用距离计算函数计算该区域内所有样本点之间的距离,将获得的距离写回到数组da指定索引位置,返回S5,在距离计算函数中:首先将索引区间内需要处理的数据分批次从内存加载到ymm寄存器,再采用AVX指令计算每批次数据中样本点之间的距离。
S8、借助索引映射关系,运行NN-CHAIN算法对距离最近的样本数据进行两两合并,直到合并后的类别数量与待处理样本数据的类别数一致时,结束聚类,
例如:待处理样本数据的类别数量要求为K,根据成此书进行数据样本间的两两合并,直到最终类别数量为K时,结束聚类。
采用上述方法解决了层次聚类算法运行速度慢问题,提升了该算法的实时数据处理能力,缩短了层次聚类算法整体的运算时间,降低计算资源占用,提高了运行效率,且不影响输入输出数据的格式和大小。
本发明的技术方案不限于上述具体实施例的限制,凡是根据本发明的技术方案做出的技术变形,均落入本发明的保护范围之内。
Claims (7)
1.一种基于多核计算的层次聚类算法优化方法,其特征在于,包括以下步骤:
S1、为待处理样本数据准备压缩后的距离矩阵存储空间,将层次聚类算法的距离矩阵存储空间压缩处理为数组da;
S2、对数组da按照固定块大小block_size进行分块,并对块按先后顺序从0开始编号;
S3、构建线程池及其对应的任务队列;
S4、将携带编号block_id和当前块大小bs的块block放入任务队列;
S5、判断任务队列中是否还有任务块block,若有,则进入S6;若没有,则进入S8;
S6、选取一个块block,并根据块block携带的block_id和块大小bs,利用索引映射关系计算出该块block在原距离矩阵中对应的索引区间;
S7、根据索引区间指示区域,计算该区域内所有样本点之间的距离,将获得的距离写回到数组da指定索引位置,返回S5;
S8、借助索引映射关系,运行NN-CHAIN算法对距离最近的样本数据进行两两合并,直到合并后的类别数量与待处理样本数据的类别数一致时,结束聚类。
2.根据权利要求1所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S3中,线程池的线程数量小于等于计算机的CPU核心数,块大小block_size设置为2097152。
3.根据权利要求1所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S6中,根据块block携带的block_id和块大小bs,确定该块block对应数组da的索引范围,再使用索引映射关系,计算出块block在原距离矩阵中对应的索引区间,其中行索引为i,列索引为j。
4.根据权利要求3所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S6中,索引范围为[block_id*block_size,block_id*block_size+bs-1]。
5.根据权利要求3所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S1中,待处理样本数据的样本数量为n,原始距离矩阵大小为n*n,压缩处理后的数组da大小为n*(n-1)/2。
6.根据权利要求3所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S6中,原始距离矩阵的索引到数组da的索引k的映射关系为其中记函数则数组da的索引k到原始距离矩阵的索引映射关系:当k=fk(fi1(k),n-1)时,则i=fi1(k),j=n-1;否则i=fi1(k)+1,j=k-fk(i,i+1)+i+1。
7.根据权利要求1-6中任一项所述的一种基于多核计算的层次聚类算法优化方法,其特征在于,在S7中,采用距离计算函数计算,在距离计算函数中包括:将索引区间内需要处理的数据分批次从内存加载到ymm寄存器,采用AVX指令计算每批次数据中样本点之间的距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685192.4A CN113268333B (zh) | 2021-06-21 | 2021-06-21 | 一种基于多核计算的层次聚类算法优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685192.4A CN113268333B (zh) | 2021-06-21 | 2021-06-21 | 一种基于多核计算的层次聚类算法优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268333A CN113268333A (zh) | 2021-08-17 |
CN113268333B true CN113268333B (zh) | 2024-03-19 |
Family
ID=77235637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110685192.4A Active CN113268333B (zh) | 2021-06-21 | 2021-06-21 | 一种基于多核计算的层次聚类算法优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268333B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115188421A (zh) * | 2022-09-08 | 2022-10-14 | 杭州联川生物技术股份有限公司 | 基于高通量测序的基因聚类数据预处理方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375805A (zh) * | 2014-11-17 | 2015-02-25 | 天津大学 | 采用多核处理器仿真可重构处理器并行计算过程的方法 |
CN106484818A (zh) * | 2016-09-26 | 2017-03-08 | 华南理工大学 | 一种基于Hadoop和HBase的层次聚类方法 |
CN108052535A (zh) * | 2017-11-15 | 2018-05-18 | 国家计算机网络与信息安全管理中心 | 基于多处理器平台的视觉特征并行快速匹配方法和*** |
CN108280176A (zh) * | 2018-01-22 | 2018-07-13 | 成都博睿德科技有限公司 | 基于MapReduce的数据挖掘优化方法 |
CN108763590A (zh) * | 2018-06-20 | 2018-11-06 | 合肥工业大学 | 一种基于双变加权核fcm算法的数据聚类方法 |
CN112988693A (zh) * | 2021-03-26 | 2021-06-18 | 武汉大学 | 一种异常数据检测中谱聚类算法并行化方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9146988B2 (en) * | 2012-06-05 | 2015-09-29 | King Fahd University Of Petroleum And Minerals | Hierarchal clustering method for large XML data |
US10013477B2 (en) * | 2012-11-19 | 2018-07-03 | The Penn State Research Foundation | Accelerated discrete distribution clustering under wasserstein distance |
US10990884B1 (en) * | 2019-10-22 | 2021-04-27 | Kpn Innovations, Llc | Methods and systems for identifying compatible meal options |
-
2021
- 2021-06-21 CN CN202110685192.4A patent/CN113268333B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375805A (zh) * | 2014-11-17 | 2015-02-25 | 天津大学 | 采用多核处理器仿真可重构处理器并行计算过程的方法 |
CN106484818A (zh) * | 2016-09-26 | 2017-03-08 | 华南理工大学 | 一种基于Hadoop和HBase的层次聚类方法 |
CN108052535A (zh) * | 2017-11-15 | 2018-05-18 | 国家计算机网络与信息安全管理中心 | 基于多处理器平台的视觉特征并行快速匹配方法和*** |
CN108280176A (zh) * | 2018-01-22 | 2018-07-13 | 成都博睿德科技有限公司 | 基于MapReduce的数据挖掘优化方法 |
CN108763590A (zh) * | 2018-06-20 | 2018-11-06 | 合肥工业大学 | 一种基于双变加权核fcm算法的数据聚类方法 |
CN112988693A (zh) * | 2021-03-26 | 2021-06-18 | 武汉大学 | 一种异常数据检测中谱聚类算法并行化方法及*** |
Non-Patent Citations (1)
Title |
---|
SCoS:基于Spark的并行谱聚类算法设计与实现;朱光辉;黄圣彬;袁春风;黄宜华;;计算机学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113268333A (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuhn et al. | Package ‘caret’ | |
US11915104B2 (en) | Normalizing text attributes for machine learning models | |
CN111428733B (zh) | 基于语义特征空间转换的零样本目标检测方法及*** | |
CN113268333B (zh) | 一种基于多核计算的层次聚类算法优化方法 | |
CN110728313A (zh) | 一种用于意图分类识别的分类模型训练方法及装置 | |
CN111178196B (zh) | 一种细胞分类的方法、装置及设备 | |
CN116307195A (zh) | 一种基于深度学习的带钢精轧宽展预测方法和*** | |
CN105637482A (zh) | 基于gpu的数据流处理方法和装置 | |
Williams et al. | Package ‘caret’ | |
CN115098679A (zh) | 文本分类标注样本的异常检测方法、装置、设备及介质 | |
CN105654138A (zh) | 一种多维数据的正交投影降维分类方法及*** | |
CN116738214B (zh) | 一种基于高阶张量的数据降维预处理方法 | |
CN113283513A (zh) | 基于目标互换和度量学习的小样本目标检测方法及*** | |
US11048730B2 (en) | Data clustering apparatus and method based on range query using CF tree | |
CN117076862A (zh) | 一种基于属性图的电力物联网网络异常检测方法及*** | |
CN111553442A (zh) | 一种分类器链标签序列的优化方法及*** | |
CN108021935B (zh) | 一种基于大数据技术的维度约简方法及装置 | |
CN115687352A (zh) | 一种存储的方法及装置 | |
CN114328486A (zh) | 基于模型的数据质量核查方法及装置 | |
CN111429232A (zh) | 产品推荐方法、装置和电子设备及计算机可读存储介质 | |
Gaugel et al. | Data-driven multi-objective optimization of hydraulic pump test cycles via wrapper feature selection | |
CN111738289B (zh) | 计算机视觉cv模型训练方法、装置、电子设备和存储介质 | |
CN114443628B (zh) | 一种基于聚类的金融缺失数据处理方法 | |
CN110851505B (zh) | 一种数据处理框架、方法及*** | |
US20240152578A1 (en) | Systems, methods, and non-transitory computer-readable storage devices for detecting and analyzing data clones in tabular datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 2119, 21st floor, unit 1, building 7, 1700 Tianfu Avenue North Section, high tech Zone, Chengdu, Sichuan 610000 Applicant after: Chengdu Fengwei Technology Co.,Ltd. Address before: No. 2121, 21st floor, unit 1, building 7, No. 1700, North Tianfu Avenue, high tech Zone, Chengdu, Sichuan 610041 Applicant before: CHENGDU SHENSI SCIENCE & TECHNOLOGY Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |