Loading [MathJax]/jax/output/SVG/jax.js
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

基于混合计数布隆过滤器的高效数据名查找方法

许可, 李彦彪, 谢高岗, 张大方

许可, 李彦彪, 谢高岗, 张大方. 基于混合计数布隆过滤器的高效数据名查找方法[J]. 计算机研究与发展, 2023, 60(5): 1136-1150. DOI: 10.7544/issn1000-1239.202111242
引用本文: 许可, 李彦彪, 谢高岗, 张大方. 基于混合计数布隆过滤器的高效数据名查找方法[J]. 计算机研究与发展, 2023, 60(5): 1136-1150. DOI: 10.7544/issn1000-1239.202111242
Xu Ke, Li Yanbiao, Xie Gaogang, Zhang Dafang. Efficient Name Lookup Method Based on Hybrid Counting Bloom Filters[J]. Journal of Computer Research and Development, 2023, 60(5): 1136-1150. DOI: 10.7544/issn1000-1239.202111242
Citation: Xu Ke, Li Yanbiao, Xie Gaogang, Zhang Dafang. Efficient Name Lookup Method Based on Hybrid Counting Bloom Filters[J]. Journal of Computer Research and Development, 2023, 60(5): 1136-1150. DOI: 10.7544/issn1000-1239.202111242
许可, 李彦彪, 谢高岗, 张大方. 基于混合计数布隆过滤器的高效数据名查找方法[J]. 计算机研究与发展, 2023, 60(5): 1136-1150. CSTR: 32373.14.issn1000-1239.202111242
引用本文: 许可, 李彦彪, 谢高岗, 张大方. 基于混合计数布隆过滤器的高效数据名查找方法[J]. 计算机研究与发展, 2023, 60(5): 1136-1150. CSTR: 32373.14.issn1000-1239.202111242
Xu Ke, Li Yanbiao, Xie Gaogang, Zhang Dafang. Efficient Name Lookup Method Based on Hybrid Counting Bloom Filters[J]. Journal of Computer Research and Development, 2023, 60(5): 1136-1150. CSTR: 32373.14.issn1000-1239.202111242
Citation: Xu Ke, Li Yanbiao, Xie Gaogang, Zhang Dafang. Efficient Name Lookup Method Based on Hybrid Counting Bloom Filters[J]. Journal of Computer Research and Development, 2023, 60(5): 1136-1150. CSTR: 32373.14.issn1000-1239.202111242

基于混合计数布隆过滤器的高效数据名查找方法

基金项目: 国家自然科学基金项目(62072430, 61976087)
详细信息
    作者简介:

    许可: 1992年生. 硕士. 主要研究方向为网络系统、在网计算和数据包计算

    李彦彪: 1986年生. 博士. 主要研究方向为网络系统、数据包处理算法、路由安全

    谢高岗: 1974年生. 博士,研究员. 主要研究方向为网络体系结构、数据包处理和转发、网络测量

    张大方: 1959年生. 博士,教授. 主要研究方向为可信网络与系统、网络信息安全、下一代互联网

    通讯作者:

    张大方(dfzhang@hnu.edu.cn

  • 中图分类号: TP393

Efficient Name Lookup Method Based on Hybrid Counting Bloom Filters

Funds: This work was supported by the National Natural Science Foundation of China (62072430, 61976087).
More Information
    Author Bio:

    Xu Ke: born in 1992. Master. His main research interests include network system, in-network computation, and data packet computation

    Li Yanbiao: born in 1986. PhD. His main research interests include network system, data packet processing algorithms, and routing security

    Xie Gaogang: born in 1974. PhD, professor. His main research interests include Internet architecture, data packet processing and forwarding, and Internet measurement

    Zhang Dafang: born in 1959. PhD, professor. His main research interests include reliable network and system, information security of networking, and next generation of Internet

  • 摘要:

    数据名查找是信息中心网络、内容分发网络、5G核心网中基础功能组件的关键操作,需要面向大规模规则表进行最长前缀匹配,在查找速度、更新开销和存储开销等方面面临严峻挑战. 首先设计了混合计数布隆过滤器(HyCBF),将数据名前缀和前缀标记维护在同一个计数布隆过滤器中同时保持二者的逻辑独立性.这样可在不增加额外存储开销和时间开销的情况下提供更丰富的指示信息. 基于此,提出HyCBF辅助的二分数据名查找(HyBS)方法以实现高效查找. 进一步,为缓解二分查找过程中因回溯导致的性能损失,为HyCBF中每个条目关联一个特征比特位图以降低其假阳性率. 实验表明,HyBS相比现有方法在查找性能和更新速度方面具有明显优势,存储效率也有一定提升. 此外,将HyBS集成到向量化数据包处理(VPP)框架中进行系统性能评估,结果表明HyBS可用于构建高通量可扩展的数据名查找引擎.

    Abstract:

    Name lookup is a key operation in fundamental building blocks of information-centric networking, content delivery network, as well as the user plane function of 5G core network. It is required to deal with the longest prefix matching with a large-scale rule table, and thus confronts with serious challenges on lookup speed, update overhead and memory cost. In this paper, we design the hybrid counting Bloom filter (HyCBF) that maintains name prefixes and prefix markers within a single counting Bloom filter, while keeping them logically separated. This offers more guidance information without additional memory cost and time overhead. On this basis, we propose a HyCBF-assisted binary search (HyBS) scheme for efficient name lookup. Further, to mitigate the performance loss caused by backtracking operation during the binary search, we associate each unit of the HyCBF with a feature bitmap so as to reduce its false positive rate. Our extensive evaluations show that HyBS outperforms the state-of-the-art approaches in terms of lookup performance, update speed, as well as memory efficiency. In addition, we integrate HyBS into the vector packet processing (VPP) platform to evaluate its performance in terms of system implementation. The experimental results clearly demonstrate their potential to build a high throughput and scalable name lookup engine.

  • 随着嵌入式技术的发展,云计算、边缘计算等复杂计算场景对芯片的性能要求越来越高. 为了满足该应用需求,异构多核在现代计算机系统得到迅速发展. 然而,向大规模异构平台迁移非常困难. 软件层面的原因主要是大规模的、必要的程序并行导致软件调度的复杂度,即使在同构平台下这依然是大量学者致力研究的一个热点问题.

    本文首次针对有向无环图(directed acyclic graph, DAG)并行任务模型在异构平台上进行全局固定优先级限制性可抢占的可调度性分析,所提到的异构平台由多个不同类型的处理器组成(每个类别的处理器个数大于等于1). 由于异构融合的体系结构,多种不同类型的处理器集成在同一硬件,且并行软件中某些程序片段只能在特定的处理器执行. 因此,DAG任务的某些结点可以绑定到特定的一类处理器上执行. 而绑定处理器的操作,在一些主流的并行处理程序和操作系统都有对应的指令,例如:在OpenMP中可以通过proc_bind实现线程的绑定[1];在OpenCL中,通过clCreatCommand可以针对特定设备创建一组命令[2];在CUDA中,可以通过cudaSetDevise实现指令到目标设备的绑定[3]. 而对任务的如此处理可以避免任务在不同速率的处理器上迁移,减少实现难度和不必要的迁移开销. 下文中,我们称绑定处理器的DAG任务为分类DAG任务.

    在经典的调度策略中,一般忽略了任务抢占和迁移的开销. 然而,可抢占调度中频繁发生的抢占所造成的开销往往比不可抢占调度高很多,需要高度重视. 尤其在异构多核体系结构中,GPU中执行的任务片段是不可抢占的,因此一些实时系统的任务存在不可抢占域(即任务执行的某个片段不允许被抢占). 因此,限制性可抢占的研究对于实时系统的任务执行是至关重要的.

    关于分类DAG任务集的调度问题,难点主要存在2方面:1)DAG任务内部不同结点的互相影响;2)不同DAG任务结点间的互相影响. 尤其是限制性可抢占导致优先级翻转,即低优先级任务会对高优先级任务结点的执行造成阻塞. 因此,分类DAG的某个结点的执行会受到自身其他结点的干涉、高优先级任务的干涉以及低优先级任务的阻塞. 其中,自身结点的干涉已经在早期工作[4]中解决. 本文重点解决高优先级任务的干涉、低优先级任务的阻塞的分析问题以及分类DAG的最差响应时间(worst case response time,WCRT)分析,主要创新点包括3个层面:

    1)由于分类导致DAG任务的关键路径(得到WCRT的路径)不确定[4],从而增加高优先级任务干涉分析的难度. 结合经典的同构DAG理论和分类DAG的特点,本文提出了分类DAG高优先级分析方法.

    2)解决了分类DAG限制性可抢占导致的优先级翻转问题. 本文将同构DAG的低优先级任务分析方法和分类DAG相结合,提出了分类DAG的低优先级任务阻塞的分析方法.

    3)采用文献[4]的路径抽象方法并结合高、低优先级任务的分析,提出了分类DAG任务集的WCRT分析方法. 由于高、低优先级任务干涉计算的引入,本文对文献[4]路径抽象规则进行了创新.

    在嵌入式实时系统中,某些任务的执行只能在规定的地方被抢占. 考虑到完全可抢占和完全不可抢占的优缺点,限制性可抢占的研究非常重要. 近年来关于这方面的研究也较突出. 如:文献[5]的工作针对多核全局最早截止期优先限制性可抢占任务做出了分析;文献[6-7]对非并行任务在全局调度策略下进行了响应时间分析;文献[8]针对多核并行任务的限制性可抢占问题进行了分析,并根据抢占策略的不同提出了对应的分析方法并进行了比较;文献[9]针对DAG的限制性可抢占问题进行了研究,特别是针对低优先级任务的阻塞在效率和精确度的不同上提出了不同的分析策略. 然而,限制性可抢占的研究工作还未考虑到资源的限制性. 随着异构体系结构的发展,资源限制性是必须要考虑和解决的问题.

    资源限制性问题的研究曾经非常热门,也取得了一些研究成果,基于当时的条件这些成果考虑的任务模型相对简单. 例如文献[10-13]考虑的问题是2种处理器集合分配给2个任务,并且一个处理器集合是另一个集合的子集等,相关研究总结在综述类文献[14-15]. 可以发现,现有研究的问题和本文提出的分类DAG任务的可调度性问题存在差异. 针对分类DAG任务的可调度性研究,可查阅的文献较少,Han等人在文献[4]中提出单个分类DAG的响应时间分析,该文分析了单DAG分类任务可调度性,并提出了基于路径抽象的方法进行可调度性分析. 基于此研究以及并行任务分析和响应时间分析的经典理论[16-18],Han等人提出了基于联合策略的可调度性分析[19]和全局固定优先级可调度性分析[20]. 文献[21]提出的工作和本文的任务模型接近,该工作是基于分解策略提出的点到点(即计算路径中每个点的WCRT)的调度分析方法,然而该方法并未考虑资源限制的问题. 就单个分类DAG任务而言,文献[4]进行了算法对比,对比实验结果显示文献[21]算法比文献[4]算法明显消极.

    本文的主要工作是基于文献[4]的理论基础,提出基于全局固定优先级的限制性可抢占调度策略的分类DAG任务的可调度性分析方法. 分类导致DAG任务的关键路径不确定,从而增加高、低优先级任务的分析难度. 本文将DAG分析的理论(基于路径的分析)和分类DAG任务相结合,成功解决了该难题. 最后,基于文献[4]的路径抽象算法,更新路径抽象规则,进行任务集的可调度性判定.

    本文对由N个分类DAG任务组成的任务集G={G1,G2,,GN}进行可调度性分析,该任务集执行的系统由不同种类的核组成. S是核类别的集合,对于每种类型sS具有MsMs1)个核用于调度. 分类DAG任务Gi=(Vi,Ei,C,γi,Ti,Di),该元组中各个符号的定义为:

    1)Vi 表示Gi所有结点的集合,结点vjiVi,1jniniGi的结点数;

    2)Ei表示Gi所有边的集合,结点(u,v)Ei,v,uVi

    3)C表示Gi每个结点最差执行时间 (worst case execution time, WCET)的函数,C(vji)表示结点vji的WCET;

    4)γi 表示Gi每个结点类型的集合,γji表示结点vji的类型;

    5)Ti 表示Gi相邻2个实例的最小释放时间间隔;

    6)Di 表示Gi的相对截止期,即Gi在时间点ri释放一个任务实例,必须在ri+Di内完成该任务实例的执行.

    如果存在边(u,v)Eiuv的直接前继结点,而vu的直接后继结点;如果存在从uv的路径,uv的祖先结点,而vu的子孙结点. 本文用pre(vji),suc(vji),ans(vji)des(vji)分别表示结点vji的前继结点集合、后继结点集合、祖先结点集合以及子孙结点集合. 对于每个DAG任务,都假设其只有1个源结点和1个结束结点. 如果任务Gi具有多个源结点和多个结束结点,可以通过给Gi增加虚拟源结点(结点的WCET为0)和虚拟结点到Gi的原源结点的有向边,使其变成单源结点. 用相同的方法使Gi变成单结束结点的任务. πi={v1i,v2i,,vki}Gi的一条路径,如果路径πiv1i是源结点且vki是结束结点,则πi是一条完整的路径. 由于任务是按照类别进行执行的,需要对每个任务的WCET之和进行标记,具体为:

    1)vol(Gi)=1jniC(vji),表示任务Gi所有结点的WCET之和;

    2)vols(Gi)=1jniγji=sC(vji),表示任务Gi所有类别为s的结点的WCET之和;

    3)len(πi)=vjiπiC(vji) 表示路径πi上的所有结点的WCET之和,即路径πi的长度;

    4)len(Gi)=maxπiGilen(πi) 表示任务Gi的最长路径.

    例1. 异构DAG并行任务模型如图1所示,任务执行在具有2种类别的处理器平台,白色圈表示类别1,灰色圈表示类别2,结点旁的数值表示任务的WCET.

    图  1  分类DAG任务G1的示意图
    Figure  1.  Illustration of typed DAG task G1

    本文中任务采用全局固定优先级限制性可抢占策略进行调度. 任务按照优先级顺序排列,即如果i<j,则Gi的优先级比Gj高. 限制性可抢占是指任务的结点一旦开始执行,其执行不会被高优先级任务抢占.

    本文将提出一种过量估计方法分析每个任务的WCRT上界,从而保证任务执行的安全性. 其中,任务Gi的WCRT上界表示为Ri.

    本节将针对任务集G={G1,G2,,GN}进行可调度性分析,并假设Gk是被分析任务,k=1,2,,N.

    DAG任务WCRT上界分析方法多基于关键路径. 同构平台下,最长路径即为关键路径[18]. 然而,这一结论已经不适用于分类DAG[4],最长路径分析方法得到的WCRT上界并不安全,增大了分类DAG的分析难度. 分类DAG任务进行可调度性分析需要解决2个问题:1)如何确定关键路径;2)已知关键路径,如何进行响应时间分析. 为了确保分析方法的安全可靠,解决问题1)最简单的方法是枚举所有路径,后面会介绍如何解决枚举问题. 针对问题2),本文基于路径进行解决. 首先,假设Gk的关键路径是πkπk={v1k,v2k,,vkk}.

    路径πk的执行受到3种不同类型的干扰:第1种,任务内干涉Intra(πk);第2种,其他高优先级任务的干涉;第3种,低优先级任务的阻塞.

    由文献[4]的结论可知,路径πk受到的任务内干涉定义为与πk结点并行且实际干涉πk上结点执行的同类结点工作量之和与对应的处理器个数的比值,即

    Intra(πk)=sγkvjkivs(πk,s)C(vjk)Ms, (1)

    其中ivs(πk,s)在文献[4]中定义为路径πk实际受到的任务内干涉.

    根据文献[9]可知,路径πk受到的任务间干涉为路径上所有类别的高优先级任务的工作量加上低优先级任务的阻塞量之和与处理器个数总和的比值,即

    Inter(πk)=sγkWs(πk)+Bs(πk)Ms, (2)

    其中,Ws(πk)表示高优先级任务产生的工作量之和的上界,Bs(πk)表示低优先级任务产生的工作量之和的上界. 根据式(1)(2),可以得到如下结论:

    引理1. 路径πk={v1k,v2k,,vkk}Gk的一条完整路径,其WCRT上界

    R(πk)=len(πk)+Intra(πk)+Inter(πk). (3)

    证明. 根据文献[918],引理可证.证毕.

    关键问题是如何计算Inter(πk).Inter(πk)包括2个部分,即高优先级任务的干涉和低优先级任务的阻塞,下面将对这2个部分产生的工作量上界进行分析.

    对于高优先级任务的干涉量计算,首先要确定在某个时间窗口里高优先级任务能够产生的每个类别的工作量上界. 在时间长度为x的窗口内,高优先级任务Gi产生的工作量上界表示为Wi(x),产生类别为s的工作量上界表示为Wsi(x)Wsi(x)计算过程详见引理2.

    引理2. 在长度为x的时间窗口内,高优先级任务Gi能够产生的类别为s的工作量上界为

    Wsi(x)=(xvols(Gi)/MsTi+1)×vols(Gi)+α, (4)

    其中 α=min(vols(Gi),max(0,Ms×((xvols(Gi)Ms)modTi(TiRi)))).

    证明. 引理2能够得到证明基于2个层面的假设:

    1) 当carry-in实例(该实例在窗口之前释放,在窗口内完成)和carry-out实例(该实例在窗口内释放,截止期在窗口外)的s类别的工作量平均分布在所有s类核上时(如图2所示),可以得到s类别的工作量上界.

    图  2  Gix窗口内产生最大工作量的最坏情况
    Figure  2.  worst-case scenario to maximum workload in x of Gi

    2) 假设carry-out实例全部带入,可以得到高优先级任务的工作量上界,该假设基于假设1).

    首先,证明假设1)的正确性. 该假设忽略任务的内部结构,单纯考虑长度为x的时间窗口内能够产生的工作量的最大情况. 采用反证法,如果vols(Gi)的工作量分布在 Ms个核且Ms<Ms,根据式(4),该设想显然不能增加窗口内的工作量,因此假设1)成立.

    假设2)的证明依然采用反证法,假设carry-out带入的减少即窗口向左滑动ε=δ×vols(Gi)/Ms的长度,0<δ<1. 窗口向左滑动,会导致左边carry-in实例长度的增加,即carry-in实例在窗口内增加ε的长度. 而carry-in和carry-out实例s类的工作量是均匀分布在所有核上,所以最终的工作量总和不会发生改变,即假设2)成立. 接下来证明式(4)计算的正确性.

    图2中,x的时间窗口的组成包括:长度为vols(Gi)/Ms的carry-out实例、body实例(释放和截止期都在窗口内的实例)个数的周期长度以及carry-in实例长度. 而body实例数量的上界为

    xvols(Gi)/MsTi.

    x窗口还有carry-in的组成部分. 而carry-in的长度可由α计算. 根据图2,carry-in长度不大于vols(Gi)/Ms.

    综上,引理2得证.证毕.

    根据引理2,在长度为x的时间窗口内,所有高优先级任务Gi产生的s类别的工作量上界为

    Ws(x)=i<kWsi(x). (5)

    限制性可抢占导致优先级翻转的问题,即低优先级任务会阻塞高优先级任务的执行. 当路径πk上的某个结点vik可以执行时,即所有前继结点完成执行,而处理器被低优先级任务占用,从而造成对该结点的阻塞. 被低优先级任务占用的处理器个数为1~Ms(少于Ms个是因为处理器被高优先级任务或者前继结点占用),最坏情况要结合vik的情况进行讨论.

    如果i=1即该结点是源结点,最多有Ms个低优先级任务的结点阻塞其执行. 如果1<ini,分成2种情况进行讨论:

    1)γi1k=s,则最多有Ms1个低先级任务的结点阻塞其执行. 因为只有Ms1个低优先级任务的结点和vi1k结点并行执行且未执行完造成对vik的阻塞,如图3所示.

    图  3  γi1k=s时的情况
    Figure  3.  Scenario for γi1k=s

    2)γi1ks,则最多有Ms个低优先级任务的结点阻塞其执行. 因为前继结点的执行不占用s类别的核,因此vik可以执行时最多有Ms个低优先级任务的结点未完成执行,如图4所示.

    图  4  γi1ks时的情况
    Figure  4.  Scenario for γi1ks

    ΔMskΔMs1k分别表示最大的Ms个和Ms1个不可抢占低优先级结点的工作量之和,即

    ΔMsk=MsmaxGi>k(Msmax1jnjC(vji)), (6)
    ΔMs1k=Ms1maxGi>k(Ms1max1jnjC(vji)). (7)

    其中:Gi>k表示所有的低优先级任务;MsmaxGi>kMs1maxGi>k分别表示所有的低优先级任务中的 Ms个和Ms1个最大的不可抢占结点的工作量之和;而Msmax1jnjMs1max1jnj分别表示GiMs个和Ms1个最大的不可抢占结点的工作量之和. 式(6)(7)分别计算了所有低优先级任务中最大的Ms个和Ms1个最大的不可抢占结点的工作量之和,如此定义是因为最大的结点来自于不同的任务.

    综上,被分析路径上的某个结点阻塞量的计算总结见引理3.

    引理3. 结点vik是路径πk={v1k,v2k,,vkk}上的第i个结点,其类别为γik=s,则它的阻塞量上界为

    Θs(πk,vik)={ΔMsk,i=1i1γi1ks.ΔMs1k,i1γi1k=s. (8)

    证明. 根据式(6)(7),引理3得证.

    证毕.

    路径πk={v1k,v2k,,vkk}s类的阻塞量之和

    Bs(πk)=vikπkγik=sΘs(πk,vik). (9)

    基于文献[4]提出的路径抽象算法,进行响应时间分析.

    算法基本思路:对于结点vik,每条经过它的路径均可用一个元组表示vik,Δ(πk,vik),R(πk,vik),其中Δ(πk,vik)用来记录路径上计算过的并行结点(任务内干涉),R(πk,vik)表示该路径上的结点vik的响应时间. 经过vik的每条路径都有一个元组与之对应,同样的元组可以被合并成为一个,不同的2个元组如果符合一定的条件可以被其中一个元组替换. 替换的基本原则是被替换掉的元组不会导致比替换它的元组更大的WCRT上界. 经过元组的合并和替换操作过滤掉不必要的元组,达到减少路径的目的. 对DAG任务中的每个结点进行相同操作,直至最终结点. 最终结点上所有元组中最大的R(πk,vik)即为任务Gk的WCRT上界.

    接下来,对Δ(πk,vik), R(πk,vik)和替换规则进行定义.

    定义1[4]. 对于Gk的一条路径πk={v1k,v2k,,vkk}Δ(πk,vik)定义为距离路径上结点vik最近的所有类别结点的集合,即

    Δ(πk,vik)={δ(πk,vik,s)|sγk}, (10)

    其中

    δ(πk,vik,s)={c(vi),s=γik,,sγiki=1,δ(πk,vik,s),sγik1<ik.

    定义2. 路径πk={v1k,v2k,,vkk}中从源结点开始到vik的所有类型的集合,定义为

    γ(πk,vik)=1jiγjk. (11)

    显然,vik为结束结点时γ(πk,vik)表示整条路径的类型集合. 本文采用len(πk,vik)表示从源结点到vik的路径长度,即

    len(πk,vik)=1jiC(vjk). (12)

    从源结点到vik的所有s类别阻塞量之和为

    Bs(πk,vik)=1jiγjk=sΘs(πk,vjk). (13)

    定义3. 对于Gk的一条路径πk={v1k,v2k,,vkk}R(πk,vik)定义为

    R(πk,vik)=L(πk,vik)+sγ(πk,vik)Ws(len(πk,vik))+Bs(πk,vik)Ms, (14)

    其中L(πk,vik)定义为

    L(πk,vik)={C(v1k),i=1,L(πk,vi1k)+C(vik)+vϕ(πk,vik)C(v)Ms,2ik. (15)

    vϕ(πk,vik)C(v)Ms是文献[4]中关于任务内关涉的计算,与元组的抽象息息相关. 其中,重要计算参数定义为

    ϕ(πk,vik)=par(vik)par(δ(πk,vi1k,γ(vik))),
    par(vik)={v|vVkvans(vik)vdes(vik)}.

    由于其他任务干涉的增加,导致文献[4]算法中元组替换的规则不再适用,需要增加新的替换规则满足增加的其他任务干涉的分析,具体见引理4.

    引理4. 当任务Gk的2个路径π1k和路径π2k汇聚在vik结点时,2条路径分别由元组vik,Δ(π1k,vik),R(π1k,vik)vik,Δ(π2k,vik),R(π2k,vik)表示,前者为元组1,后者为元组2. 当元组1和元组2满足条件1)~3)时,元组2可以被元组1替换.

    1) γ(π1k,vik)=γ(π2k,vik)

    2) R(π1k,vik)R(π2k,vik)

    3) 对于任意类型s,条件①②必须成立:

    δ(π1k,vik,s)=⊥

    (δ(π1k,vik,s)≠⊥)(δ(π2k,vik,s)≠⊥)   (par(δ(π1k,vik,s)))(des(δ(π2k,vik,s)))=

    证明. 替换规则2)和3)已经在文献[4]中证明. 本文只需证明规则1)的必要性. 采用反证法,如果规则1)不成立,则以下2种情况之一成立:

    1)γ(π1k,vik)γ(π2k,vik). 设路径1和路径2经过结点vik, γ(π1k,vik)={s1,s2}γ(π2k,vik)={s1,s2,s3}. 在vik到结束结点的搜索过程中,2条路径都不会再增加新的类别. 路径长度在增大,而高优先级任务干涉的计算是非递减的,从而造成s3类别的高优先级任务造成的干涉逐渐增大. 因此路径2不能被替换.

    2)γ(π1k,vik)γ(π2k,vik). 设路径1和路径2经过结点vik,到达后继结点vi+1k.γi+1k=ssγ(π1k,vik)γ(π2k,vik),即到达结点vi+1k路径2会增加1个新的类别s,从而导致在结点vi+1k路径2增加的高优先级任务干涉比路径1增加得多,因此路径2不能被替换.

    证毕.

    最终,本文提出的分析方法综合为算法1,来判定任务集的可调度性.

    算法1. 任务集可调度性分析算法.

    输入:任务集G,处理器池M={Ms|sS}

    输出:是否可以被调度.

    LimitedPreSchedulingG,M);

    ② for each task Gk in G

    ③  TS={v1k,{v1k},C(v1k)}

    /* 从任务Gk的源结点开始更新元组集合*/

    ④  while(v,Δ,RTS;vvsnk) do

    /*针对元组中的每个元组进行下面的计算*/

    ⑤   for each vsuc(v) do

    /* 从结点v搜索至结点v*/

    ⑥   基于v,Δ,R和式(14)计算v,Δ,R

    ⑦    if (v,Δ,RTS or v,Δ,R

    根据代替规则可代替v,Δ,R

    ⑧     TS=TS{v,Δ,R}

    ⑨    end if

    ⑩   end for

    ⑪   TS=TS{v,Δ,R}

    ⑫  end while

    ⑬  for each v,Δ,RTS do

    /* 结束结点vsnk所有元组中具有最大R

    即为任务Gk的WCRT上界*/

    ⑭   Rtmp={Rv,Δ,R}

    ⑮   Rk=max(Rtmp)

    ⑯  end for

    ⑰  if Rk>Dk

    ⑱   return不可调度的;

    ⑲  end if

    ⑳ end for

    ㉑ return可调度的.

    算法1针对任务集中的每个任务进行路径抽象,计算其WCRT上界. 算法1的行③~⑫是针对每个任务Gk,从源结点开始搜索至结束结点,针对每个结点基于其前继结点的元组进行该结点的元组计算,计算出新的元组进行元组合并和替换操作,直至结束结点. 结束结点所有元组中最大的R即为Gk的WCRT上界(行⑬~⑯). 如果Rk>Dk说明该任务不可调度,直接结束计算返回整个任务集不可被调度;否则,继续分析下一个任务. 如果最后1个任务被分析完,且满足截止期的要求则整个任务集可被调度(行⑰~㉑).

    基于文献[4],算法1对DAG任务每个结点的响应时间分析时增加了其他任务的干涉计算. 在算法1过程中增加了新的合并和替换规则以保证最终计算的安全性.

    定理1. 任务集G是否可以被调度,可以由算法1来判定.

    证明. 综合理论和算法1的伪代码分析,定理1得证.证毕.

    本文采用仿真实验,分别从算法的准确性和效率层面进行算法的验证. 对任务集的可调度性产生影响的参数包括:任务集利用率、处理器个数、任务集内任务个数、结点个数、类别数以及每个任务的并行度. 首先,对这些参数设置一组默认参数,然后基于该默认参数进行对应参数实验变化的验证实验. 异构平台相关的实验数据基于OpenAMP[22]项目支持的硬件平台作为基础数据,对类别数和每种类别核数量的范围进行适当地增大,观察这2组参数对算法性能的影响. 而任务集的默认参数则结合实际情况和其他DAG任务集的相关参数进行设置. 默认参数设置为:

    1)异构平台上核类别的数量在[2,15]随机生成,每个类别核的数量Ms在[2,10]随机生成;每个类别s的利用率在[1,Ms/3]的范围内随机生成;

    2)任务集中,任务的数量在[2,20]的范围内随机生成;

    3)用UUnifast方法[23]为每个任务的s类别分配利用率;

    4)对于每一个任务,周期在[100,1000]之内随机生成,默认每个任务的相对截止期等于周期;

    5)每次随机选取1000个任务集分析平均性能.

    对单个任务的参数进行设置,主要依据文献[4],具体参数设置为:

    1)每个DAG任务的任务结构采用文献[24]提出的方法生成. 任务的结点数在[15,30]的范围内随机生成;任意2个结点之间是否生成边,需要随机选定;假设选定为增加该边,需进一步判定,即增加该边后并行度Pr的值满足要求,则增加边,否则不增加;Pr值在[0,1]之间随机选择,注意Pr值越大说明并行度越低,Pr值为1则所有结点为串行.

    2)采用UUnifast方法将已分配的利用率分配给每个结点,注意利用率是按类别分配的,结点的WCET值等于分配的利用率与周期的乘积.

    算法的正确性采用接受率进行验证,接受率定义为可以被调度的任务集占所有被测试的任务集的比率. 图5(a)~(f)展示的是各个参数下的接受率. 其中,图5(a) ~ (d)是整个任务集参数对接受率的影响,图5(e) ~ (f)是单个任务中重要参数对接受率的影响. 图5(a)中,因为利用率增大,而每个类别的处理器个数不变,使得接受率逐渐下降;图5(b)中,由于利用率固定,每个类别的处理器个数增加,从而导致接受率逐渐提升;图5(c)表明,其他参数不变的情况下,任务集中任务个数越多任务越难以调度;图5(d)表明,类别越多,相同利用率下分给每个类别的利用率就会减少,而类别的增加也会导致处理器个数增加,从而使得接受率提升;图5(e)表明,单个任务内部结点个数对接受率的影响不显著;图5(f)表明,单个任务内部并行度越高(Pr值越低)接受率越高,这是因为并行度大则并行执行的可能性增大,从而提高接受率. 综上分析,实验数据符合各参数的性质和对实际任务可调度性的影响.

    图  5  各种参数下的任务接受率
    Figure  5.  Acceptance ratio of tasks under different parameters

    图6(a) ~ (f)是对应接受率实验的各个参数下的效率实验. 其中,效率趋势中的每个点是所有1000个参加测试的任务集的平均分析时间. 注意,该时间随着分析设备硬件性能的不同会有所不同,其变化趋势可以表明与相关参数的关联性. 同样地,图6(a) ~ (d)为与任务集相关的参数,而图6(e)(f)是和单个任务相关的参数. 图6(a)(b)(d)中时间效率的变化趋势分别和图5(a)(b)(d)类似,这是因为接受率低,说明不可调度的任务集增多,在第1次出现不可调度任务时停止对任务集的分析从而出现平均分析时间下降的现象. 图6(c)的实验结果为时间效率先升高后降低. 图6(c)升高趋势的原因是当任务集接受率差不多时,任务集中任务个数增多,导致平均分析时间变长;图6(c)降低趋势的原因是由于接受率降低太多. 图6(e)中曲线变化表明,时间效率对任务内的结点个数是敏感的,当任务内的结点数增多时,时间效率呈增长趋势,且增长速度非常大. 图6(f)中时间效率变化趋势类似于图6(c),即先增后降,当任务集都可调度时任务分析时间随并行度下降而升高,当并行度降低到一定程度时接受率下降过多,导致任务集大量开始不可调度,从而导致平均分析时间下降.

    图  6  各种参数下的效率
    Figure  6.  Efficiency under different parameters

    实验结果表明,本文提出的算法具有很好的接受率且任务的平均分析时间在嵌入式实时系统离线分析时间的可接受范围内,各个参数实验数据均符合实验预期.

    本文针对异构平台上任务执行进行资源限制即规定任务只能执行在某一类处理器上这一特殊模型,进行了基于全局固定优先级限制性可抢占调度策略的可调度性分析. 首先,提出了整体的分析思路;然后,针对高优先级任务的干涉和低优先级任务的阻塞进行了分析;最后,结合最新的异构模型提出了一个整体的分析方法. 实验结果表明,本文提出的算法性能良好,能够在有效时间内完成任务的分析,且任务的可调度性和各个参数的关系符合实验预期.

    作者贡献声明:韩美灵提出了算法思路并撰写论文;孙施宁负责实现算法并设计了相关实验方案;邓庆绪提出研究思路并指导修改论文.

  • 图  1   因布隆过滤器假阳性导致的回溯

    Figure  1.   Backtrack caused by the false positive of Bloom filter

    图  2   HyBS二分搜索整体架构

    Figure  2.   The overall binary search architecture of HyBS

    图  3   混合计数布隆过滤器结构

    Figure  3.   Structure of HyCBF

    图  4   特征比特位图

    Figure  4.   The feature bitmap

    图  5   特征比特位图的实现

    Figure  5.   The implementation of feature bitmap

    图  6   二分搜索树单节点处理过程

    Figure  6.   Process of single node in BST

    图  7   “自底向上” 更新

    Figure  7.   The "bottom to up" update

    图  8   VPP中的HyBS系统实现

    Figure  8.   The system implementation of HyBS in VPP

    图  9   组预读策略

    Figure  9.   Group-prefetching strategy

    图  10   存储开销

    Figure  10.   Memory consumption

    图  11   组预读的影响

    Figure  11.   The effect of group-prefetching

    图  12   回溯次数

    Figure  12.   The amount of backtracks

    图  13   理想情况下的查找速度

    Figure  13.   The lookup speed on ideal case

    图  14   极端情况下的查找速度

    Figure  14.   The lookup speed on extreme case

    图  15   插入速度

    Figure  15.   The inserting speed

    图  16   删除速度

    Figure  16.   The removal speed

    图  17   VPP测试架构

    Figure  17.   The test architecture of VPP

    图  18   吞吐量和可扩展性

    Figure  18.   The throughput and scalability

    表  1   不同规则集中的规则数量

    Table  1   Number of Rules of Different Rule Sets

    规则集编号规则数量
    050万
    1100万
    2150万
    3200万
    4250万
    5300万
    下载: 导出CSV

    表  2   服务器的配置

    Table  2   Configuration of Servers

    配置项ServerIntelServerAMD
    CPU型号Xeon® Platinum 8160EPYC 7F52
    物理核数量48核32核
    主频/MHz21003500
    缓存大小/KB一级:64一级:64
    二级:1024二级:512
    三级:33792三级:16384
    被隔离核心编号24~4716~31
    内存大小/GB128256
    下载: 导出CSV
  • [1]

    Yang Tong, Xie Gaogang, Li Yanbiao, et al. Guarantee IP lookup performance with FIB explosion[C]//Proc of the 38th ACM Conf on SIGCOMM. New York: ACM, 2014: 39−50

    [2]

    Asai H, Ohara Y. Poptrie: A compressed trie with population count for fast and scalable software IP routing table lookup[J]. ACM SIGCOMM Computer Communication Review, 2015, 45(4): 57−70 doi: 10.1145/2829988.2787474

    [3]

    Huang Jhihyu, Wang Pichung. TCAM-based IP address lookup using longest suffix split[J]. IEEE/ACM Transactions on Networking, 2018, 26(2): 976−989 doi: 10.1109/TNET.2018.2815999

    [4]

    Zec M, Rizzo L, Mikuc M. DXR: Towards a billion routing lookups per second in software[J]. ACM SIGCOMM Computer Communication Review, 2012, 42(5): 29−36 doi: 10.1145/2378956.2378961

    [5]

    Eatherton W, Varghese G, Dittia Z. Tree bitmap: Hardware/software IP lookups with incremental updates[J]. ACM SIGCOMM Computer Communication Review, 2004, 34(2): 97−122 doi: 10.1145/997150.997160

    [6]

    Degermark M, Brodnik A, Carlsson S, et al. Small forwarding tables for fast routing lookups[J]. ACM SIGCOMM Computer Communication Review, 1997, 27(4): 3−14 doi: 10.1145/263109.263133

    [7]

    Waldvogel M, Varghese G, Turner J, et al. Scalable high speed IP routing lookups[C]//Proc of the 21st ACM Conf on SIGCOMM. New York: ACM, 1997: 25−36

    [8]

    Serhane O, Yahyaoui K, Nour B, et al. A survey of ICN content naming and in-network caching in 5G and beyond networks[J]. IEEE Internet of Things Journal, 2020, 8(6): 4081−4104

    [9]

    Li Jiawei, Luo Hongbin, Jin Mingshuang, et al. Solving selfish routing in route-by-name information-centric network architectures[C]//Proc of the 19th IEEE Global Communications Conf. Piscataway, NJ: IEEE, 2018: 386−392

    [10]

    Guan Yu, Huang Lemei, Zhang Xinggong, et al. Name-based routing with on-path name lookup in information-centric network[C]//Proc of the 24th IEEE Int Conf on Communications. Piscataway, NJ: IEEE, 2018: 1495−1500

    [11]

    Dilley J, Maggs B, Parikh J, et al. Globally distributed content delivery[J]. IEEE Internet Computing, 2002, 6(5): 50−58 doi: 10.1109/MIC.2002.1036038

    [12]

    Harahap E, Wijekoon J, Tennekoon R, et al. Router-based request redirection management for a next-generation content distribution network[C/OL]//Proc of the 3rd IEEE Globecom Workshops. Piscataway, NJ: IEEE, 2013[2021-11-10]. https://ieeexplore.ieee.org/abstract/document/6825123

    [13]

    Dong Lijun, Zhang Dan, Zhang Yanyong, et al. Performance evaluation of content based routing with in-network caching[C]//Proc of the 20th Annual Wireless and Optical Communications Conf. Piscataway, NJ: IEEE, 2011: 43−48

    [14]

    Abdallah H B H, Louati W. Ftree-CDN: Hybrid CDN and P2P architecture for efficient content distribution[C]//Proc of the 27th Euromicro Int Conf on Parallel, Distributed and Network-Based Processing. Piscataway, NJ: IEEE, 2019: 438−445

    [15]

    Wang Yi, Zu Yuan, Zhang Ting, et al. Wire speed name lookup: A GPU-based approach[C]//Proc of the 10th USENIX Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2013: 199−212

    [16]

    Li Dagang, Li Junmao, Zheng Du. An improved trie-based name lookup scheme for named data networking[C]//Proc of the 21st IEEE Symp on Computers and Communication. Piscataway, NJ: IEEE, 2016: 1294−1296

    [17]

    Wang Yi, Dai Huichen, Zhang Ting, et al. GPU-accelerated name lookup with component encoding[J]. Computer Networks, 2013, 57(16): 3165−3177 doi: 10.1016/j.comnet.2013.07.006

    [18]

    Song Tian, Yuan Haowei, Crowley P, et al. Scalable name-based packet forwarding: From millions to billions[C]//Proc of the 2nd ACM Conf on Information-Centric Networking. New York: ACM, 2015: 19−28

    [19]

    Ghasemi C, Yousefi H, Shin K G, et al. A fast and memory-efficient trie structure for name-based packet forwarding[C]//Proc of the 26th IEEE Int Conf on Network Protocols. Piscataway, NJ: IEEE, 2018: 302−312

    [20]

    Ghasemi C, Yousefi H, Shin K G, et al. On the granularity of TRIE-based data structures for name lookups and updates[J]. IEEE/ACM Transactions on Networking, 2019, 27(2): 777−789 doi: 10.1109/TNET.2019.2901487

    [21]

    Byun S H, Lee J, Sul D M, et al. Multi-worker NFD: An NFD-compatible high-speed NDN forwarder[C]//Proc of the 7th ACM Conf on Information-Centric Networking. New York: ACM, 2020: 166−168

    [22]

    Yuan Haowei, Crowley P. Reliably scalable name prefix lookup [C]//Proc of the 11th ACM/IEEE Symp on Architectures for Networking and Communications Systems. Piscataway, NJ: IEEE, 2015: 111−121

    [23]

    Wang Yi, Xu Boyang, Tai Dongzhe, et al. Fast name lookup for named data networking[C]//Proc of the 22nd IEEE Int Symp of Quality of Service. Piscataway, NJ: IEEE, 2014: 198−207

    [24]

    Yuan Haowei, Crowley P. Scalable pending interest table design: From principles to practice[C]//Proc of the 33rd IEEE Conf on Computer Communications. Piscataway, NJ: IEEE, 2014: 2049−2057

    [25]

    Dai Huichen, Lu Jianyuan, Wang Yi, et al. BFAST: High-speed and memory-efficient approach for NDN forwarding engine[J]. IEEE/ACM Transactions on Networking, 2016, 25(2): 1235−1248

    [26]

    Perino D, Varvello M, Linguaglossa L, et al. Caesar: A content router for high-speed forwarding on content names[C]//Proc of the 10th ACM/IEEE Symp on Architectures for Networking and Communications Systems. New York: ACM, 2014: 137−148

    [27]

    Wang Yi, Pan Tian, Mi Zhian, et al. Namefilter: Achieving fast name lookup with low memory cost via applying two-stage Bloom filters[C]//Proc of the 32nd IEEE Conf on Computer Communications. Piscataway, NJ: IEEE, 2013: 95−99

    [28]

    Quan Wei, Xu Changqiao, Vasilakos A V, et al. TB2F: Tree-bitmap and Bloom-filter for a scalable and efficient name lookup in content-centric networking[C]//Proc of the 14th IFIP Networking Conf. Piscataway, NJ: IEEE, 2014: 395−403

    [29]

    Huang Kun, Wang Zhaohua, Xie Gaogang. Scalable high-speed NDN name lookup[C]//Proc of the 14th Symp on Architectures for Networking and Communications Systems. New York: ACM, 2018: 55−65

    [30]

    He Dacheng, Zhang Dafang, Xu Ke, et al. A fast and memory-efficient approach to NDN name lookup[J]. China Communications, 2017, 14(10): 61−69 doi: 10.1109/CC.2017.8107632

    [31]

    Xu Ke, Zhang Dafang, Li Yanbiao. Longest name prefix match on multi-core processor[C]//Proc of the 21st IEEE Int Conf on High Performance Computing and Communications. Piscataway, NJ: IEEE, 2019: 1035−1042

    [32]

    Kirsch A, Mitzenmacher M. Less hashing, same performance: Building a better Bloom filter[C]//Proc of the 14th European Symp on Algorithms. Berlin: Springer, 2006: 456−467

    [33]

    Lu Jianyuan, Yang Tong, Wang Yi, et al. One-hashing Bloom filter[C]//Proc of the 23rd IEEE Int Symp on Quality of Service. Piscataway, NJ: IEEE, 2015: 289−298

    [34]

    Lu Jianyuan, Wan Ying, Li Yang, et al. Ultra-fast Bloom filters using SIMD techniques[J]. IEEE Transactions on Parallel and Distributed Systems, 2018, 30(4): 953−964

    [35]

    Bender M A, Farach-Colton M, Johnson R, et al. Don't thrash: How to cache your Hash on flash[J]. arXiv preprint, arXiv: 1208.0290, 2012

    [36]

    Dai Haipeng, Zhong Yuankun, Alex L, et al. Noisy Bloom filters for multi-set membership testing[C]//Proc of the 39th ACM Int Conf on Measurement and Modeling of Computer Science. New York: ACM, 2016: 139−151

    [37]

    Yang Tong, Alex L, Shahzad M, et al. A shifting framework for set queries[J]. IEEE/ACM Transactions on Networking, 2017, 25(5): 3116−3131 doi: 10.1109/TNET.2017.2730227

    [38]

    Pfaff B, Pettit J, Koponen T, et al. The design and implementation of open vSwitch[C]//Proc of the 12th Symp on Networked Systems Design and Implementation. Berkeley, CA: USENIX Association, 2015: 117−130

    [39]

    Barach D, Linguaglossa L, Marion D, et al. High-speed software data plane via vectorized packet processing[J]. IEEE Communications Magazine, 2018, 56(12): 97−103 doi: 10.1109/MCOM.2018.1800069

    [40] 马潇潇,杨帆,王展,等. 智能网卡综述[J]. 计算机研究与发展,2022,59(1):1−21 doi: 10.7544/issn1000-1239.20200629

    Ma Xiaoxiao, Yang Fan, Wang Zhan, et al. Survey on smart network interface card[J]. Journal of Computer Research and Development, 2022, 59(1): 1−21 (in Chinese) doi: 10.7544/issn1000-1239.20200629

    [41]

    Zhu Wenjun, Li Peng, Luo Baozhou, et al. Research and implementation of high performance traffic processing based on Intel DPDK[C]//Proc of the 9th Int Symp on Parallel Architectures, Algorithms and Programming. Piscataway, NJ: IEEE, 2018: 62−68

    [42]

    Reddit. Dataset of reddit posts and comments[EB/OL]. (2021-09-08)[2021-11-10]. https://www.reddit.com/r/datasets/comments/la0w4n/dataset_of_reddit_posts_and_comments/

    [43]

    Appleby A. MurmurHash[CP/OL]. (2011-03-01)[2021-11-10]. https://sites.google.com/site/murmurhash/

    [44]

    Lameter C. NUMA (non-uniform memory access) an overview: NUMA becomes more common because memory controllers get close to execution units on microprocessors[J]. Queue, 2013, 11(7): 40−51 doi: 10.1145/2508834.2513149

图(18)  /  表(2)
计量
  • 文章访问数:  183
  • HTML全文浏览量:  26
  • PDF下载量:  111
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-12-14
  • 修回日期:  2022-07-06
  • 网络出版日期:  2023-02-26
  • 刊出日期:  2023-04-30

目录

/

返回文章
返回