一种计算具有循环结构的OpenMP程序WCRT方法技术

技术编号:32218169 阅读:20 留言:0更新日期:2022-02-09 17:23
本发明专利技术属于实时系统的实时调度和模型检测领域,具体涉及一种具有循环结构的OpenMP程序WCRT方法,该方法为:建立OpenMP任务系统模型;定义任务系统的语句树;精确计算任务系统的容量,对任务系统中每个任务进行逆序遍历,计算与任务系统中每个任务相关的容量;精确计算任务系统的最长路径长度;逆序遍历任务系统中的每个任务,求每个任务遍历从叶子到根部的语句树中的每个节点B的最长路径的长度;计算任务系统的WCRT的上界。该方法采用线性时间动态编程算法来计算WCRT边界,而不展开循环,也不显式地枚举执行流,使时间复杂度与循环边界无关,简化了计算方法,提高WCRT边界精度。提高WCRT边界精度。提高WCRT边界精度。

【技术实现步骤摘要】
一种计算具有循环结构的OpenMP程序WCRT方法


[0001]本专利技术属于实时系统的实时调度和模型检测领域,具体涉及一种计算具有循环结构的OpenMP程序WCRT方法。

技术介绍

[0002]OpenMP是由OpenMP Architecture Review Board牵头提出的,被广泛接受,用于共享内存并行系统的多处理器程序而设计的一套指导性编译处理方案。是一个很有前途的多核并行实时软件开发框架。近年来,许多基于图的任务模型采用了OpenMP框架,这些模型代表了OpenMP任务系统的现实特征。循环结构在OpenMP任务系统中很常见,然而,目前的研究都没有对循环结构进行建模;在OpenMP任务系统中需要显式地枚举执行流,简单的枚举执行流会使计算最坏情况响应时间(WCRT)的安全上限非常复杂,难以处理。

技术实现思路

[0003]本专利技术将具有循环结构的OpenMP任务系统的工作负载公式化为循环图模型,并解决如何计算最坏情况响应时间(WCRT)的安全上限的问题;设计一个线性时间动态编程算法来计算WCRT边界,而不展开循环,也不显式地枚举执行流,使时间复杂度与循环边界无关,简化了计算方法,提高了WCRT边界精度。
[0004]本专利技术的一种计算具有循环结构的OpenMP程序WCRT方法的具体步骤包括:
[0005]步骤一:建立OpenMP任务系统模型;
[0006]步骤二:定义任务系统的语句树;
[0007]步骤三:精确计算任务系统的容量,对任务系统中每个任务进行逆序遍历,计算与任务系统中每个任务相关的容量;
[0008]步骤四:精确计算任务系统的最长路径长度;逆序遍历任务系统中的每个任务,求每个任务遍历从叶子到根部的语句树中的每个节点B的最长路径的长度;
[0009]步骤五:计算任务系统的WCRT的上界。
[0010]进一步的,所述步骤四中任务系统的最长路径长度,通过B的诱导有向图的顶点的路径:考虑如下六类通过B的诱导有向图的顶点的路径:
[0011]从B的入口顶点开始的一组路径。
[0012]从B的等待顶点开始的一组路径。
[0013]从B的入口顶点开始,到B的出口顶点结束的一组路径。
[0014]从B的入口顶点开始,到子任务的汇点结束的一组路径。
[0015]从B的一个等待顶点开始,到B的出口顶点为止的一组路径。从B的等待顶点开始,到子任务的汇点结束的一组路径。
[0016]进一步的,所述步骤四中求每个任务遍历从叶子到根部的语句树中的每个节点B
的最长路径的长度:
[0017](1)如果B代表任务的一个顶点,根据公式(1)(2)(3)计算其中(y={*,ex,ct});根据公式(4)计算其中(y={*,ex,ct});
[0018][0019][0020][0021][0022]则其中(x∈{en,wt}和y={*,ex,ct})。
[0023](2)如果B是顺序块,根据公式(5)计算其中(x∈{en,wt}and y={*,ex,ct})。
[0024][0025]则其中(x∈{en,wt}和y={*,ex,ct})。
[0026](3)如果B是分支块,根据公式(6)(7)(8)(9)(10)(11)计算其中(x={en,wt}和y={∞,ex,ct})。
[0027][0028][0029][0030][0031][0032][0033]其中则其中(x∈{en,wt}和y={*,ex,ct})。
[0034]如果B代表一个循环块,循环边界为K。先进行如下定义:
[0035][0036][0037]通过公式(12)(13)(14)(15)(16)(17)计算其中(x={en,wt}和y={∞,ex,ct})。
[0038][0039][0040][0041][0042][0043][0044]其中其中Γ3=α(K

1),1),其中其中其中其中则其中(x∈{en,wt}和y={*,ex,ct})。
[0045]进一步的,所述步骤5中WCRT的上界任务系统的容量任务系统的最长路径长度(m表示线程数)。
[0046]任务系统的最坏情况响应时间(WCRT)等于在广度优先调度(或宽度优先调度)调度下,在m个线程上执行任务系统中所有顶点所花费的最大时间。以下定理给出了任务系统的最坏情况响应时间的一个上界。
[0047]广度优先调度(或宽度优先调度)下,在m个线程上执行的任务系统的最坏情况响应时间的边界为:任务系统WCRT的上界任务系统的容量任务系统的最长路径长度(m表示线程数)。
[0048]本专利技术的一种计算具有循环结构的OpenMP程序WCRT方法,具有以下优点:
[0049]通过精确计算任务系统的容量,对任务系统中每个任务进行逆序遍历,计算与任务系统中每个任务相关的容量;和精确计算每个任务遍历从叶子到根部的语句树中的每个节点B的最长路径的长度,设计一个线性时间动态编程算法来计算WCRT边界,而不展开循环,也不显式地枚举执行流,简化了计算方法,提高了WCRT边界精度。
附图说明
[0050]图1为OpenMP任务系统中每个任务的控制流程图的示意图。
[0051]图2为图一中τ1的语句树。
[0052]图3为线程数变化的随机任务集的实验图。
[0053]图4为系统任务数变化的随机任务集的实验图。
[0054]图5为条件节点为loop节点的概率变化的随机任务集的实验图。
[0055]图6为条件节点为if节点的概率变化的随机任务集的实验图。
[0056]图7为非条件节点为创建节点的概率变化的随机任务集的实验图。
[0057]图8为非条件节点为等待节点的概率变化的随机任务集的实验图。
[0058]图9为真实程序的实验图。
具体实施方式
[0059]为了更好地了解本专利技术的目的、方法及功能,下面结合附图,对本专利技术的一种计算具有循环结构的OpenMP程序WCRT方法做进一步详细的描述。
[0060]本专利技术的方法是建立在格雷厄姆为DAG任务模型设定的经典响应时间的基础上的,设计了一种线性时间算法,用于精确计算最坏情况响应时间界中使用的参数(例如,体积和长度);传统的在循环结构与创建任务和条件分支结合导致大状态空间中,简单地展开循环和/或枚举所有可能的执行流在计算上是难以处理的。本专利技术的方法不需要展开循环,因此时间复杂度与循环边界无关。
[0061]所以,本专利技术提供了一种计算具有循环结构的OpenMP程序WCRT方法,如图1所示,其具体步骤包括:
[0062]步骤一:建立OpenMP任务系统模型。
[0063]1)按照用户输入相关参数根据代码随机生成。用户输入OpenMP任务系统规模参数如表1,OpenMP任务系统T中每个任务的CFG如图1。
[0064]表1时间自动机系统参数
...

【技术保护点】

【技术特征摘要】
1.一种计算具有循环结构的OpenMP程序WCRT方法,其特征在于,所述方法的具体步骤包括:步骤一:建立OpenMP任务系统模型;步骤二:定义任务系统的语句树;步骤三:精确计算任务系统的容量,对任务系统中每个任务进行逆序遍历,计算与任务系统中每个任务相关的容量;步骤四:精确计算任务系统的最长路径长度;逆序遍历任务系统中的每个任务,求每个任务遍历从叶子到根部的语句树中的每个节点B的最长路径的长度;步骤五:计算任务系统的WCRT的上界。2.根据权利要求1所述的一种计算具有循环结构的OpenMP程序WCRT方法,其特征在于:所述步骤四中任务系统的最长路径长度,通过B的诱导有向图的顶点的路径考虑如下六类:从B的入口顶点开始的一组路径;从B的等待顶点开始的一组路径;从B的入口顶点开始,到B的出口顶点结束的一组路径;从B的入口顶点开始,到子任务的汇点结束的一组路径;从B的一个等待顶点开始,到B的出口顶点为止的一组路径;从B的等待顶点开始,到子任务的汇点结束的一组路径。3.根据权利要求1所述的一种计算具有循环结构的OpenMP程序WCRT方法,其特征在于:所述步骤四中求每个任务遍历从叶子到根部的语句树中的每个节点B的最长路径的长度:(1)如果B代表任务的一个顶点,根据公式(1)(2)...

【专利技术属性】
技术研发人员:薛业凯孟亚坤孙景昊何泾张利威
申请(专利权)人:东北大学秦皇岛分校
类型:发明
国别省市:

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

1