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

基于SIMD指令的图数据库中集合求交方法和装置制造方法及图纸

技术编号:19593306 阅读:31 留言:0更新日期:2018-11-28 04:51
本申请属于数据库技术领域,具体涉及一种基于SIMD指令的图数据库中集合求交方法和装置。该方法通过将目标图中的每个图顶点的邻居顶点集合表示为一个对应的位图,然后将各位图划分为长度相等的数据域,为每个数据域设置一个对应的基址域,再利用SIMD指令对位图进行求交来获取目标图中图顶点的邻居顶点集合的求交结果,可以提高使用SIMD指令进行集合求交时的数据层级并行度,从而节省集合求交所用的时间;另外,通过字节检查方法过滤两个位图的基址域中不可能相等的基址域,再对两个位图的基址域中可能相等的基址域进行对齐比较,然后再获取相等的基址域对应的数据域的逻辑与操作结果,可以减少对两个集合的基址域进行比较的次数,节省了时间。

【技术实现步骤摘要】
基于SIMD指令的图数据库中集合求交方法和装置
本申请属于数据库
,具体涉及一种基于SIMD指令的图数据库中集合求交方法和装置。
技术介绍
目前,基于图的应用场景十分广泛,如社交网络、生物蛋白质网络、有机化学结构、道路网络和语义网等都可以用图的形式便捷地进行表示。现在已有许多图数据库系统或者图计算引擎针对这些应用来支持图数据的存储和查询。在实践过程中,作为图算法中原子性计算单元的集合求交操作在图数据库或图计算引擎中是非常普遍的一项基本操作。SIMD(Singleinstructionmultipledata)即单指令多数据流,允许一条指令能够同时对多个数据进行运算,能够提高数据层级的并行度,从而提高程序的运行效率。现有技术中,在利用SIMD指令进行数据处理时的数据层级并行度依赖于SIMD指令本身的数据位宽,使数据处理的加速比有限,无法满足用户对计算速度的要求。
技术实现思路
有鉴于此,本申请实施例提供了一种基于SIMD指令的图数据库中集合求交方法和装置。该方法能提高使用SIMD指令进行集合求交时的数据层级并行度,并且可以减少进行集合求交时所需的CPU周期数,从而加快集合求交的速度。本文档来自技高网...

【技术保护点】
1.一种基于SIMD指令的图数据库中集合求交方法,其特征在于,所述方法包括:将目标图中每个图顶点的邻居顶点集合表示为一个对应的位图,每个所述位图中的邻居顶点按第一顺序排列;将每个所述位图划分为长度相等的数据域,删掉全零的数据域,为每个非全零的数据域设置一个对应的基址域,将每个所述位图中的基址域按所述第一顺序存储为基址域集合,每个所述数据域的长度等于所述SIMD指令的操作数的位数,所述基址域表示对应的数据域在所述位图中的位置;对于所述目标图的每两个位图,从所述两个位图对应的基址域集合中分别从头开始连续提取数目与所述SIMD指令的并行度相同的基址域,并分别存储到第一SIMD寄存器和第二SIMD寄存...

【技术特征摘要】
1.一种基于SIMD指令的图数据库中集合求交方法,其特征在于,所述方法包括:将目标图中每个图顶点的邻居顶点集合表示为一个对应的位图,每个所述位图中的邻居顶点按第一顺序排列;将每个所述位图划分为长度相等的数据域,删掉全零的数据域,为每个非全零的数据域设置一个对应的基址域,将每个所述位图中的基址域按所述第一顺序存储为基址域集合,每个所述数据域的长度等于所述SIMD指令的操作数的位数,所述基址域表示对应的数据域在所述位图中的位置;对于所述目标图的每两个位图,从所述两个位图对应的基址域集合中分别从头开始连续提取数目与所述SIMD指令的并行度相同的基址域,并分别存储到第一SIMD寄存器和第二SIMD寄存器;通过字节检查过滤掉所述第一SIMD寄存器与所述第二SIMD寄存器中存储的没有对应相等基址域的基址域,将剩下的所述第一SIMD寄存器中的基址域和所述第二SIMD寄存器中的基址域按所述第一顺序位置对齐后进行比较;当所述对齐比较的基址域相等,且所述对齐比较的基址域所对应的数据域的逻辑与操作结果非全零时,将相等的所述对齐比较的基址域以及相等的所述对齐比较的基址域所对应的数据域的逻辑与操作结果分别存储至第三SIMD寄存器和第四SIMD寄存器;继续从所述两个位图对应的基址域集合此前未被提取过的基址域中获取存储至第三SIMD寄存器和第四SIMD寄存器中的基址域和对应的数据域的逻辑与操作结果,直至所述两个位图的基址域集合中不存在未经比较的基址域;将所述第三SIMD寄存器和所述第四SIMD寄存器中存储的基址域和数据域的逻辑与操作结果作为所述两个位图的求交结果。2.根据权利要求1所述的方法,其特征在于,所述通过字节检查过滤掉所述第一SIMD寄存器与所述第二SIMD寄存器中存储的没有对应相等基址域的基址域,将所述第一SIMD寄存器中的基址域和所述第二SIMD寄存器中剩余的基址域按所述第一顺序位置对齐后进行比较包括:将所述第一SIMD寄存器中的每个基址域的一个字节作为第一字节,将所述第二SIMD寄存器中的每个基址域的一个字节作为第二字节,所述第一字节与所述第二字节在各所在基址域中的位置相同;将每个所述第一字节分别复制成所述并行度个字节后按所述第一顺序排列并存储到第五SIMD寄存器,将每个所述第二字节按所述第一顺序排列后复制成所述并行度份并存储到第六SIMD寄存器;将所述第五SIMD寄存器中存储的字节和所述第六SIMD寄存器中存储的字节进行对齐比较,得到指示对应字节是否相等的比较结果;将本次得到的比较结果和前次得到的比较结果进行逻辑与操作,得到当前比较结果,若所述前次得到的比较结果不存在,则将所述本次得到的比较结果作为所述当前比较结果;若所述当前比较结果指示所述第五SIMD寄存器中有一个字节在所述第六SIMD寄存器中对应有两个以上相等的字节,则将所述第一SIMD寄存器中的每个基址域的另一字节作为所述第一字节,并将所述第二SIMD寄存器中的每个基址域的另一字节作为所述第二字节,返回再次得到所述当前比较结果;若所述当前比较结果指示所述第五SIMD寄存器中的任一个字节在所述第六SIMD寄存器中对应有零个或只有一个相等的字节,则过滤掉所述第一SIMD寄存器与所述第二SIMD寄存器中有零个相等字节的对应的基址域;将所述第一SIMD寄存器与所述第二SIMD寄存器中只有一个相等字节的对应的基址域按所述第一顺序位置对齐后进行比较。3.根据权利要求1所述的方法,其特征在于,所述当所述对齐比较的基址域相等,且所述对齐比较的基址域所对应的数据域的逻辑与操作结果非全零时,将相等的所述对齐比较的基址域以及相等的所述对齐比较的基址域所对应的数据域的逻辑与操作结果分别存储至第三SIMD寄存器和第四SIMD寄存器包括:当所述对齐比较的基址域相等时,输出第一结果;当所述对齐比较的基址域不相等时,输出第二结果;将得到的所有所述第一结果和所述第二结果按照所述第一顺序存储在第七SIMD寄存器中;将所述第七SIMD寄存器中存储的所述第一结果和所述第二结果对应的数据域对齐后进行逻辑与操作得到的逻辑与操作结果按照所述第一顺序存储在第八SIMD寄存器中;将与所述第一结果对应且与非全零的所述逻辑与操作结果对应的基址域和所述非全零的逻辑与操作结果分别存储至第三SIMD寄存器和第四SIMD寄存器的空闲位置。4.根据权利要求1所述的方法,其特征在于,所述继续从所述两个位图对应的基址域集合此前未被提取过的基址域中获取存储至第三SIMD寄存器和第四SIMD寄存器中的基址域和对应的数据域的逻辑与操作结果,直至所述两个位图的基址域集合中不存在未经比较的基址域包括:判断所述第一SIMD寄存器中最后一个基址域和所述第二SIMD寄存器中最后一个基址域的大小是否相等;若相等,则从所述两个位图对应的基址域集合中连续提取此前未被提取过的数目与所述SIMD指令的并行度相同的基址域分别存储到第一SIMD寄存器和第二SIMD寄存器,并再次获取存...

【专利技术属性】
技术研发人员:韩硕邹磊
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1