当前位置: 首页 > 专利查询>浙江大学专利>正文

一种数据处理方法及其装置制造方法及图纸

技术编号:26170233 阅读:28 留言:0更新日期:2020-10-31 13:36
本申请公开了一种数据处理方法及其装置。所述方法包括:向多个线程分别分配键值对(key‑value);多个线程中的主线程利用分配的主key‑value中的主键(key)确定在第一哈希表中的哈希桶;利用所述多个线程并行确定哈希桶上是否具有空闲的空闲位置;在具有空闲位置的情况下,将与主key对应的主value插入在所述空闲位置上。根据本申请,可实现哈希算法的并行处理,从而大幅度提高数据处理速度。

【技术实现步骤摘要】
一种数据处理方法及其装置
本申请涉及计算机
,尤其涉及一种数据处理方法及其装置。
技术介绍
近年来,信息技术的迅猛发展和普及应用所带来的数据爆炸性增长,对现有的数据处理技术提出了新的挑战。大数据的规模之大,使得现有的串行计算方法难以在可接受的时间内快速完成其处理和计算。为了提高处理效率,需要利用高性能计算技术,GPU由于其强大的并行计算能力、高吞吐率以及高性价比,已经成为高性能计算领域的主流加速器。但是,如何利用GPU的线程来执行数据处理,特别是对于串行算法,是本领域技术人员需要持续研究的方向。哈希表是数据库中常见的数据结构,它是可根据键值对(keyvalue)直接进行访问的数据结构,简单来说,它利用哈希算法确定在哈希表中与key对应的位置。由此看来,如果能将哈希算法转换为并行操作,则会大幅度地提高数据处理速度,但是如何在GPU上实现哈希算法的并行操作是本领域尚未解决的技术难题。
技术实现思路
本申请的主要目的在于提供一种数据处理方法及其装置,旨在至少解决以上提到哈希算法并行操作的技术问题。本申请实施例本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n向多个线程分别分配键值对(key-value);/n多个线程中的主线程利用分配的主key-value中的主键(key)确定在第一哈希表中的哈希桶;/n利用所述多个线程并行确定哈希桶上是否具有空闲的空闲位置;/n在具有空闲位置的情况下,将与主key对应的主value插入在所述空闲位置上。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
向多个线程分别分配键值对(key-value);
多个线程中的主线程利用分配的主key-value中的主键(key)确定在第一哈希表中的哈希桶;
利用所述多个线程并行确定哈希桶上是否具有空闲的空闲位置;
在具有空闲位置的情况下,将与主key对应的主value插入在所述空闲位置上。


2.如权利要求1所述的方法,其特征在于,在向多个线程分别分配key-value前还包括:
接收将被分配给所述多个线程的key-value群组。


3.如权利要求1所述的方法,其特征在于,所述哈希表中的每个哈希桶具有与所述多个线程的数量等同的位置。


4.如权利要求1所述的方法,其特征在于,多个线程中的主线程利用分配的主key-value中的主key确定在第一哈希表中的哈希桶包括:
从所述多个线程中确定主线程;
由所述主线程利用与第一哈希表对应的哈希算法确定在第一哈希表中与主key对应的哈希桶。


5.如权利要求4所述的方法,其特征在于,从所述多个线程中确定主线程包括:
所述多个线程对共享内存变量进行写入操作;
成功执行写入操作的线程被确定为主线程。


6.如权利要求1所述的方法,其特征在于,在向多个线程分别分配key-value前还包括:
将所述多个线程中的每一个线程的运行状态设置为活跃状态,其中,所述活跃状态是当前线程的key-value尚未处理完成的状态。


7.如权利要求6所述的方法,其特征在于,在将与主key对应的主value插入在所述空闲位置上后还包括:
将所述主线程的运行状态从活跃状态替换为协助状态,其中,协助状态是当前线程的key-value已处理完成的状态。


8.如权利要求7所述的方法,其特征在于,在将所述主线程的运行状态从活跃状态替换为协助状态后包括:
从运行状态为活跃状态的线程中重新确定新主线程。


9.如权利要求1所述的方法,其特征在于,在将与主key对应的主value插入在所述空闲位置上后包括:
从所述多个线程中除主线程之外的其它线程中重新确定新主线程。


10.如权利要求8或9所述的方法,其特征在于,在重新确定新主线程后包括:
利用分配到新主线程的新key-value中的新key确定在第一哈希表中的哈希桶;
利用所述多个线程并行确定哈希桶上是否具有空闲的空闲位置;
若具有空闲位置,将与所述新key对应的新value插入在所述空闲位置上。


11.如权利要求1所述的方法,其特征在于,还包括:
在具有空闲位置的情况下,判定是否能够将确定的哈希桶成功锁住;
在锁成功的情况下,将与主key对应的主value插入在所述空闲位置上。


12.如权利要求11所述的方法,其特征在于,还包括:
在锁失败的情况下,从所述多个线程中重新确定新主线程。


13.如权利要求11所述的方法,其特征在于,还包括:
在没有空闲位置的情况下,在所述哈希桶上确定与主key对应的杜鹃位置;
在杜鹃位置上存储的杜鹃key-value取出的同时,将与主key对应的主value插入在所述位置上。


14.如权利要求13所述的方法,其特征在于,在杜鹃位置上存储的杜鹃key-value取出的同时将与主key对应的主value插入在所述位置上后包括:
将杜鹃key-value分配到主线程;
主线程利用杜鹃key确定在第一哈希表中的哈希桶;
利用所述多个线程并行确定哈希桶上是否具有空闲的空闲位置;
在具有空闲位...

【专利技术属性】
技术研发人员:吕政沈国权金天波谢小龙余明冈陈人刘悦张景李羽晨
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

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

1