[发明专利]一种基于OpenCL的红黑树加速方法有效

专利信息
申请号: 201410266098.5 申请日: 2014-06-16
公开(公告)号: CN104036141B 公开(公告)日: 2017-02-15
发明(设计)人: 余小清;熊玮;万旺根;杨超;丁玉朴;段石石 申请(专利权)人: 上海大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 上海上大专利事务所(普通合伙)31205 代理人: 何文欣
地址: 200444*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明是一种基于OpenCL的红黑树加速算法。其方法是利用建立红黑树过程中众多运算可以并行化处理的特点,运用OpenCL异构平台,实现了在大数据的情况下快速建立红黑树模型。其中使用GPU加速的思路是将待操作数据分为多个数据块,利用GPU多个核心同时进行数据插入操作。在同步完各个GPU的运算后,最后做红黑树的合并操作,完成整个红黑树的建立。本发明的特点是,大数据情况建树时间极短,可实现快速的红黑树建立。
搜索关键词: 一种 基于 opencl 红黑树 加速 方法
【主权项】:
一种基于OpenCL的红黑树加速方法,其实现的具体步骤如下:步骤1:CPU数据输入,GPU设备初始化:寻找支持OpenCL的硬件设备、创建程序执行所需的内存对象、根据设备支持核心数分配线程操作;步骤2:数据分块:根据GPU上分配好的线程将原有海量数据进行分块,硬件支持线程数目为n,数据量为m,则每个线程单独分配数据量为m/n;步骤3:将分块数据分配给每个线程,并进行如下操作:1)将待插入的数据值直接插入树尾;2)将表示此数据的节点颜色属性标记为红色;3)调整树的颜色性质,分为以下三种情况:a)若当前节点的“叔父”节点是红色:在这种情况下,将父、叔节点都标记为黑色,再将子树根节点着为红色,那么子树的黑高度没有发生改变,而且红黑性质得到了调整;此时,再将当前节点指向子树的根节点,向上递归恢复红黑特性;其中结点E直系上层结点C为其父节点,与结点C父节点同一层节点A,B,D均为其叔父节点;b)若当前节点的“叔父”节点是黑色的,当前节点是父节点的左子节点:则将当前节点的父节点与祖节点,进行一次右旋,并把父节点着黑色,原来的祖节点着红色;这些子树的红黑特性得到了恢复,而且子树的黑高度没有变化;另外,由于子树根节点已经是黑色了,这个节点不会出现父子同为红色的问题了,所以不必再向上递归了,此时整个树的红黑特性都已经是正确的了;c)若当前节点的“叔父”节点是黑色的,当前节点是父节点的右子节点:则将当前节点本身与其父节点进行一次左旋,让当前节点指向原来的父节点,就可以到上面情况b),再根据情况b)的解决方式进行操作;4)对调整完毕后的红黑树进行数据查找操作:从树的根节点开始进行查找,如果待查找数据小于当前节点,则向左子树继续进行查找;如果待查找数据大于当前节点,则向右子树继续进行查找;否则查找完成;如果在达到叶子节点时仍未返回结果,则认为此次查找失败;所述的叶子节点即为树中最底层的节点,不存在子节点,与节点E同层的节点均为叶子节点;步骤4:合并子树:在线程为每个子树完成颜色调整之后,将GPU计算结果传回CPU内存单元,然后在CPU端进行树的合并,在合并的过程中,合并树需要满足以下性质:a,根节点为黑色;b,每个叶节点均为黑色;c,每个红色节点的两个子节点都为黑色;d,从任一节点到其每个叶节点的所有路径都包含相同数目的黑色节点;步骤5:将分类合并后所建成的红黑树输出和存储。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201410266098.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top