[发明专利]高速并行数据查找方法有效
申请号: | 201710320330.2 | 申请日: | 2017-05-09 |
公开(公告)号: | CN108874799B | 公开(公告)日: | 2021-11-30 |
发明(设计)人: | 丛杨;田冬英 | 申请(专利权)人: | 中国科学院沈阳自动化研究所 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 沈阳科苑专利商标代理有限公司 21002 | 代理人: | 王倩 |
地址: | 110016 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速 并行 数据 查找 方法 | ||
本发明涉及一种高速并行数据查找方法。首先为充分发挥硬件设备的并行处理能力,构建基于brute force的并行查询器;离线阶段将train集(查询数据集)应用KD树进行划分,由leaf节点构建label集;在线阶段对query集分批先送入上层并行查询器查询label集,结果缓存到leaf_buffer,随后对已满leaf_buffer使用下层并行查询器。利用这种分层查找结构,实现了对大量数据的高效并行查找,可以广泛应用于数据挖掘领域。
技术领域
本发明涉及一种高速并行数据查找方法,属于数据挖掘领域。
背景技术
为了加快对数据的在线查找速度,目前已有方法包括局部敏感哈希、各种树、随机森林方法等。这些方法在离线阶段对查询数据集(train集)建立能够表达数据在数据空间分布特点的模型,在线阶段利用模型提供的已知信息加快查找速度,这样的模型可能是数学表达式、树形结构或网状结构。KD树方法通过建立树形的连接关系大幅减少了在线查询时数据距离的计算次数,从而提高了速度,在基于CPU的近邻查找应用中被广泛使用。
今年来,GPU和FPGA等并行运算设备得到了广泛运用和飞速发展。基于GPU实现的brute force数据查找相对CPU实现有显著效果提升,数据距离计算次数多是该方法速度提升的主要瓶颈。一些人探索将GPU并行能力与KD树的优势结合起来,然而GPU设备的应用强调大量数据处理步骤的高度的一致性,KD树则强调对不同的数据采用不同的处理,这一本质分歧最终导致传统的KD树方法的并行化实现在查询阶段出现分支,导致执行效率低、速度慢。
发明内容
针对上述技术不足,本发明提供一种高速并行数据查找方法。该方法可以充分利用GPU、FPGA等硬件设备的并行运算能力并利用KD树减少数据距离计算次数,从而实现速度的提高。
本发明解决其技术问题所采用的技术方案是:高速并行数据查找方法,包括以下步骤:
离线阶段:分割train集,并创建label集;
在线阶段:通过多层并行查询器查label集、train集的子集,实现数据查找。
所述离线阶段包括将train集划分成多个节点,由每个节点内的数据子集train_leaf生成label集。
所述将train集划分成多个节点具体为基于KD树将train集划分成多个leaf节点。
所述并行查询器为基于brute force方法的并行查询器。
所述并行查询器的结果包括RNN和/或KNN的一个或多个。
所述在线阶段:先用上层的并行查询器查label集,结果缓存到节点缓存leaf_buffer,对已满的leaf_buffer采用下层的并行查询器查train集的子集。
所述在线阶段包括以下步骤:
步骤(1):首先将query集分批,每批处理q_num个query;
步骤(2):为每个label分配一个节点缓存leaf_buffer,大小为b_num=q_num+b_thres,b_thres为设定值,用于存放query的索引;
步骤(3):将该批query与label集应用上层的并行查询器查找结果,并将结果推送到leaf_buffer内;
步骤(4):查询所有leaf_buffer;如果leaf_buffer内个数超过_thres,则执行步骤(5),否则执行步骤(3);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院沈阳自动化研究所,未经中国科学院沈阳自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710320330.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种大数据排序方法和系统
- 下一篇:网页浏览方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置