-
摘要:
图表示学习已成为图深度学习领域的一个研究热点. 大多数图神经网络存在过平滑现象,这类方法重点关注图节点特征,对图的结构特征关注度不高. 为了提升对图结构特征的表征能力,提出了一种基于图核同构网络的图分类方法,即KerGIN. 该方法首先通过图同构网络(graph isomorphism network,GIN)对图进行节点特征编码,并使用图核方法对图进行结构编码,进一步利用Nyström方法降低图核矩阵的维度. 其次借助MLP将图核矩阵与图特征矩阵对齐,通过注意力机制将图的特征编码和结构编码进行自适应加权融合,进而得到图的最终特征表示,提升了图结构特征信息的表达能力. 最后在7个公开的图分类数据集上对模型进行了实验评估:与现有图表示模型相比,KerGIN模型能够在图分类准确度上有较大幅度提升,它可以增强GIN对图结构特征信息的表达能力.
Abstract:Graph representation learning has become a research hotspot in the field of graph deep learning. Most graph neural networks suffer from oversmoothing, and these methods focus on graph node features and pay little attention to the structural features of graphs. In order to improve the representation of graph structural features, we propose a graph classification method based on graph kernel homomorphic network, namely KerGIN. The method first encodes the node features of the graph through graph isomorphism network(GIN), and then uses the graph kernel method to encode the graph structure. The Nyström method is further used to reduce the dimension of the graph kernel matrix. The graph kernel matrix is aligned with the graph feature matrix with the help of MLP, and the feature encoding and structure encoding of the graph are adaptively weighted and fused through the attention mechanism to obtain the final feature representation of the graph, which enhances the ability to express the structural feature information of the graph. Finally, the model is experimentally evaluated on seven publicly available graph classification datasets: compared with the existing graph representation models, KerGIN model is able to improve the graph classification accuracy substantially, and it can enhance the ability of GIN to represent the graph structural feature information.
-
随着嵌入式技术的发展,云计算、边缘计算等复杂计算场景对芯片的性能要求越来越高. 为了满足该应用需求,异构多核在现代计算机系统得到迅速发展. 然而,向大规模异构平台迁移非常困难. 软件层面的原因主要是大规模的、必要的程序并行导致软件调度的复杂度,即使在同构平台下这依然是大量学者致力研究的一个热点问题.
本文首次针对有向无环图(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]路径抽象规则进行了创新.
1. 相关工作
在嵌入式实时系统中,某些任务的执行只能在规定的地方被抢占. 考虑到完全可抢占和完全不可抢占的优缺点,限制性可抢占的研究非常重要. 近年来关于这方面的研究也较突出. 如:文献[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]的路径抽象算法,更新路径抽象规则,进行任务集的可调度性判定.
2. 任务模型
2.1 任务集模型的建立
本文对由N个分类DAG任务组成的任务集
G={G1,G2,…,GN} 进行可调度性分析,该任务集执行的系统由不同种类的核组成.S 是核类别的集合,对于每种类型s∈S 具有Ms (Ms≥1 )个核用于调度. 分类DAG任务Gi=(Vi,Ei,C,γi,Ti,Di) ,该元组中各个符号的定义为:1)
Vi 表示Gi 所有结点的集合,结点vji∈Vi,1≤j≤ni ,ni 为Gi 的结点数;2)
Ei 表示Gi 所有边的集合,结点(u,v)∈Ei,v,u∈Vi ;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)∈Ei ,u 是v 的直接前继结点,而v 是u 的直接后继结点;如果存在从u 到v 的路径,u 是v 的祖先结点,而v 是u 的子孙结点. 本文用pre(vji),suc(vji),ans(vji) 和des(vji) 分别表示结点vji 的前继结点集合、后继结点集合、祖先结点集合以及子孙结点集合. 对于每个DAG任务,都假设其只有1个源结点和1个结束结点. 如果任务Gi 具有多个源结点和多个结束结点,可以通过给Gi 增加虚拟源结点(结点的WCET为0)和虚拟结点到Gi 的原源结点的有向边,使其变成单源结点. 用相同的方法使Gi 变成单结束结点的任务.πi={v1i,v2i,…,vki} 是Gi 的一条路径,如果路径πi 的v1i 是源结点且vki 是结束结点,则πi 是一条完整的路径. 由于任务是按照类别进行执行的,需要对每个任务的WCET之和进行标记,具体为:1)
vol(Gi)=∑1≤j≤niC(vji) ,表示任务Gi 所有结点的WCET之和;2)
vols(Gi)=∑1≤j≤ni∧γji=sC(vji) ,表示任务Gi 所有类别为s的结点的WCET之和;3)
len(πi)=∑vji∈πiC(vji) 表示路径πi 上的所有结点的WCET之和,即路径πi 的长度;4)
len(Gi)=maxπi∈Gilen(πi) 表示任务Gi 的最长路径.例1. 异构DAG并行任务模型如图1所示,任务执行在具有2种类别的处理器平台,白色圈表示类别1,灰色圈表示类别2,结点旁的数值表示任务的WCET.
2.2 任务调度策略
本文中任务采用全局固定优先级限制性可抢占策略进行调度. 任务按照优先级顺序排列,即如果
i<j ,则Gi 的优先级比Gj 高. 限制性可抢占是指任务的结点一旦开始执行,其执行不会被高优先级任务抢占.本文将提出一种过量估计方法分析每个任务的WCRT上界,从而保证任务执行的安全性. 其中,任务
Gi 的WCRT上界表示为Ri .3. 调度算法分析
本节将针对任务集
G={G1,G2,…,GN} 进行可调度性分析,并假设Gk 是被分析任务,k=1,2,…,N .3.1 整体分析
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∈γk∑vjk∈ivs(πk,s)C(vjk)Ms, (1) 其中
ivs(πk,s) 在文献[4]中定义为路径πk 实际受到的任务内干涉.根据文献[9]可知,路径
πk 受到的任务间干涉为路径上所有类别的高优先级任务的工作量加上低优先级任务的阻塞量之和与处理器个数总和的比值,即Inter(πk)=∑s∈γk⌊Ws(π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) 关键问题是如何计算
Inter(πk).Inter(πk) 包括2个部分,即高优先级任务的干涉和低优先级任务的阻塞,下面将对这2个部分产生的工作量上界进行分析.3.2 高优先级干涉量分析
对于高优先级任务的干涉量计算,首先要确定在某个时间窗口里高优先级任务能够产生的每个类别的工作量上界. 在时间长度为
x 的窗口内,高优先级任务Gi 产生的工作量上界表示为Wi(x) ,产生类别为s 的工作量上界表示为Wsi(x),Wsi(x) 计算过程详见引理2.引理2. 在长度为
x 的时间窗口内,高优先级任务Gi 能够产生的类别为s 的工作量上界为Wsi(x)=(⌊x−vols(Gi)/MsTi⌋+1)×vols(Gi)+α, (4) 其中
α=min(vols(Gi),max(0,Ms×((x−vols(Gi)Ms)modTi− (Ti−Ri)))) .证明. 引理2能够得到证明基于2个层面的假设:
1) 当carry-in实例(该实例在窗口之前释放,在窗口内完成)和carry-out实例(该实例在窗口内释放,截止期在窗口外)的
s 类别的工作量平均分布在所有s 类核上时(如图2所示),可以得到s 类别的工作量上界.2) 假设carry-out实例全部带入,可以得到高优先级任务的工作量上界,该假设基于假设1).
首先,证明假设1)的正确性. 该假设忽略任务的内部结构,单纯考虑长度为
x 的时间窗口内能够产生的工作量的最大情况. 采用反证法,如果vols(Gi) 的工作量分布在M′s 个核且M′s<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实例数量的上界为⌊x−vols(Gi)/MsTi⌋. x窗口还有carry-in的组成部分. 而carry-in的长度可由
α 计算. 根据图2,carry-in长度不大于vols(Gi)/Ms .综上,引理2得证.证毕.
根据引理2,在长度为
x 的时间窗口内,所有高优先级任务Gi 产生的s 类别的工作量上界为Ws(x)=∑i<kWsi(x). (5) 3.3 低优先级阻塞分析
限制性可抢占导致优先级翻转的问题,即低优先级任务会阻塞高优先级任务的执行. 当路径
πk 上的某个结点vik 可以执行时,即所有前继结点完成执行,而处理器被低优先级任务占用,从而造成对该结点的阻塞. 被低优先级任务占用的处理器个数为1~Ms (少于Ms 个是因为处理器被高优先级任务或者前继结点占用),最坏情况要结合vik 的情况进行讨论.如果
i=1 即该结点是源结点,最多有Ms 个低优先级任务的结点阻塞其执行. 如果1<i≤ni ,分成2种情况进行讨论:1)
γi−1k=s ,则最多有Ms−1 个低先级任务的结点阻塞其执行. 因为只有Ms−1 个低优先级任务的结点和vi−1k 结点并行执行且未执行完造成对vik 的阻塞,如图3所示.2)
γi−1k≠s ,则最多有Ms 个低优先级任务的结点阻塞其执行. 因为前继结点的执行不占用s类别的核,因此vik 可以执行时最多有Ms 个低优先级任务的结点未完成执行,如图4所示.ΔMsk 和ΔMs−1k 分别表示最大的Ms 个和Ms−1 个不可抢占低优先级结点的工作量之和,即ΔMsk=∑MsmaxGi>k(Msmax1≤j≤njC(vji)), (6) ΔMs−1k=∑Ms−1maxGi>k(Ms−1max1≤j≤njC(vji)). (7) 其中:
Gi>k 表示所有的低优先级任务;MsmaxGi>k 和Ms−1maxGi>k 分别表示所有的低优先级任务中的Ms 个和Ms−1 个最大的不可抢占结点的工作量之和;而Msmax1≤j≤nj 和Ms−1max1≤j≤nj 分别表示Gi 的Ms 个和Ms−1 个最大的不可抢占结点的工作量之和. 式(6)(7)分别计算了所有低优先级任务中最大的Ms 个和Ms−1 个最大的不可抢占结点的工作量之和,如此定义是因为最大的结点来自于不同的任务.综上,被分析路径上的某个结点阻塞量的计算总结见引理3.
引理3. 结点
vik 是路径πk={v1k,v2k,…,vkk} 上的第i个结点,其类别为γik=s ,则它的阻塞量上界为Θs(πk,vik)={ΔMsk,i=1或i≠1∧γi−1k≠s.ΔMs−1k,i≠1∧γi−1k=s. (8) 证明. 根据式(6)(7),引理3得证.
证毕.
路径
πk={v1k,v2k,…,vkk} 的s类的阻塞量之和Bs(πk)=∑vik∈πk∧γik=sΘs(πk,vik). (9) 4. 分析过程
基于文献[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≠γik∧i=1,δ(πk,vik,s),s≠γik∧1<i≤k. 定义2. 路径
πk={v1k,v2k,…,vkk} 中从源结点开始到vik 的所有类型的集合,定义为γ(πk,vik)=∪1≤j≤iγjk. (11) 显然,
vik 为结束结点时γ(πk,vik) 表示整条路径的类型集合. 本文采用len(πk,vik) 表示从源结点到vik 的路径长度,即len(πk,vik)=∑1≤j≤iC(vjk). (12) 从源结点到
vik 的所有s类别阻塞量之和为Bs(πk,vik)=∑1≤j≤i∧γ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,vi−1k)+C(vik)+∑v∈ϕ(πk,vik)C(v)Ms,2≤i≤k. (15) ∑v∈ϕ(πk,vik)C(v)Ms 是文献[4]中关于任务内关涉的计算,与元组的抽象息息相关. 其中,重要计算参数定义为ϕ(πk,vik)=par(vik)∖par(δ(πk,vi−1k,γ(vik))), par(vik)={v|v∈Vk∧v∉ans(vik)∪v∉des(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=s 且s∈γ(π1k,vik)−γ(π2k,vik) ,即到达结点vi+1k 路径2会增加1个新的类别s ,从而导致在结点vi+1k 路径2增加的高优先级任务干涉比路径1增加得多,因此路径2不能被替换.证毕.
最终,本文提出的分析方法综合为算法1,来判定任务集的可调度性.
算法1. 任务集可调度性分析算法.
输入:任务集G,处理器池
M={Ms|s∈S} ;输出:是否可以被调度.
① LimitedPreScheduling(G,M);
② for each task
Gk in G③
TS={⟨v1k,{v1k},C(v1k)⟩} ;/* 从任务
Gk 的源结点开始更新元组集合*/④ while
(∃⟨v,Δ,R⟩∈TS;v≠vsnk) do/*针对元组中的每个元组进行下面的计算*/
⑤ for each
v′∈suc(v) do/* 从结点v搜索至结点
v′ */⑥ 基于
⟨v,Δ,R⟩ 和式(14)计算⟨v′,Δ′,R′⟩ ;⑦ if (
∄⟨v′,Δ′,R′⟩∈TS or⟨v∗,Δ∗,R∗⟩ 根据代替规则可代替
⟨v′,Δ′,R′⟩ )⑧
TS=TS∪{⟨v′,Δ′,R′⟩} ;⑨ end if
⑩ end for
⑪
TS=TS∖{⟨v,Δ,R⟩} ;⑫ end while
⑬ for each
⟨v,Δ,R⟩∈TS do/* 结束结点
vsnk 所有元组中具有最大R的即为任务
Gk 的WCRT上界*/⑭
Rtmp=∪{R∈⟨v,Δ,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得证.证毕.
5. 实 验
本文采用仿真实验,分别从算法的准确性和效率层面进行算法的验证. 对任务集的可调度性产生影响的参数包括:任务集利用率、处理器个数、任务集内任务个数、结点个数、类别数以及每个任务的并行度. 首先,对这些参数设置一组默认参数,然后基于该默认参数进行对应参数实验变化的验证实验. 异构平台相关的实验数据基于OpenAMP[22]项目支持的硬件平台作为基础数据,对类别数和每种类别核数量的范围进行适当地增大,观察这2组参数对算法性能的影响. 而任务集的默认参数则结合实际情况和其他DAG任务集的相关参数进行设置. 默认参数设置为:
1)异构平台上核类别的数量在[2,15]随机生成,每个类别核的数量
Ms 在[2,10]随机生成;每个类别s的利用率在[1,Ms/3] 的范围内随机生成;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值越低)接受率越高,这是因为并行度大则并行执行的可能性增大,从而提高接受率. 综上分析,实验数据符合各参数的性质和对实际任务可调度性的影响.
图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. 结 论
本文针对异构平台上任务执行进行资源限制即规定任务只能执行在某一类处理器上这一特殊模型,进行了基于全局固定优先级限制性可抢占调度策略的可调度性分析. 首先,提出了整体的分析思路;然后,针对高优先级任务的干涉和低优先级任务的阻塞进行了分析;最后,结合最新的异构模型提出了一个整体的分析方法. 实验结果表明,本文提出的算法性能良好,能够在有效时间内完成任务的分析,且任务的可调度性和各个参数的关系符合实验预期.
作者贡献声明:韩美灵提出了算法思路并撰写论文;孙施宁负责实现算法并设计了相关实验方案;邓庆绪提出研究思路并指导修改论文.
-
表 1 数据集的信息统计
Table 1 Information Statistic of Datasets
数据集 类型 图数量 平均
节点数平均
边数种类 节点
属性属性
维度MUTAG 化学分子 188 18 20 2 Disc. 1 PTC 化学分子 344 26 51 2 Disc. 1 PROTEINS 化学分子 1113 39 73 2 Disc. 1 NCI1 化学分子 4110 30 65 2 Disc. 1 IMDB-B 社交网络 1000 20 97 2 No 2 IMDB-M 社交网络 1500 13 66 3 No 3 COLLAB 社交网络 5000 74 2458 3 No 5 表 2 在各个公开数据集上的分类准确度
Table 2 Classification Accuracy on Each Public Dataset
% 方法 数据集 MUTAG PTC PROTEINS NCI1 IMDB-B IMDB-M COLLAB WL 90.4(8) 59.9(8) 75.0(9) 86.0(2) 73.8(7) 50.9(5) 78.9(5) DGK 82.6(11) 57.3(9) 71.6(10) 62.2(9) 66.9 (10) 44.5(7) 73.1(7) GIN 89.4(9) 64.6(6) 76.2(6) 82.7(4) 75.1(6) 52.3(4) 80.2(4) DCNN 67.0(12) 56.6(10) 61.3(11) 62.6(8) 49.1(9) 33.5(8) 52.1(9) PATCHY-SAN 92.6(6) 60.0(7) 75.9(7) 78.6(7) 71.0(8) 45.2(6) 72.6(8) SUGAR 96.7(1) 77.5(3) 81.3(3) 84.3(3) GCKN 91.6(7) 68.4(5) 76.2(6) 82.0(5) 76.5(5) 53.3(3) 82.9(2) GSKN 93.3(4) 85.2(2) 82.3(2) 79.9(2) 59.3(2) 81.8(3) GSNN 94.7(3) 78.4(4) 78.1(3) AVCN(H) 89.3(10) 62.3(8) 75.7(8) 73.4(8) 50.9(5) 80.2(4) SLIM 93.2(5) 72.4(4) 77.4(5) 80.5(6) 77.2(4) 53.3(3) 78.2(6) KerGIN(本文) 95.2(2) 88.5(1) 88.4(1) 86.8(1) 81.6(1) 60.1(1) 83.2(1) 注:加粗数字表示最优结果,括号里的数字表示该方法在每个数据集上的分类准确度排名. 表 3 基于MLP与图核的消融实验
Table 3 Ablation Experiment Based on MLP and Graph Kernel
方法 MUTAG PTC PROTEINS NCI1 IMDB-B IMDB-M COLLAB WL 90.4 59.9 75.0 86.0 73.8 50.9 78.9 GIN 89.4 68.4 76.2 82.7 75.1 52.3 80.2 GIN-MLP 88.7 68.5 76.8 81.9 75.4 52.6 79.8 KerGIN(本文) 95.2 88.5 88.4 86.8 81.6 60.1 83.2 注:最优结果用加粗数字标识. 表 4 使用不同融合策略的消融实验
Table 4 Ablation Experiment Using with Different Fusion Strategies
策略 MUTAG PTC PROTEINS NCI1 IMDB-B IMDB-M COLLAB KerGIN-con 94.7 85.2 86.8 86.3 78.9 56.8 79.6 KerGIN-sum 94.9 86.3 87.5 86.3 79.4 58.6 81.7 KerGIN-att(本文) 95.2 88.5 88.4 86.8 81.6 60.1 83.2 注:最优结果用加粗数字标识. -
[1] Peng Hao, Li Jiangxin, He Yu, et al. Large-scale hierarchical text classification with recursively regularized deep graph-CNN[C] //Proc of the 27th World Wide Web Conf. New York: ACM, 2018: 1063−1072
[2] Noble C, Cook D. Graph-based anomaly detection[C] //Proc of the 9th ACM SIGKDD Int Conf on Knowledge Discovery and Data Mining. New York: ACM, 2003: 631−636
[3] Akoglu L, Tong H, Koutra D. Graph based anomaly detection and description: A survey[J]. Data Mining and Knowledge Discovery, 2015, 29(3): 626−688 doi: 10.1007/s10618-014-0365-y
[4] 谢小杰,梁英,王梓森,等. 基于图卷积的异质网络节点分类方法[J]. 计算机研究与发展,2022,59(7):1470−1485 doi: 10.7544/issn1000-1239.20210124 Xie Xiaojie, Liang Ying, Wang Zisen, et al. Heterogeneous network node classification method based on graph convolution[J]. Journal of Computer Research and Development, 2022, 59(7): 1470−1485 (in Chinese) doi: 10.7544/issn1000-1239.20210124
[5] 孟绪颖,张琦佳,张瀚文,等. 社交网络链路预测的个性化隐私保护方法[J]. 计算机研究与发展,2019,56(6):1244−1251 doi: 10.7544/issn1000-1239.2019.20180306 Meng Xuying, Zhang Qijia, Zhang Hanwen, et al. Personalized privacy preserving link prediction in social networks[J]. Journal of Computer Research and Development, 2019, 56(6): 1244−1251 (in Chinese) doi: 10.7544/issn1000-1239.2019.20180306
[6] Xu Lixiang, Bai Lu, Xiao Jin, et al. Multiple graph kernel learning based on GMDH-type neural network[J]. Information Fusion, 2021, 66: 100−110 doi: 10.1016/j.inffus.2020.08.025
[7] Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[C] //Proc of the 7th Int Conf on Data Mining. Piscataway, NJ: IEEE, 2018: 875−880
[8] Veličković P, Cucurull G, Casanova A, et al. Graph attention networks[J]. arXiv preprint, arXiv: 1710. 10903, 2017
[9] Hamilton W, Ying Zhitao, Leskovec J. Inductive representation learning on large graphs[J/OL]. Advances in Neural Information Processing Systems, 2017[2022-11-25].https://proceedings.neurips.cc/paper/6703
[10] Gao Hongyang, Ji Shuiwang. Graph U-Nets[C] // Proc of the 36th Int Conf on Machine Learning. Cambridge, MA: MIT, 2019: 2083−2092
[11] Chen Dexiong, Jacob L, Mairal J. Convolutional kernel networks for graph-structured data[C] //Proc of the 37th Int Conf on Machine Learning. Cambridge, MA: MIT, 2020: 1576−1586
[12] Long Qingqing, Jin Yilun, Wu Yi, et al. Theoretically improving graph neural networks via anonymous walk graph kernels[C] //Proc of the 31st World Wide Web Conf. New York: ACM, 2021: 1204−1214
[13] Feng Aosong, You Chenyu, Wang Shiqiang, et al. KerGNNs: Interpretable graph neural networks with graph kernels[C] //Proc of the 36th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI, 2022: 6614−6622
[14] Shervashidze N, Schweitzer P, Jan E, et al. Weisfeiler-Lehman graph kernels[J]. The Journal of Machine Learning Research, 2011, 12(3): 2539−2561
[15] Xu Keyulu, Hu Weihua, Leskovec J, et al. How powerful are graph neural networks?[C/OL] // Proc of the 7th Int Conf on Learning Representations. 2019[2022-11-25].https://openreview.net/forum?id=ryGs6iA5Km
[16] Sugiyama M, Borgwardt K. Halting in random walk kernels[J/OL]. Advances in Neural Information Processing Systems, 2015, 28[2022-11-25].https://openreview.net/pdf?id=HyZEFubd-H
[17] Borgwardt K M, Kriegel H P. Shortest-path kernels on graphs[C] // Proc of the 5th Int Conf on Data Mining. Piscataway NJ: IEEE, 2005: 8
[18] Xu Lixiang, Bai Lu, Jiang Xiaoyi, et al. Deep Rényi entropy graph kernel[J]. Pattern Recognition, 2021, 111: 107668 doi: 10.1016/j.patcog.2020.107668
[19] Prenter P M. The numerical treatment of integral equations[J]. SIAM Review, 1981, 23(2): 266−267 doi: 10.1137/1023054
[20] Williams C, Seeger M. Using the Nyström method to speed up kernel machines[J/OL]. Advances in Neural Information Processing Systems, 2000 [2022-11-25].https://proceedings.neurips.cc/paper/2000/file/19de 10adbaa1b2ee13f77f679fa1483a-Paper.pdf
[21] Debnath A K, Lopez R L, Debnath G, et al. Structure-activity relationship of mutagenic aromatic and heteroaromatic nitro compounds. Correlation with molecular orbital energies and hydrophobicity[J]. Journal of Medicinal Chemistry, 1991, 34(2): 786−797 doi: 10.1021/jm00106a046
[22] Toivonen H, Srinivasan A, King R D, et al. Statistical evaluation of the predictive toxicology challenge 2000–2001[J]. Bioinformatics, 2003, 19(10): 1183−1193 doi: 10.1093/bioinformatics/btg130
[23] Borgwardt K M, Ong C S, Schönauer S, et al. Protein function prediction via graph kernels[J]. Bioinformatics, 2005, 21(1): 47−56
[24] Wale N, Watson I A, Karypis G. Comparison of descriptor spaces for chemical compound retrieval and classification[J]. Knowledge & Information Systems, 2008, 14(3): 347−375
[25] Yanardag P, Vishwanathan S V N. Deep graph kernels[C] //Proc of the 21st ACM SIGKDD Int Conf on Knowledge Discovery and Data Mining. New York: ACM, 2015: 1365−1374
[26] Atwood J, Towsley D. Diffusion-convolutional neural networks[J/OL]. Advances in Neural Information Processing Systems, 2016[2022-11-25].https://proceedings.neurips.cc/paper/2016/file/390e982518a50e280d8e2b535462ec1f-Paper.pdf
[27] Niepert M, Ahmed M, Kutzkov K. Learning convolutional neural networks for graphs[C] // Proc of the 33rd Int Conf on Machine Learning. Cambridge, MA: MIT, 2016: 2014−2023
[28] Sun Qingyun, Li Jianxin, Peng Hao, et al. Sugar: Subgraph neural network with reinforcement pooling and self-supervised mutual information mechanism[C] //Proc of the 31st World Wide Web Conf. New York: ACM, 2021: 2081−2091
[29] Cui Lixin, Bai Lu, Bai Xiao, et al. Learning aligned vertex convolutional networks for graph classification[J/OL]. IEEE Transactions on Neural Networks and Learning Systems, 2021[2022-11-25].https://ieeexplore. ieee.org/abstract/document/9646437
[30] Zhu Yaokang, Zhang Kai, Wang Jun, et al. Structural landmarking and interaction modelling: A “SLIM” network for graph classification[C] //Proc of the 36th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI, 2022: 9251−9259
[31] Wijesinghe A, Wang Qing. A new perspective on "How graph neural networks go beyond Weisfeiler-Lehman?"[C/OL] // Proc of the 5th Int Conf on Learning Representations. Cambridge, MA: MIT, 2021[2022-11-25].https://openreview.net/pdf?id=uxgg9o7bI_3