Processing math: 35%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于FPGA的排序加速方法综述

孔浩, 卢文岩, 陈岩, 鄢贵海, 李晓维

孔浩, 卢文岩, 陈岩, 鄢贵海, 李晓维. 基于FPGA的排序加速方法综述[J]. 计算机研究与发展, 2024, 61(3): 780-798. DOI: 10.7544/issn1000-1239.202220789
引用本文: 孔浩, 卢文岩, 陈岩, 鄢贵海, 李晓维. 基于FPGA的排序加速方法综述[J]. 计算机研究与发展, 2024, 61(3): 780-798. DOI: 10.7544/issn1000-1239.202220789
Kong Hao, Lu Wenyan, Chen Yan, Yan Guihai, Li Xiaowei. Survey of Sort Acceleration Methods on FPGA[J]. Journal of Computer Research and Development, 2024, 61(3): 780-798. DOI: 10.7544/issn1000-1239.202220789
Citation: Kong Hao, Lu Wenyan, Chen Yan, Yan Guihai, Li Xiaowei. Survey of Sort Acceleration Methods on FPGA[J]. Journal of Computer Research and Development, 2024, 61(3): 780-798. DOI: 10.7544/issn1000-1239.202220789
孔浩, 卢文岩, 陈岩, 鄢贵海, 李晓维. 基于FPGA的排序加速方法综述[J]. 计算机研究与发展, 2024, 61(3): 780-798. CSTR: 32373.14.issn1000-1239.202220789
引用本文: 孔浩, 卢文岩, 陈岩, 鄢贵海, 李晓维. 基于FPGA的排序加速方法综述[J]. 计算机研究与发展, 2024, 61(3): 780-798. CSTR: 32373.14.issn1000-1239.202220789
Kong Hao, Lu Wenyan, Chen Yan, Yan Guihai, Li Xiaowei. Survey of Sort Acceleration Methods on FPGA[J]. Journal of Computer Research and Development, 2024, 61(3): 780-798. CSTR: 32373.14.issn1000-1239.202220789
Citation: Kong Hao, Lu Wenyan, Chen Yan, Yan Guihai, Li Xiaowei. Survey of Sort Acceleration Methods on FPGA[J]. Journal of Computer Research and Development, 2024, 61(3): 780-798. CSTR: 32373.14.issn1000-1239.202220789

基于FPGA的排序加速方法综述

基金项目: 国家自然科学基金项目(62002340,61872336,62090020);中国科学院战略性先导科技专项(XDB44030100);中国科学院青年创新促进会(Y201923)
详细信息
    作者简介:

    孔浩: 1995年生. 博士研究生. CCF学生会员. 主要研究方向为数据库加速器、专用计算机体系结构

    卢文岩: 1990年生. 博士,副研究员. CCF会员. 主要研究方向为深度学习加速器、数据库加速器、专用计算机体系结构和异构计算

    陈岩: 1985年生. 硕士. 主要研究方向为大数据、数据库、异构计算

    鄢贵海: 1982年生. 博士,研究员,博士生导师. CCF会员. 主要研究方向为计算机体系结构、专用加速器设计、智能芯片体系结构

    李晓维: 1964年生. 博士,研究员,博士生导师. CCF会士. 主要研究方向为超大规模集成电路设计、可靠性设计、容错计算

    通讯作者:

    鄢贵海(yan@ict.ac.cn)

  • 中图分类号: TP391

Survey of Sort Acceleration Methods on FPGA

Funds: This work was supported by the National Natural Science Foundation of China (62002340, 61872336, 62090020), the Strategic Priority Research Program of Chinese Academy of Sciences (XDB44030100), and the Youth Innovation Promotion Association CAS (Y201923).
More Information
    Author Bio:

    Kong Hao: born in 1995. PhD candidate. Student member of CCF. His main research interests include database accelerator and domain-specific computer architecture

    Lu Wenyan: born in 1990. PhD, associate professor. Member of CCF. His main research interests include deep learning accelerator, database accelerator, and domain-specific computer architecture and heterogeneous computing

    Chen Yan: born in 1985. Master. His main research interests include big data, database, and heterogeneous computing

    Yan Guihai: born in 1982. PhD, professor, PhD supervisor. Member of CCF. His main research interests include computer architecture, domain-specific accelerator design, and intelligent chip architecture

    Li Xiaowei: born in 1964. PhD, professor, PhD supervisor. Fellow of CCF. His main research interests include VLSI design, reliability design, and fault-tolerant computing

  • 摘要:

    对于FPGA排序加速来说,各类性能指标的选取与优化至关重要,如延时、吞吐率、功耗、硬件利用率和带宽利用率等. 梳理了性能驱动下的排序加速发展脉络,在数据规模、数据类型、算法支持、软硬件协同和新型硬件等方面均取得了进展;分析了在设计、实现、测试等各不同阶段所面临的问题及优化策略,其中归并排序因其自身优良的硬件并行性、可扩展性和控制逻辑简单等特性成为主流. 排序加速是与特定应用场景深度绑定的架构设计,进一步从数据库系统加速角度出发,针对数据库排序所面临的资源竞争、数据组织方式、特有操作以及用户请求多样性等问题,分析了其所进行的架构调整. 最后针对现有研究的问题及缺陷,从分布式排序加速、数据处理器、高层次综合辅助工具链等方面对未来的发展方向进行了展望.

    Abstract:

    For sort acceleration on FPGA, the selection and optimization of various performance metrics, such as latency, throughput, power efficiency, hardware utilization and bandwidth efficiency, etc., are of critical importance. We compare the evolution of performance-driven sort acceleration, with advances in larger data size, more data types, more algorithm support, hardware-software cooperation and new hardware-based design; we analyze the problems and optimization strategies faced at different stages of design, implementation, testing and so on. Among the numerous sorting algorithms, merge sort becomes mainstream due to its excellent hardware parallelism, scalability and simple control logic. Sort acceleration is an architectural design that is deeply tied to specific application scenarios. We analyze the architectural adjustments made from the perspective of database system acceleration for resource competition, data arrangement, unique operations and diversity of user requests problems faced in databases. At last, to address the problems and shortcomings of existing studies, we provide an outlook on future directions in terms of distributed sort acceleration for very large data scale, the introduction of new hardware devices such as data processing unit, and the improvement of auxiliary tool chains such as high level synthesis to drive the iterative update of sort acceleration design.

  • 天际线(Skyline)查询[1]作为多目标决策、兴趣点发现、推荐系统等领域关键问题的一种解决途径,在2001年被提出,自此受到研究学者的广泛关注与研究. 近些年,Skyline查询研究拓展到不确定数据Skyline查询[2]﹑数据流Skyline查询[3]﹑动态Skyline查询[4]﹑反Skyline查询[5] 、偏好Skyline查询等方面,其中偏好Skyline查询可以返回满足用户偏好需求的结果集. 针对因用户偏好不同导致属性的重要性不同问题,研究者们提出了新的支配关系与算法. 但已有研究主要集中在非道路网的用户偏好Skyline查询或者道路网单用户偏好Skyline查询方面,没有考虑道路网多用户偏好和权重的Top-k Skyline查询.

    传统偏好Skyline查询算法主要存在3点局限性:1)偏好Skyline查询需要确定属性的重要程度,由于不同用户权重与偏好不同,因此不同属性的重要程度也不一致,而已有研究中较少有提出将用户偏好和权重综合考虑,得到对用户群统一的属性重要程度次序处理方法;2)传统偏好Skyline查询算法大多未考虑道路网环境下的距离维度,只考虑静态维度;3)传统偏好Skyline查询算法返回的结果集过大、无序,不能给用户提供有效的决策支持.

    因此,针对道路网多用户偏好Top-k Skyline查询问题,本文提出满足多用户不同权重和偏好需求的查询方法.

    本文的主要贡献有3点:

    1)针对道路网存在大量数据点以及多查询用户场景,需要计算数据点到各个查询用户的道路网距离,从而产生的很大距离计算开销,为了提升距离计算效率,本文根据所提的Vor-R*-DHash索引结构以及数据点与查询用户群的空间位置关系,提前剪枝在距离维度被支配的大量数据点.

    2)针对在道路网Top-k Skyline查询处理时未综合考虑多用户不同权重和偏好以及返回的结果集数量不可控的问题,本文首先提出整体属性权重值的概念,综合考虑用户权重和偏好;并进一步提出用户群权重偏好次序,并基于此次序提出一种新的支配,即K-准放松支配;接着根据偏好次序进行逐次放松支配,使返回结果集大小可控;同时当k值改变时,动态调整放松轮次即可获取候选结果集CS,而无需重新计算距离、偏好次序等,减少了查询计算开销.

    3)针对Skyline查询返回结果集无序的问题,本文基于z-整体属性权重值,提出了选取Top-k个结果集的打分函数,对候选结果集CS打分排序,返回有序结果集.

    Skyline查询主要分为集中式查询和分布式查询. 其中集中式查询主要分为使用索引结构和不使用索引结构. 使用索引结构的算法常用R-tree等索引结构,例如文献[6]利用最近邻(nearest neighbor,NN)算法和R-tree索引查找Skyline点,基于R-tree可以快速判断数据点是否为Skyline点,接着利用数据点进行子集合的划分,递归查找Skyline点. 不使用索引结构的Skyline查询算法主要有基于排序的SFS(sort-filter Skyline)算法[7]. 而Skyline查询在不断发展过程中又产生了许多变种问题,例如K-支配空间Skyline查询[8]﹑连续Skyline查询[9]﹑针对推荐系统的范围障碍空间连续Skyline查询[10]﹑概率Skyline查询[11]以及Top-k Skyline查询等[12-13].

    在集中式计算环境下,文献[14]根据用户不同偏好提出了维度不确定的定义,根据维度特征划分数据,进行Skyline概率支配测试,同时利用阈值处理大规模数据集Skyline查询问题. 文献[15]提出一种高效偏序域Skyline查询处理方法,利用倒排索引进行Skyline查询. 在并行计算环境下,文献[16]提出了不完全数据集的偏好Skyline查询算法SPQ(Skyline preference query). 文献[17]根据用户的偏好,基于Voronoi图将数据对象划分到不同网格中,并行计算所有对象组合,获取动态Skyline结果. 文献[18]提出了MapReduce下Top-k Skyline偏好查询.

    道路网Skyline查询近些年来也受到越来越多的关注. 道路网Skyline查询既考虑数据点的路网空间属性,又考虑非空间属性. 文献[19]提出了基于范围的移动对象连续Skyline查询处理方法,利用Voronoi图组织道路网中的数据点,通过所提的3种算法减少道路网产生的相交节点数和距离计算开销. 文献[20]提出了道路网环境下综合考虑空间距离和社交距离的Skyline组用户查询方法.

    Top-k Skyline查询在多目标决策中往往更具优势,因为它可以控制返回的结果集数量. 文献[21]提出基于安全区域技术解决连续Top-k Skyline查询结果更新问题,提出了结合Top-k查询和Skyline查询的安全区域构建算法. 文献[22]提出了MapReduce环境下Top-k Skyline处理方法. 文献[23]将K-Skyband查询与Top-k Skyline查询结合处理大数据集的Top-k Skyline查询.

    目前道路网环境下Top-k Skyline查询研究大多集中在单用户场景,较少考虑多用户偏好和权重不同的场景. 针对已有方法的不足,本文利用查询点与数据点的位置关系剪枝数据集,利用所提的K-准放松支配控制结果集数量;利用所提的打分函数返回有序结果集,在理论论证和分析基础上提出了道路网多用户偏好Top-k Skyline查询方法.

    设道路网环境下数据集P={p1, p2,, pn},查询用户群G={q1, q2,…, qm}.

    定义1. 道路网距离支配. 给定查询用户群G、数据点p1、数据点p2,数据点之间的距离为Dist,当且仅当Distp1, qi)≤Distp2, qi),1≤im;且存在Distp1,qi)<Distp2, qi),1≤im,称p1道路网距离支配p2,记作p1p2. 本文距离如不特殊说明,则为道路网距离.

    定义2. 整体属性权重. 给定查询用户群G,用户权重w={w1,w2,…,wm},用户qi的查询关键字keys={C1C2},C1为优先考虑的属性集合,C2为一般偏好的属性集合,任意维度dj的整体属性权重Wj如式(1):

    Wj=mi=1siwi (1)

    其中si代表属性dj对于用户qi的重要性得分.

    在属性的重要性程度计分时,将属性偏好分为3类:优先考虑﹑一般偏好和未考虑. 不同类别分数不同,例如C1中的属性被赋予2分,C2中的属性被赋予1分,未考虑的属性被赋予0分.

    定义3. 用户群权重偏好次序. 指针对查询用户群属性的有序集合 GP={d1, d2, …, di},其中di代表任意属性,GP中属性对用户群的重要性程度呈非递增排列. 用户群权重偏好次序综合考虑用户的偏好和权重.

    定义4. K-准放松支配(KPRD). 设P为数据集,数据维度空间为Ddj为任意维度,总维度数为rθ=(θ1,θ2,…,θK)是DK个维度的无差异阈值. 数据点piptPpi K-准放松支配pt,记作piϾpt,当且仅当:

    {|{j|pi[dj]pt[dj]>θj}|=0,|{j|pt[dj]pi[dj]>0}|<|{j|pi[dj]pt[dj]>0}|, (2)

    其中1≤jK.

    定义5. 道路网多用户偏好Top-k Skyline查询. 给定道路网路段集R、查询用户群G、数据集P、用户的查询关键字集合keys和用户权重集合w,道路网多用户偏好Top-k Skyline查询返回P的一个子集. 该子集中数据点在道路网的距离维度和静态维度都不能被P中任意其他数据点支配,并且是根据用户群偏好和权重排序的Top-k个数据点. 本文将道路网多用户偏好Top-k Skyline查询方法记作MUP-TKS.

    本文提出的道路网多用户偏好Top-k Skyline查询方法主要分为3个部分:距离较优集选取﹑K-准放松支配和Top-k个数据点选取.

    定义6. Mindist距离[24]. r维欧氏空间中,点p到同一空间内某矩形N的最小距离为MindistN, p).

    定义7.Edist距离. 设查询用户群的最小外接矩形(minimum bounding rectangle,MBR)为Q,数据点p的MBR为N,则min{Mindistp, Q)}为(Q, N)最小欧氏距离,记作Edistmin;max{Mindistp, Q)}为(Q, N)最大欧氏距离,记作Edistmax.

    定义8.Ndist距离. 设查询用户群的MBR为Q,数据点p的MBR为N,有min{Ndistp, Q)}为(Q, N)最小网络距离,记作Ndistmin;max{Ndistp, Q)}为(Q, N)最大网络距离,记作Ndistmax,其中pN中的任意数据点,Ndistp,Q)为pQ的网络距离.

    定理1. 设查询用户群的MBR为Q,道路网中数据点构成的2个中间节点分别为N1N2,若DE1=EdistminQ, N2),DE2=EdistmaxQ, N1),DN1=NdistmaxQ, N1),并且DE1>DE2DE1>DN1,则N1N2,且N2中任意数据点都被N1中数据点距离支配.

    证明. 假设DN2=NdistminQ, N2),因为欧氏距离值一定小于等于道路网距离值,所以当DE1>DE2DE1>DN1时一定有DN2DE1,可得DN2>DN1,即N2中数据点到Q的最小网络距离大于N1中数据点到Q的最大网络距离,进而可得N2中任意数据点到Q的网络距离都大于N1中任意数据点到Q的网络距离. 因此N1N2,且N2中任意数据点被N1中任意数据点道路网距离支配.证毕.

    剪枝规则1. 设数据点构成的MBR分别为N1N2,查询用户群的MBR为Q,如果满足:EdistmaxQ, N1)≤EdistminQ, N2),并且NdistmaxQ, N1)<EdistminQ, N2),则节点N2可被剪枝.

    定义9. 道路网最大距离的最小值. 给定数据点p1p2,查询用户群G,数据点p到查询点q的道路网距离为Ndistp, q). 若有DN1=max{Ndistp1, qi)},DN2=max{Ndistp2, qi)}(1≤im),并且DN1<DN2,则当前道路网最大距离的最小值为DN1,记作DN_MaxMin.对应的数据点为p1.

    定理2. 若节点NEdistminQ, N)>DN_MaxMin,则节点N可被剪枝.

    证明. 因为EdistminQ, N)>max{Ndistp, qi)}(1≤im),所以NdistminQ, N)>max{Ndistp, qi)},即pN,且N中数据点也被p距离支配.证毕.

    剪枝规则2. 若EdistminQ, N)≥DN_MaxMin,则节点N被支配,即NN中数据点{p1, p2,···, pi}被剪枝.

    图1所示,数据点p1p2到查询用户群{q1, q2, q3}的最大网络距离分别为DN1DN2,有DN1>DN2,则DN_MaxMin=DN2. 数据点{p3,p4,p5,p6,p7,p8}构成的MBR为N1;若EdistminQ, N1)>DN_MaxMin,可得N1中数据点到各查询用户的网络距离大于DN_MaxMin,因为EdistminQ, N1)>DN_MaxMin,且有min{Ndistp2, qi)}≥EdistminQ,N1)(1≤i≤3),所以p2N1N1可被剪枝.

    图  1  剪枝规则2示例
    Figure  1.  Example of pruning rule 2

    定理3. 设DE为数据点pi到查询用户qj的欧氏距离,若min{DEpi, qj)}>DN_MaxMin(1≤jm),则pi被剪枝.

    证明. 假设p1DN_MaxMin对应的数据点,若min{DEpi,qj)}>DN_MaxMin,则有Ndistp,qj)>DN_MaxMin(1≤jm),即数据点p1pp可被剪枝.证毕.

    剪枝规则3. 假设数据点p1DN_MaxMin对应的数据点,若存在DN_MaxMin<min{DEpi, qj)}(1≤jm),则p1pi,可将pi从候选集中删除,其中pi为任意不为p1的数据点.

    为了减少计算,在剪枝前基于路网数据点的网络Voronoi图构建Vor-R*-DHash索引结构,如图2所示.

    图  2  Vor-R*-DHash索引结构
    Figure  2.  Index structure of Vor-R*-DHash

    Vor-R*-DHash索引结构构造过程有3步:

    1)构建路网所有数据点的网络Voronoi图.

    2)创建R*-tree.从R*-tree的根部开始,从上至下、从左至右给每个节点编号,从0开始编号.

    3)构建2级HashMap结构,第1级HashMap为first_hashkey为R*-tree中每个节点编号;第2级HashMap为sec_hashkey为后续剪枝处理需要的值,包括isNode(非数据点的节点)、MinE(节点到Q的最小欧氏距离值)、MaxE(节点到Q的最大欧氏距离值 )、MinN(节点到Q的最小网络距离值)、MaxN(节点到Q的最大网络距离值)、{DN1, DN2,…, DNi}(数据点到各查询用户的网络距离)、{DE1, DE2,, DEi}(数据点到各查询用户的欧氏距离).

    2级key对应的value值初始都为空,若数据点根据剪枝规则提前被剪枝,则这些值无需计算.DEiDNi的值也是后续需要使用才被计算,并存入sec_hash.

    基于剪枝规则1~3和Vor-R*-DHash索引结构,进一步给出距离较优集选取方法,如算法1所示.

    算法1. 距离较优集选取方法 G_DBC.

    输入:查询用户群G,道路网路段集R,数据集P

    输出:距离维度不被支配的距离较优集DBC.

    ① 以P中数据点、道路网路段集R构建 Vor- R*-DHash索引;

    ② 构建查询用户群的最小外包矩形Q

    ③ 初始化DBC

    ④ 根据索引找到距离查询用户最近的点point

    ⑤ 将point加入DBC中;

    ⑥ 计算数据点到各查询用户的网络距离 Ndistp, qi)、欧氏距离DEp, qi);

    ⑦ 将数据点网络距离、欧氏距离存入sec_hash

    ⑧ 找到数据点到查询用户的网络距离最大值 的最小值;

    ⑨ DN_MaxMin←min{Ndistp,qi)}; /*将最小值 赋给DN_MaxMin*/

    ⑩ 将数据点父节点Ni加入队列queue中;

    ⑪ 计算NiQ的最小、最大欧氏距离和最 小、 最大网络距离,存至sec_hash

    ⑫ N1←min{MaxN}; /*将当前支配能力最强的 节点赋值给N1*/

    ⑬ for node in queue do

    ⑭  if node的孩子节点都被访问过 then

    ⑮    将node的父节点加入queue中;/*向上 一层访问*/

    ⑯   end if

    ⑰   if node的孩子节点N为非叶子节点 then

    ⑱    计算NQ的欧氏距离DE1

    ⑲    if DE1 > DN_MaxMin then

    ⑳     Cut N;/*将N剪枝,剪枝规则2*/

    ㉑    else if MaxEN1) < MinEN) 且 MaxNN1)<MinEN) then

    ㉒     Cut N;/*剪枝规则1*/

    ㉓  else

    ㉔    将N加入队列queue

    ㉕    计算NQ的最小、最大网络距离, 并 存至sec_hash

    ㉖    更新N1←min{MaxN};/*当前支配能力强 的节点赋给N1*/

    ㉗   end if

    ㉘   end if

    ㉙  if node的孩子节点N为叶子节点 then

    ㉚   计算数据点到各查询用户欧氏距离 DEp,qi);

    ㉛   if min{DEp,qi)} > DN_MaxMin then

    ㉜    Cut N;/*剪枝规则3*/

    ㉝  else

    ㉞    计算N到各查询用户网络距离DN

    ㉟    if min{DN} > DN_MaxMin then

    ㊱     Cut N

    ㊲    else

    ㊳     将NDBC中数据点支配比较;

    ㊴     if N被支配 then

    ㊵      Delete N

    ㊶     else

    ㊷       将N加入DBC中;

    ㊸       更新DN_MaxMin←min{DN};

    ㊹     end if

    ㊺    end if

    ㊻   end if

    ㊼  end if

    ㊽ end for

    ㊾ return DBC.

    算法1首先构建Vor-R*-DHash索引和查询用户群最小外接矩形Q,可快速得到距离查询点最近的数据点point,计算并保存sec_hash所需数据. 将point加入距离较优集DBC,并初始化DN_MaxMin. 接着将point父节点加入队列queue中,计算并保存sec_hash所需数据,并初始化N1. 每次取出队头节点处理,依据剪枝规则1~3进行节点的剪枝或者将节点加入DBC,并判断是否需要更新N1DN_MaxMin等值,直至队列为空,循环结束. 最后返回距离较优集DBC.

    首先初始化整体属性权重集合.W={W1,W2,,Wi}={0,0,…,0};接着计算每个属性的整体属性权重值得到W;最后对整体属性权重值不为0的属性降序排列,得到属性的重要性次序,即用户群权重偏好次序.

    在获取用户群权重偏好次序时,为了减小计算开销,利用HMap1HMap2分别保存优先考虑的属性和一般偏好的属性. 当用户发起查询时,将C1中属性作为键,对应的用户权重作为值保存到HMap1;将C2中属性作为键,对应的用户权重作为值保存到HMap2.

    进一步给出获取用户群权重偏好次序算法CDW,如算法2所示.

    算法2. 获取用户群权重偏好次序算法 CDW.

    输入:用户群G,用户查询关键字keys,用户权重w,维度空间D

    输出:用户群权重偏好次序GP.

    ① 初始化W为0; /*大小为数据集维度数*/

    ② 根据keysw创建HMap1HMap2

    ③ for djD do

    ④   基于HMap1HMap2和式(1)得到Wj

    ⑤ end for

    ⑥ 根据W降序得到用户群权重偏好次序GP

    ⑦ return GP. /*返回用户群权重偏好次序*/

    获取用户群偏好次序后,基于该次序进行放松支配处理. 本文中K为整体属性权重值不为0的维度数. 放松支配过程的处理对象为DBC与静态Skyline集取并集后的集合S. 经K-准放松支配后得到数量可控的候选结果集CS.

    定理4. 任意2个数据点pipjP,若第ii>0)轮在K个维度上piϾpj,则数据点pi必定在前Ki维支配数据点pj.

    证明. 若在第ipiϾpj,可知该轮的无差异阈值为(0,0,…,0,θK−i+1,…,θK),进而可得前Ki维使用的无差异阈值为(0,0,…,0),所以前Ki维为严格支配比较,即数据点pi必定在前Ki维支配数据点pj.证毕.

    定理5. 数据集P经过第ii>1)轮放松支配后所得结果集Si一定是第i–1轮放松支配后所得结果集Si−1的子集.

    证明. 设第i轮放松的维度为第(Ki+1)~K维,第i–1轮放松的维度为第(Ki+2)~K维,其余维度使用严格支配. 可知第i轮的无差异阈值为(0,0,…,0,θK−i+1,θK−i+2,…,θK),第i–1轮的无差异阈值为(0,0,…,0,θK−i+2,…,θK),进而可知第i–1轮在前Ki+1个维度为严格支配比较,即在前Ki+1个维度的无差异阈值为(0,0,…,0). 第i轮不同于第i–1轮之处在于对第Ki+1维进行了放松支配,即在前Ki+1个维度无差异阈值为(0,0,…,0,θK−i+1),所以有SiSi−1.证毕.

    由定理4、定理5可直接得出定理6.

    定理6. 给定数据集S,结果集数量随着每一轮放松而呈单调非递增趋势,即

    |KPRD(i1,D,S)| (3)

    为使返回的结果集更符合用户群偏好,并保证数量可控,基于定理4~6进行逐次放松支配. 逐次放松支配过程中,θDK个维度的无差异阈值,θ =(θ1, θ2, …, θK). 假定当前放松轮次为第i轮(1≤iK),无差异阈值θ =(0,0,…,0,θK−i+1,…,θK). 位于di前面的维度重要性都要高于di,因此该轮放松支配维度d1~di−1都使用严格支配比较. 放松支配从对用户群而言最不重要的属性开始,并预先将数据点按照用户群权重偏好次序非递增排序,距离维度值用数据点到查询用户群网络距离的最大值表示.

    基于以上讨论,进一步给出基于用户群权重偏好次序的K-准放松支配算法KPRD,如算法3所示.

    算法3. 基于用户群权重偏好次序的K-准放松支配算法KPRD.

    输入:用户群G,无差异阈值θ,并集S,数据维度空间Dk值,用户查询关键字keys,用户权重w

    输出:候选结果集CS.

    ① GP←call CDWG, keys, w, D);/*调用算法2 获取用户群权重偏好次序GP*/

    ② K←|GP|; /*整体属性权重值大于0的 维度数*/

    ③ 根据GP调整S中数据点;

    ④ 初始化CurSS; /*CurS为每轮放松支配后 的结果集*/

    ⑤ 初始化oldCount←|S|; /*保存上一轮结果集 个数*/

    ⑥ 初始化curCount ←|CurS|;/*保存本轮结果集 个数*/

    ⑦ for j = K to 1 do /*进行最多K轮放松支配*/

    ⑧   for every pipjCurS do

    ⑨    if piϾpj then

    ⑩     将pjCurS删除;

    ⑪     curCount = curCount −1;

    ⑫    end if

    ⑬   end for

    ⑭   if oldCountkcurCount < k then

    ⑮    CSS

    ⑯    return CS;/*返回上一轮的结果集*/

    ⑰   else

    ⑱    将CurS结果集保存至文件;

    ⑲    SCurS;/*更新S*/

    ⑳    oldCount←|S|;/*更新oldCount*/

    ㉑   end if

    ㉒ end for

    ㉓ CSCurS

    ㉔ return CS.

    通过放松支配处理后可有效控制返回用户群的结果集大小,本节进一步给出Top-k个数据点选取策略,使返回结果集有序. 利用z-整体属性权重值的打分函数选取Top-k个数据点,处理对象为候选结果集CS.

    定义10. 单调打分函数F[25]. 数据集中数据点作为输入域将数据点映射到实数范围.Fr个单调函数构成,F={f1, f2, …, fr}. 对于数据集中任意数据点,有F = \displaystyle\sum\limits_{j = 1}^r {{f_j}(p[{d_j}])},其中fjp[dj])为数据点在dj维度的单调函数.

    定理7. 假设数据集P的单调打分函数为F,若数据集中任意一个元组有最高的分数,那么它一定是Skyline点.

    证明. 以反证法进行证明. 假设有p1p2Pp1的得分Fp1)为数据集的最高得分,Fp1)>Fp2),p1不是Skyline点,p2支配p1p1[dj]≤p2[dj](1≤jr),则可得\displaystyle\sum\limits_{j = 1}^r {{f_j}({p_1}[{d_j}]) \leqslant \displaystyle\sum\limits_{j = 1}^r {{f_j}({p_2}[{d_j}])} },即Fp1)≤Fp2),与假设矛盾.证毕.

    定理8. 数据集P根据任意单调打分函数所得数据点顺序是Skyline支配的拓扑顺序.

    证明. 以反证法进行证明. 假设存在2个数据点p1p2P,单调打分函数为Fp1支配p2Fp1)<Fp2),根据定理7可知,p1支配p2,则有Fp1)≥Fp2),与假设矛盾. 所以如果Fp2)>Fp1),可能有p2支配p1,但可以确定p1不可能支配p2. 如果Fp1)=Fp2),则p1支配p2p2支配p1(这两者是等价的,会根据属性的映射关系排序),或者p1p2之间不具备支配关系. 因此依据打分函数F所得数据点顺序是按照Skyline支配关系的一个拓扑顺序.证毕.

    定义11. 线性打分函数[25]. 给定线性打分函数L,一般化形式为L(p) = \displaystyle\sum\limits_{j = 1}^r {{\omega _j} \cdot p[{d_j}]},其中ωj为实常数,p[dj]为数据点在dj维度的取值.

    定义12. z-整体属性权重值. 给定数据集P,数据点 {p_i}\in Ppidj维度的z-整体属性权重值为

    {\varphi }_{i,j}=\frac{({V}_{i,j}-\mu )}{\sigma }\cdot {W}_{j}\cdot {\zeta }_{j}\text{,} (4)

    其中,\dfrac{{({V_{i,j}} - \mu )}}{\sigma }为数据点pi在维度djz值,Wjdj的整体属性权重值,ζjdj的维度优劣值,ζj=1或ζj=−1. 由定义10~12可知,fjp[dj])=φi,j=ωjzωj=Wjζj.

    定理9. 数据点任意维度的fjp[dj])是单调的.

    证明. 因为ωj=Wjζj,在打分阶段Wj为实常数,所以可得ωj为实常数,且随着数据点维度值变大,它的z值也变大,因此数据点的任意维度fjp[dj])是单调的.证毕.

    定义13. 基于z-整体属性权重值的打分函数. 数据点pi各维度z-整体属性值之和为它的得分,记作Fpi):

    F({p_i}) = \sum\limits_{j = 1}^r {{\varphi _{i,j}}} . (5)

    定理10. Fpi)是单调打分函数.

    证明. 因为有F({p_i}) = \displaystyle\sum\limits_{j = 1}^r {{f_j}(p[{d_j}])},根据定理9可知数据点的任意维度fjp[dj]) 随着维度值变大单调递增,它们具备相同的单调性,因此Fpi)也是单调的.证毕.

    进一步给出Top-k个数据点选取方法,如算法4所示.

    算法4.Top-k个数据点选取方法TK_DC.

    输入:候选结果集CS,整体属性权重集合W,维度优劣集合ζ

    输出:Top-k Skyline结果集.

    ① for piCS do

    ②   计算数据点的z-整体属性权重值;/*根据 式(4)*/

    ③   计算数据点得分;/*根据式(5) */

    ④ end for

    ⑤ 根据Fpi)降序排序;

    ⑥ return Top-k个数据点.

    算法4主要对经过算法3处理后的候选结果集CS打分,并对行②③计算CS中各个数据点的得分,基于行⑤⑥数据点的得分排序,输出Top-k Skyline结果集给用户群.

    综合距离较优集选取﹑K-准放松支配和Top-k个数据点选取的处理过程,进一步给出算法5 MUP-TKS的算法.

    算法5. 道路网多用户偏好Top-k Skyline查询算法MUP-TKS.

    输入:数据集P,道路网路段集R,用户群G,用户查询关键字keys,用户权重w,无差异阈值θk,维度优劣集合ζ

    输出:Top-k Skyline结果集.

    ① 预先计算保存数据集的静态Skyline 集;

    ② 距离较优集选取方法G_DBC;/*调用算法1*/

    ③ 对距离较优集与静态Skyline集求并集S

    ④ K-准放松支配算法KPRD; /*调用算法 3*/

    ⑤ Top-k 个数据点选取方法TK_DC. /*调用算 法4*/

    本节主要对MUP-TKS进行实验以及性能评估. 实验对比算法为道路网单用户偏好Skyline算法UP-BPA[26]K支配空间偏好Skyline算法KSJQ[23]以及基于时间道路网多用户偏好Skyline算法DSAS[27].UP-BPA算法适用于道路网单用户,为了更好地与本文所提MUP-TKS进行对比,将其扩展,对查询用户群的每个用户分别运行该算法;再对子结果集取并集,得到候选结果集CS;最后对候选结果集基于z-值的打分函数打分,得到Top-k个数据点,扩展后的算法称为EUP-BPA.将KSJQ算法扩展,对每个用户单独执行该算法,用户偏好对应它的K个子空间;对每个用户的结果集取并集后得到候选结果集;对候选结果集CS基于z-值的打分函数打分,得到Top-k个Skyline结果集,扩展后的算法称为EKSJQ.将DSAS算法扩展,对满足不同用户需求的数据点基于z-值打分函数打分,按照数据点得分从高至低返回Top-k个Skyline结果集,扩展后的算法称为EDSAS.

    实验使用真实道路网数据集. 道路网数据集 1是北美2.5×107 km2范围内的路段信息,它包含175813个节点和179179条边. 兴趣点数据集 2来自北美酒店及登记信息. 查询用户采用随机生成的方式. 本文使用Vor-R*-DHash索引结构组织数据集. 实验参数取值范围如表1所示,每个用户最大关注维度为4.每个实验采取单一变量原则,其余变量为默认值,实验结果取30次实验运行的平均值.

    表  1  实验参数设置
    Table  1.  Experimental Parameter Setting
    参数取值范围
    用户数量5,10,15,20,25,30,35
    数据集规模1×104,2×104,3×104,4×104,5×104
    数据维度5,7,9,11,13,15,17
    无差异阈值(标准差)0.1倍,0.5倍,1倍,2倍,10倍
    获取数据点数量k2,4,6,8,10
    注:加粗数值表示参数默认取值.
    下载: 导出CSV 
    | 显示表格

    实验环境为:Windows 10(64b),CoreTM i6-5200U CPU @2.20 GHz 2.19 GHz处理器,12 GB运行内存. 在IntelliJ IDEA开发平台上使用Java实现本文所提的算法MUP-TKS和对比算法EUP-BPA,EKSJQ,EDSAS.

    1)用户数量对算法性能的影响

    为了分析用户数量对算法性能的影响,本实验对不同用户数量下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察算法在不同用户数量下的CPU运行时间、候选结果集CS数量的变化情况.

    图3展示了4种算法在不同用户数量下CPU运行时间变化情况.由图3可知,随着用户数量的增加,4种算法的CPU运行时间都在增加. 因为用户数量增加导致不同用户的偏好情况增加,从而需要更多时间处理用户偏好. MUP-TKS的CPU运行时间增长趋势没有其他3种算法的增长趋势大,主要原因是MUP-TKS将多用户的偏好转换成用户群权重偏好次序,对数据集按照该次序预排序,再进行K-准放松支配,使用户数量增加对CPU运行时间的影响减小.

    图  3  用户数量对CPU运行时间的影响
    Figure  3.  Effect of user number on CPU execution time

    图4展示了4种算法随着用户数量的变化,候选结果集CS数量的变化情况. 由图4可知随着用户数量的增加,CS的数量变大. 但MUP-TKS,EKSJQ,EDSAS算法的变化趋势远没有EUP-BPA算法的变化趋势大,主要因为EUP-BPA算法需要对每个用户进行偏好Skyline查询,再合并各用户的偏好Skyline结果集.

    图  4  用户数量对CS数量的影响
    Figure  4.  Effect of user number on CS number

    2)数据规模对算法性能的影响

    为了分析数据规模对MUP-TKS性能的影响,本实验对不同数据规模下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察4种算法在不同数据规模下CPU运行时间、CS数量的对比情况.

    图5可知,随着数据集规模变大,CPU运行时间不断增加,因为当数据集规模变大时,需要比较的元组数量增加. 而MUP-TKS的增长趋势比其他3种算法小,主要因为MUP-TKS利用剪枝策略和Vor-R*-DHash索引提前剪枝大量不可能成为Skyline的数据点,减少了元组比较次数.

    图  5  数据规模对CPU运行时间的影响
    Figure  5.  Effect of data size on CPU execution time

    3)k值对算法性能的影响

    图6展示了4种算法随着k值变化CPU运行时间变化的情况. 随着k值变化,MUP-TKS的CPU运行时间没有太大变化,因为MUP-TKS在每一轮放松支配后会保存结果集,当k值变化时,可直接找到对应符合大小要求轮次的CS打分,即可得到Top-k Skyline结果集,该过程时间消耗很小. 而EKSJQ,EUP-BPA算法都需要重新计算,时间消耗较大.

    图  6  k值对CPU运行时间的影响
    Figure  6.  Effect of k value on CPU execution time

    图7展示了4种算法随着k值变化元组比较次数的变化情况. 可以发现MUP-TKS随着k值增大,元组比较次数减少,因为当k值增大时,放松支配的轮次减少. 而随着k值增大,EKSJQ,EUP-BPA算法的元组比较次数增多,因为需要进行更多的支配比较找到Top-k个数据点. 随着k值增大,EDSAS算法的元组比较次数基本没有变化.

    图  7  k值对元组比较次数的影响
    Figure  7.  Effect of k value on the number of tuple comparison

    4)无差异阈值对算法性能的影响

    本实验分析无差异阈值对MUP-TKS性能的影响. 图8展示了MUP-TKS在不同无差异阈值下CPU运行时间的变化情况. 由图8可知,若只考虑第1轮放松时间,无差异阈值变化对第1轮放松的CPU响应时间影响不大,因为不同无差异阈值的初始数据集大小都是相同的,处理相同数据集规模的时间差异不大. 而算法总运行时间随着阈值增大而减小,因为无差异阈值增大后,放松支配时会删减更多被支配的元组.

    图  8  θ 对CPU运行时间的影响
    Figure  8.  Effect of θ on CPU execution time

    本文针对现实生活中道路网多用户场景的偏好Top-k Skyline 查询问题,进行深入分析与研究. 作为道路网上单用户偏好Skyline查询问题的补充,提出了一种基于道路网环境下多用户偏好Top-k Skyline查询方法. 该方法利用剪枝规则和索引减少了距离计算开销,并利用用户群权重偏好次序进行放松支配,使结果集可控. 实验结果表明,本文方法能有效解决道路网多用户偏好查询问题,返回的结果集可以满足多用户偏好与权重需求,可以提供有效参考价值. 下一步研究重点主要集中在对多查询用户移动情况下偏好 Top-k Skyline 查询问题的处理.

    作者贡献声明:李松提出了方法思路和技术方案;宾婷亮和郝晓红负责算法优化、完成部分实验并撰写论文;张丽平完成部分实验;郝忠孝提出指导意见并修改论文.

  • 图  1   FPGA排序加速设计流程

    Figure  1.   Design process of FPGA sort acceleration

    图  2   排序算法选择

    Figure  2.   Selection of sort algorithms

    图  3   FPGA排序加速的3种数据通路

    Figure  3.   Three data paths of sort acceleration on FPGA

    图  4   归并排序常用比较器模块

    Figure  4.   Common comparator unit of merge sort

    图  5   不同FPGA排序加速方案的带宽利用率

    Figure  5.   Bandwidth-efficiency of different sort acceleration schemes on FPGA

    图  6   不同FPGA排序加速方案的硬件资源占用率

    Figure  6.   Resource utilization of different sort acceleration schemes on FPGA

    图  7   排序网络

    Figure  7.   Sorting network

    图  8   排序网络优化方案

    Figure  8.   Optimizations of sorting network

    图  9   双调排序衍生架构

    Figure  9.   Derivative architecture of bitonic sorting

    图  10   带有反馈路径的排序架构及其优化

    Figure  10.   Sorting architecture with feedback datapath and its optimization

    图  11   FMS结构

    Figure  11.   FMS structure

    图  12   归并树及其优化

    Figure  12.   Merge tree and its optimizations

    图  13   Bonsai架构

    Figure  13.   The architecture of Bonsai

    图  14   采样排序

    Figure  14.   Sample sort

    图  15   基于地址的排序

    Figure  15.   Address-based sort

    图  16   范围划分

    Figure  16.   Range partition

    图  17   数据库卸载引擎模型

    Figure  17.   Model of database offloading engine

    图  18   Top-K操作架构

    Figure  18.   Architecture of Top-K operation

    图  19   排序合并连接操作

    Figure  19.   Sort-merge join operation

    图  20   数据库数据组织形式

    Figure  20.   Data arrangement of database

    图  21   DOE数据组织形式

    Figure  21.   Data arrangement of DOE

    图  22   设备级带宽发展趋势[38]

    Figure  22.   Bandwidth development trends at device-level[38]

    图  23   FPGA排序加速的Roofline模型

    Figure  23.   Roofline model of sorting acceleration on FPGA

    表  1   基于FPGA的排序加速方案

    Table  1   Schemes of Sort Acceleration Using FPGAs

    相关工作 年份 架构 数据规模 Slice(占比/%) BRAM(占比/%) 吞吐率/GBps 频率/MHz FPGA型号
    文献[1] 2009 FMS 128 KB 559(1) 30(22) 166 Virtex-5(XC5VSX50T-1)
    文献[2] 2010 线性排序 5250(20.6) 1.2 40 Virtex-5
    文献[3] 2011 基于地址 640 KB 562(6) (100) 79.821 Spartan3E-1200E-FG320
    文献[4] 2011 FMS; MT 344 KB;35.1 MB 10646(74); 12983(90) 103(98);105(100) 2;1 252;273 Virtex-5(XC2VP30)
    文献[5] 2012 SN 14336(70) (17) 100 Virtex-5(FX130T)
    文献[6] 2012 SN 8 KB 63720(54) (100) 10 Virtex-6(XC6VLX760)
    文献[7] 2014 SN 1 KB 5355(78) (1) 827 108.38 Spartan-6 & ZedBoard
    文献[8] 2015 SN 64 KB 14079(13) 176.4(6) 8 250 Virtex-7(XC7VX690T)
    文献[9] 2015 SN 1 MB 24345.25(32.08) 649(63.01) 1 167 Virtex-7(XC7VX485T)
    文献[10] 2015 SN+MT 1 GB 10190(20) (50) 8.99 200 Kintex-7(XC7K325T)
    文献[11] 2015 SN+MT 256 KB 31250(28.86) 109(3.70) 10 200 Virtex-7(XC7VX690T)
    文献[12] 2016 MT 256 KB 35544.75(46.83) 24.64 99.2 Virtex-7(XC7VX485T)
    文献[13] 2016 MT 512 MB (31) (66) 0.7 200 HARP Altera Stratix V
    文献[14] 2016 MT 1.11 MB 1305.48(1.72) 289.4(7.48) 1.11 150 Virtex-7(XC7VX485T)
    文献[15] 2017 MT 15.26 GB 43996.25(16.82) 79.3 320 Virtex-7(XC7VX980T-2)
    文献[16] 2017 MT 512 GB 125 Virtex-7(VC707)
    文献[17] 2018 MT 15.26 MB 135526(95) 38.28 175 Virtex-7(XC7VX980T-2)
    文献[18] 2018 MT 15.26 MB 41028.75(28.76) 126.38 506.3 Virtex-7(XC7VX980T-2)
    文献[19] 2018 MT 32 KB 91.5 Zynq 7020 FPGA SoC
    文献[20] 2018 MT 3.98 GB 5100(16) (74) 9.584 188 VC709 board
    文献[21] 2019 MT 15.26 MB 22561.5(14.75) 199.99 391.39 Virtex-7(XC7VX980T-2)
    文献[22] 2020 MT 512 MB 11000(61.97) 64(14.80) 3.34 214 Zynq UltraScale+ZU3E
    文献[23] 2020 MT 100 TB 71918(33.3) 960(60) 32 250 AWS F1
    文献[24] 2020 MT 15.26 MB 135522(42.80) 819.25 200 Virtex UltraScale
    文献[25] 2020 采样排序 14 GB 157384.25(53.3) 801.6(50.1) 7.2 250 AWS F1
    文献[26] 2021 MT 128 GB 40135.75(49) 127(20) 1.8 250 Samsung SmartSSD
    文献[27] 2021 MT+SN 4 GB 86856(9) 0.11 309.98 Stratix10
    下载: 导出CSV

    表  2   参数列表

    Table  2   Parameter List

    符号定义
    N输入数据长度
    b输入数据宽度
    L迭代次数
    f工作频率
    Thrii轮迭代时的吞吐率
    BWii轮迭代时的带宽
    p稳定阶段每时钟周期输出的数据数目
    下载: 导出CSV

    表  3   数据库排序加速设计

    Table  3   Sort Acceleration Design of Database

    相关工作数据规模/GB架构吞吐率/GBps频率/MHzBRAM/%LUT/%测试基准
    IBM[31]<0.01锦标赛排序+FMS4250242TPC-H
    AQUOMAN[32]1; 256双调排序+MT12; 62004076TPC-H
    Q100[33]<0.0001双调排序10.08315--TPC-H
    DOE[53]16锦标赛排序+MT--59TPC-H
    注:“-”表示文献中数据未公开.
    下载: 导出CSV
  • [1]

    Marcelino R, Neto H C, Cardoso J M. Unbalanced FIFO sorting for FPGA-based systems[C] //Proc of the 16th IEEE Int Conf on Electronics, Circuits and Systems. Piscataway, NJ: IEEE, 2009: 431−434

    [2]

    Ortiz J, Andrews D. A configurable high-throughput linear sorter system[C/OL] //Proc of Int Symp on Parallel & Distributed Processing, Workshops and PhD Forum. Piscataway, NJ: IEEE, 2010[2023-03-20].https://ieeexplore.ieee.org/abstract/document/5470730

    [3]

    Sklyarov V, Skliarova I, Mihhailov D, et al. Implementation in FPGA of address-based data sorting[C] //Proc of the 21st Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2011: 405−410

    [4]

    Koch D, Torresen J. FPGASort: A high performance sorting architecture exploiting run-time reconfiguration on FPGAs for large problem sorting[C] //Proc of the 19th ACM/SIGDA Int Symp on Field Programmable Gate Arrays. New York: ACM, 2011: 45−54

    [5]

    Mueller R, Teubner J, Alonso G. Sorting networks on FPGAs[J]. The VLDB Journal, 2012, 21(1): 1−23

    [6]

    Zuluaga M, Milder P, Püschel M. Computer generation of streaming sorting networks [C] //Proc of the 49th Annual Design Automation Conf. New York: ACM, 2012: 1241−1249

    [7]

    Sklyarov V, Skliarova I. High-performance implementation of regular and easily scalable sorting networks on an FPGA[J]. Microprocessors and Microsystems, 2014, 38(5): 470−484 doi: 10.1016/j.micpro.2014.03.003

    [8]

    Chen Ren, Siriyal S, Prasanna V. Energy and memory efficient mapping of bitonic sorting on FPGA[C] //Proc of the 23rd ACM/SIGDA Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2015: 240−249

    [9]

    Matsumoto N, Nakano K, Ito Y. Optimal parallel hardware k-sorter and top k-sorter, with FPGA implementations[C] //Proc of the 14th Int Symp on Parallel and Distributed Computing. Piscataway, NJ: IEEE, 2015: 138−147

    [10]

    Kobayashi R, Kise K. Face: Fast and customizable sorting accelerator for heterogeneous many-core systems [C] //Proc of the 9th Int Symp on Embedded Multicore/Many-core Systems-on-Chip. Piscataway, NJ: IEEE, 2015: 49−56

    [11]

    Srivastava A, Chen Ren, Prasanna V, et al. A hybrid design for high performance large-scale sorting on FPGA[C/OL] //Proc of Int Conf on Reconfigurable Computing and FPGAs. Piscataway, NJ: IEEE, 2015[2023-03-20].https://ieeexplore.ieee.org/abstract/document/7393322

    [12]

    Song Wei, Koch D, Luján M, et al. Parallel hardware merge sorter[C] //Proc of the 24th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2016: 95−102

    [13]

    Zhang Chi, Chen Ren, Prasanna V. High throughput large scale sorting on a CPU-FPGA heterogeneous platform[C] //Proc of the 30th IEEE Int Parallel and Distributed Processing Symp Workshops. Piscataway, NJ: IEEE, 2016: 148−155

    [14]

    Usui T, Van Chu T, Kise K. A cost-effective and scalable merge sorter tree on FPGAs[C] //Proc of the 4th Int Symp on Computing and Networking. Piscataway, NJ: IEEE, 2016: 47−56

    [15]

    Mashimo S, Van Chu T, Kise K. High-performance hardware merge sorter [C/OL]//Proc of the 25th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2017[2023-03-20].https://ieeexplore.ieee.org/abstract/document/7966636

    [16]

    Jun S W, Xu Shuotao. Terabyte sort on FPGA-accelerated flash storages [C] //Proc of the 25th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2017: 17−24

    [17]

    Elsayed E A, Kise K. Design and evaluation of a configurable hardware merge sorter for various output records[C] //Proc of the 12th Int Symp on Embedded Multicore/Many-core Systems-on-Chip. Piscataway, NJ: IEEE, 2018: 201−208

    [18]

    Saitoh M, Elsayed E A, Van Chu T, et al. A high-performance and cost-effective hardware merge sorter without feedback datapath [C] //Proc of the 26th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2018: 197−204

    [19]

    Papaphilippou P, Brooks C, Luk W. FLiMS: Fast lightweight merge sorter [C] //Proc of Int Conf on Field-Programmable Technology. Piscataway, NJ: IEEE, 2018: 78−85

    [20]

    Manev K, Koch D. Large utility sorting on FPGAs [C] //Proc of Int Conf on Field-Programmable Technology. Piscataway, NJ: IEEE, 2018: 334−337

    [21]

    Elsayed E A, Kise K. Towards an efficient hardware architecture for odd-even based merge sorter [C] //Proc of the 13th Int Symp on Embedded Multicore/Many-core Systems-on-Chip. Piscataway, NJ: IEEE, 2019: 249−256

    [22]

    Papaphilippou P, Brooks C, Luk W. An adaptable high-throughput FPGA merge sorter for accelerating database analytics[C] //Proc of the 30th Int Conf on Field-Programmable Logic and Applications. Piscataway, NJ: IEEE, 2020: 65−72

    [23]

    Samardzic N, Qiao Weikang, Aggarwal V, et al. Bonsai: High-performance adaptive merge tree sorting[C] //Proc of the 47th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2020: 282−294

    [24]

    Elsayed E A, Kise K. High-performance and hardware-efficient odd-even based merge sorter[J]. IEICE Transactions on Information and Systems, 2020, 103(12): 2504−2517

    [25]

    Chen Han, Madaminov S, Ferdman M, et al. FPGA-accelerated samplesort for large data sets[C] //Proc of the 28th ACM/SIGDA Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2020: 222−232

    [26]

    Qiao Weikang, Oh J, Guo Licheng, et al. FANS: FPGA-accelerated near-storage sorting[C] //Proc of the 29th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2021: 106−114

    [27]

    Kobayashi R, Miura K, Fujita N, et al. A sorting library for FPGA implementation in OpenCL programming [C/OL] //Proc of the 11th Int Symp on Highly Efficient Accelerators and Reconfigurable Technologies. New York: ACM, 2021[2023-03-20].https://dl.acm.org/doi/abs/10.1145/3468044.3468054

    [28]

    Salamat S, Haj Aboutalebi A, Khaleghi B, et al. NASCENT: Near-storage acceleration of database sort on SmartSSD[C] //Proc of the 29th ACM/SIGDA Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2021: 262−272

    [29]

    Romanous B, Rezvani M, Huang Junjie, et al. High-performance parallel radix sort on FPGA[C] //Proc of the 28th Annual Int Symp on Field-Programmable Custom Computing Machines. Piscataway, NJ: IEEE, 2020: 224−224

    [30]

    Casper J, Olukotun K. Hardware acceleration of database operations[C] //Proc of the 22nd ACM/SIGDA Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2014: 151−160

    [31]

    Sukhwani B, Thoennes M, Min H, et al. Large payload streaming database sort and projection on FPGAs[C] //Proc of the 25th Int Symp on Computer Architecture and High Performance Computing. Piscataway, NJ: IEEE, 2013: 25−32

    [32]

    Xu Shuotao, Bourgeat T, Huang Tianhao, et al. Aquoman: An analytic-query offloading machine[C] //Proc of the 53rd Annual IEEE/ACM Int Symp on Microarchitecture. Piscataway, NJ: IEEE, 2020: 386−399

    [33]

    Wu L, Lottarini A, Paine T K, et al. Q100: The architecture and design of a database processing unit[J]. ACM SIGARCH Computer Architecture News, 2014, 42(1): 255−268 doi: 10.1145/2654822.2541961

    [34] 郭诚欣,陈红,孙辉,等. 基于现代硬件的并行内存排序方法综述[J]. 计算机学报,2017,40(9):2070−2092 doi: 10.11897/SP.J.1016.2017.02070

    Guo Chengxin, Chen Hong, Sun Hui, et al. Parallelism of in-memory sorting algorithm on modern hardware[J]. Chinese Journal of Computers, 2017, 40(9): 2070−2092 (in Chinese) doi: 10.11897/SP.J.1016.2017.02070

    [35]

    Alquaied F A, Almudaifer A I, AlShaya M A. A novel high-speed parallel sorting algorithm based on FPGA[C/OL] //Proc of Saudi Int Electronics, Communications and Photonics Conf. Piscataway, NJ: IEEE, 2011[2023-03-20].https://ieeexplore.ieee.org/abstract/document/5877001

    [36] 吕伟新,李清清,娄俊岭. FPGA 比较矩阵排序法及在中值滤波器中的应用[J]. 电子器件,2012,35(1):34−38 doi: 10.3969/j.issn.1005-9490.2012.01.009

    Lü Weixin, Li Qingqing, Lou Junling. FPGA comparison matrix sorting method and application in median filter[J]. Chinese Journal of Electron Devices, 2012, 35(1): 34−38 (in Chinese) doi: 10.3969/j.issn.1005-9490.2012.01.009

    [37]

    Sogabe Y, Maruyama T. FPGA acceleration of short read mapping based on sort and parallel comparison[C/OL] //Proc of the 24th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2014[2023-03-20].https://ieeexplore.ieee.org/abstract/document/6927404

    [38]

    Fang Jian, Mulder Y T, Hidders J, et al. In-memory database acceleration on FPGAs: A survey[J]. The VLDB Journal, 2020, 29(1): 33−59 doi: 10.1007/s00778-019-00581-w

    [39]

    Papaphilippou P, Luk W. Accelerating database systems using FPGAs: A survey[C/OL] //Proc of the 28th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2018[2023-03-20].https://ieeexplore.ieee.org/abstract/document/8533481

    [40]

    Harkins J, El-Ghazawi T, El-Araby E, et al. Performance of sorting algorithms on the SRC 6 reconfigurable computer[C] //Proc of Int Conf on Field-Programmable Technology. Piscataway, NJ: IEEE, 2005: 295−296

    [41]

    Sukhwani B, Thoennes M, Min Hong, et al. A hardware/software approach for database query acceleration with FPGAs[J]. International Journal of Parallel Programming, 2015, 43(6): 1129−1159 doi: 10.1007/s10766-014-0327-4

    [42]

    Chamberlain R D, Ganesan N. Sorting on architecturally diverse computer systems[C] //Proc of the 3rd Int Workshop on High-Performance Reconfigurable Computing Technology and Applications. New York: ACM, 2009: 39−46

    [43]

    Gupta PK. Accelerating datacenter workloads[C/OL] //Proc of the 26th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2016[2023-03-20].https://www.fpl2016.org/slides/Gupta%20--%20Accelerating%20Datacenter%20Workloads.pdf

    [44]

    Cho M, Brand D, Bordawekar R, et al. PARADIS: An efficient parallel algorithm for in-place radix sort[J]. Proceedings of the VLDB Endowment, 2015, 8(12): 1518−1529 doi: 10.14778/2824032.2824050

    [45]

    Stehle E, Jacobsen H A. A memory bandwidth-efficient hybrid radix sort on GPUs [C] //Proc of ACM Int Conf on Management of Data. New York: ACM, 2017: 417−432

    [46]

    Stuecheli J. OpenCAPI ─ A New Standard for High Performance Memory, Acceleration and Networks [S/OL]. OpenCAPI Consortium, 2017[2023-03-20].https://opencapi.org/2017/04/21/opencapi-new-standard-high-performance-memory-acceleration-networks/

    [47]

    Wu L, Barker R J, Kim M A, et al. Navigating big data with high-throughput, energy-efficient data partitioning [C] //Proc of the 40th Annual Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2013: 249−260

    [48]

    Nyberg C, Shah M. Sort Benchmark[S/OL]. Hawaii: The Sort Benchmark Committee, 1987[2023-03-20]. http://sortbenchmark.org/

    [49]

    Transaction Processing Performance Council. TPC-H Benchmark H Standard Specification, Revision 3.0.1 [S/OL]. San Francisco, CA: TPC, 1993[2023-03-20].https://www.tpc.org/tpch/

    [50]

    Layer C, Pfleiderer H J. A reconfigurable recurrent bitonic sorting network for concurrently accessible data [C] //Proc of Int Conf on Field Programmable Logic and Applications. Berlin: Springer, 2004: 648−657

    [51]

    Farmahini-Farahani A, Duwe III H J, Schulte M J, et al. Modular design of high-throughput, low-latency sorting units[J]. IEEE Transactions on Computers, 2012, 62(7): 1389−1402

    [52]

    Saitoh M, Kise K. Very massive hardware merge sorter [C] //Proc of Int Conf on Field-Programmable Technology. Piscataway, NJ: IEEE, 2018: 86−93

    [53]

    Lu Wenyan, Chen Yan, Wu Jingya, et al. DOE: Database offloading engine for accelerating SQL processing [C] //Proc of the 38th Int Conf on Data Engineering Workshops. Piscataway, NJ: IEEE, 2022: 129−134

    [54] 张东站,苏志锋,林子雨,等. 基于关系数据库的Top- K聚合关键词查询[J]. 计算机研究与发展,2014,51(4):918−929 doi: 10.7544/issn1000-1239.2014.20120645

    Zhang Dongzhan, Su Zhifeng, Lin Ziyu, et al. Top- K aggregation keyword search over relational databases[J]. Journal of Computer Research and Development, 2014, 51(4): 918−929 (in Chinese) doi: 10.7544/issn1000-1239.2014.20120645

    [55]

    The Apache Software Foundation. Apache Arrow [S/OL]. Berkeley, CA: The Apache Software Foundation, 2018[2023-03-20].https://arrow.apache.org/

    [56]

    Levenson A, Mokashi A, Noland B, et al. Apache Parquet [S]. Berkeley, CA: Apache Parquet Committers and PMC, 2016: 325−335

    [57]

    Shafranovich Y. Common Format and MIME Type for Comma-separated Values (CSV) Files [S/OL]. 2005[2023-03-20].https://www.rfc-editor.org/rfc/rfc4180

    [58]

    Dang V B, Mohajerani K, Gaj K. High-speed hardware architectures and FPGA benchmarking of crystals-kyber, ntru, and saber[J]. IEEE Transactions on Computers, 2022, 72(2): 306−320

    [59]

    Peltenburg J, Van Straten J, Wijtemans L, et al. Fletcher: A framework to efficiently integrate FPGA accelerators with apache arrow [C] //Proc of the 29th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2019: 270−277

    [60]

    Williams S, Waterman A, Patterson D. Roofline: An insightful visual performance model for multicore architectures[J]. Communications of the ACM, 2009, 52(4): 65−76 doi: 10.1145/1498765.1498785

    [61]

    Da Silva B, Braeken A, D’Hollander E H, et al. Performance modeling for FPGAs: Extending the Roofline model with high-level synthesis tools[J]. International Journal of Reconfigurable Computing, 2013, 2013(7): 7−17

    [62]

    Chen Xinyu, Yao Chen, Bajaj R, et al. Is FPGA useful for hash joins? [C/OL]// Proc of the 10th Annual Conf on Innovative Data Systems Research. [2023-03-20].https://www.cidrdb.org/cidr2020/papers/p27-chen-cidr20.pdf

  • 期刊类型引用(12)

    1. 徐享希,李炯彬,郭志远. 车联网网络安全挑战与评估技术分析. 质量与认证. 2025(02): 83-86+91 . 百度学术
    2. 郭健忠,王灿,谢斌,闵锐. 面向车联网DoS攻击的混合入侵检测系统. 计算机系统应用. 2025(03): 85-93 . 百度学术
    3. 赵建斌,杜彦辉. 浅析车联网漏洞挖掘技术. 警察技术. 2025(02): 25-29 . 百度学术
    4. 李俊吉,张佳琦,高改梅,杨莉. 基于信誉机制的车联网共识算法. 计算机工程. 2025(04): 217-226 . 百度学术
    5. 黄金洲,杭波,王峰,徐德刚. 车联网技术在襄阳智慧交通建设中的应用. 智能城市. 2024(01): 20-23 . 百度学术
    6. 李昱. 容许风险与自动驾驶场景中的注意义务. 现代法学. 2024(04): 161-174 . 百度学术
    7. 谢勇,胡秋燕,李仁发,谢国琪,肖甫. 基于Uptane的汽车软件在线升级优化框架. 计算机研究与发展. 2024(09): 2145-2155 . 本站查看
    8. 洪榛,冯王磊,温震宇,吴迪,李涛涛,伍一鸣,王聪,纪守领. 基于梯度回溯的联邦学习搭便车攻击检测. 计算机研究与发展. 2024(09): 2185-2198 . 本站查看
    9. 李可,马赛,戴朋林,任婧,范平志. 基于多目标深度强化学习的车车通信无线资源分配算法. 计算机研究与发展. 2024(09): 2229-2245 . 本站查看
    10. 顾芳铭,况博裕,许亚倩,付安民. 面向自动驾驶感知系统的对抗样本攻击研究综述. 信息安全研究. 2024(09): 786-794 . 百度学术
    11. 刘雪娇,赵祥,夏莹杰,曹天聪. 空地协同场景下具有隐私保护的高效异构认证方案. 浙江大学学报(工学版). 2024(10): 1981-1991 . 百度学术
    12. 权仕鑫,孙溶辰,刘留,孙志国. 车联网融合通信技术的场景仿真与分析. 应用科技. 2024(05): 190-196 . 百度学术

    其他类型引用(11)

图(23)  /  表(3)
计量
  • 文章访问数:  264
  • HTML全文浏览量:  129
  • PDF下载量:  145
  • 被引次数: 23
出版历程
  • 收稿日期:  2022-09-13
  • 修回日期:  2023-04-17
  • 网络出版日期:  2023-11-30
  • 刊出日期:  2024-03-01

目录

/

返回文章
返回