一种高性能单机多核并行模型检测方法技术

技术编号:13732629 阅读:64 留言:0更新日期:2016-09-21 14:20
本发明专利技术公开了一种高性能单机多核并行模型检测方法。本方法为:1)创建待检测系统模型与待测属性的组合状态空间中的初始节点;2)状态空间生成器将该初始节点映射成Ligra计算图中的一个顶点,然后逐步生成该初始节点的后继节点,初始节点及已生成的后继节点构成一状态空间;其中,该初始节点为第1级节点,第i级节点包含N层第i+1级后继节点,每一层后继节点包含多个节点,每次属于同一级节点的后继节点全部生成之后,将当前状态空间映射成一Ligra计算图,然后调用可接收环检测器检测该Ligra计算图中是否有可接收环,如果有则停止模型检测。该方法具有性能高、可扩展性好等特点。

【技术实现步骤摘要】

本专利技术属于软件工程、形式化方法与并行计算领域,具体涉及一种在单机多核环境下高性能并行线性时序逻辑模型检测方法。
技术介绍
模型检测(Model Checking)是一种很重要的自动验证技术。它最早由Clarke和Emerson在1981年分别提出的,主要通过显式状态搜索或隐式不动点计算来验证有穷状态并发系统的模态/命题性质。模型检测近年来被用于很多安全关键系统、通信协议、控制系统、安全认证协议等方面的分析与验证中。模型检测器用来对硬件、软件系统的安全性与活性进行全面检测,保证系统在任何情况下都满足设计中的安全特性。线性时序(时态)逻辑是一种能够表达原子命题的时态特性的逻辑公式,于1977年被提出,并广泛用于有限状态系统的行为描述。由于针对线性时序逻辑的模型检测技术一般需要穷举系统中的所有状态(有限状态),所以模型检测的关键问题是解决状态空间的组合爆炸问题。通常一个软硬件系统由多个功能模块所组成,不同模块有不同的操作行为,他们以同步或异步的方式运行。假设系统有n个模块,每个模块有m个状态,那么检测该系统,就需要对其mn个状态进行检测。所以即使一个很小的系统,都可能拥有超出计算机能够处理的状态空间。目前的模型检测系统主要受组合爆炸问题的制约,只能用于小型或者中型的系统(状态空间一般小于1020)。目前国内外所构建的针对线性时序逻辑的模型检测系统可以分为如下三类:利用符号描述与高层抽象等优化方法在单CPU机上构建的模型检测系统;利用分布式计算集群环境和分布式内存模型检测系统;利用单机多核并行处理来缓解组合爆炸问题。第一类方法一般需要提出比较复杂的高层抽象方法与数学推导公式,实现与应用起来需要很多复杂的背景知识,后两者的共性都是并行处理来提升算法的速度与可扩展性。利用分布式计算集群的分布式模型检测的算法与工具,能够充分利用多台计算机内存和计算资源将大规模的模型检测问题压缩到几个小时或者是几天之内处理完,但是分布式模型检测工具中机器之间的通信开销很大,成为分布式模型检测工具性能提升的瓶颈。近来硬件性能越来越强,单机内存能够达到TB级别,因此基于单机多核共享内存的模型检测工具,由于很低的通信开销而变得更快,性能更高。尽管基于共享内存的单机多核计算能够提升计算效率,但是利用现存的单机多核并行线性时序逻辑模型检测器,例如Divine等,需要多线程来处理整个状态空间,为了减少线程之间的竞争,通常需要将整个状态空间切分给各个线程,这样减少了竞争但引入的切分开销很大,从而导致性能不高。Ligra(具体请参阅Shun J,Blelloch G E.Ligra:A Lightweight Graph Processing Framework for Shared Memory.Acm Sigplan Notices,2013,48(8):135-146.)是一种基于共享内存的轻量级图计算框架,他的特点是利用已封装好底层计算细节的高层编程接口实现对大规模图进行高效、高可扩展计算。基于Ligra能够实现按照遍历过程中产生到状态子集的稠密稀疏特性来动态的选择遍历方式,也能够对每轮遍历产生的顶点子集动态均衡的分配给线程处理,从而使线程的并行度更高。本专利技术是利用Ligra计算框架设计的。
技术实现思路
本专利技术提出一种高性能单机多核并行模型检测方法,该方法具有性能高、可扩展性好等特点。该方法的输入为模型和与待检测的属性,以纯广度优先搜索的方法检测软件的所有可达状态是否满足待检测的属性,方法具体包括:从初始节点开始生成状态空间,-把状态空间映射成计算图;然后在此计算图中利用每个节点对应的全局状态进行可接收环检测;如果存在可接收环,证明系统违反属性,否则证明了系统满足该属性;在检测的过程中,根据计算图的稠密稀疏特性来动态选择搜索方式,降低,提升系统的从而使同步开销性能。利用本专利技术,无须关注底层计算细节,即可实现高性能的模型检测器。该方法利用纯广度优先搜索的方式对模型进行检测,主要特征为在检测过程中根据每轮产生的状态子集的稠密稀疏特性选择不同的更新操作,从而减小同步开销。本专利技术的输入为若干个由待验证系统转换成的标识迁移系统(Labeling Transition System,LTS),表示待检测系统行为模型(M);一个由线性时序逻辑(Linear Temporal Logic,LTL)属性取非(~)转换成的Buchi自动机。为了验证模型是否满足该输入属性,需要遍历所有可达状态,并在可达图中检测是否存在可接收环,如果存在那么模型不满足属性,否则满足。本专利技术首先创建待检测系统模型与待测属性的组合状态空间中的初始节点,把该初始节点映射成Ligra计算图中的一个顶点。然后逐步生成该节点的后继节点,在生成的过程中判断是否该模型违反待测属性。节点的具体行为由状态空间生成器,可接收环检测器所定义。本专利技术的总体框架如图1所示,首先将待验证系统和待验证属性经过①和②转换成对应的LTS和Buchi自动机,然后由状态生成器从初始节点生成后继节点,迭代生成状态空间(初始节点及已生成的后继节点构成一状态空间,该初始节点为第1级节点,第i级节点包含N层第i+1级后继节点,每一层后继节点包含多个节点);每次属于同一级节点的后继节点全部生成之后,将当前状态空间映射成一Ligra计算图,继而调用可接收环检测器,在已生成的状态空间中检测模型是否满足当前待验证属性,若满足条件1,证明满足当前待验证属性,否则为条件2,则违反当前待验证属性。条件1:当节点全部生成并且没有查到可接受环时,可以证明模型满足属性;条件2:查找到可接收环时,证明模型违反属性。①:转换成标识迁移系统;②:取非后转换成Buchi自动机。本专利技术中的单机多核并行模型检测器运行方式如下,首先读入待检测系统的状态迁移系统M(LTS)模型与取非后的属性Buchi自动机,创建初始节点放入共享内存中,然后把整个计算步骤分成若干次超步(Superstep)迭代进行的,每一个超步又被分成两个子步骤:状态生成、可接收环检测,在每次超步计算完成后,要判断程序所有的处理步骤是否完成,如果完成,那么退出系统,否则,进行下一轮超步。在每个超步的计算过程中,首先调用状态生成器按广度优先的方式来按层生成状态空间,然后将此状态空间(全部层对应的状态空间,状态空间是逐步变大的)映射到图中,最后判断此图是否违反属性,如果不违反那么进行下一个超步处理,否则直接结束运行。为了实现模型检测的功能,在每个超步中需生成N(N为用户可调整的一常数)层状态空间,对于每个节点都将调用状态空间生成器创建其直接后继节点,从而依次生成状态空间(广度优先搜索方式),并将全部的已生成的状态空间映射成Ligra计算图,然后在此图中调用可接收环检测器来检测是否有可接收环,一旦检测出可接收环,则停止状态空间生成器与可接收环检测器结束系统,否则系统将会在状态空间生成器与可接收环检测器执行完成后结束(即遍历所有可达状态)。本系统的计算框架如图2所示。Ligra是单机多核环境下轻量级图数据处理框架,在处理图的广度优先遍历问题时能够根据遍历过程中产生的顶点子集的稠密性来动态的调整遍历方式,减小同步开销从而保证遍历的高效性。本专利技术使用Ligra完成图遍历的函数与结构体如下:1本文档来自技高网
...

【技术保护点】
一种高性能单机多核并行模型检测方法,其步骤为:1)创建待检测系统模型与待测属性的组合状态空间中的初始节点;2)状态空间生成器将该初始节点映射成Ligra计算图中的一个顶点,然后逐步生成该初始节点的后继节点,初始节点及已生成的后继节点构成一状态空间;其中,该初始节点为第1级节点,第i级节点包含N层第i+1级后继节点,每一层后继节点包含多个节点,每次属于同一级节点的后继节点全部生成之后,将当前状态空间映射成一Ligra计算图,然后调用可接收环检测器检测该Ligra计算图中是否有可接收环,如果有则停止模型检测。

【技术特征摘要】
1.一种高性能单机多核并行模型检测方法,其步骤为:1)创建待检测系统模型与待测属性的组合状态空间中的初始节点;2)状态空间生成器将该初始节点映射成Ligra计算图中的一个顶点,然后逐步生成该初始节点的后继节点,初始节点及已生成的后继节点构成一状态空间;其中,该初始节点为第1级节点,第i级节点包含N层第i+1级后继节点,每一层后继节点包含多个节点,每次属于同一级节点的后继节点全部生成之后,将当前状态空间映射成一Ligra计算图,然后调用可接收环检测器检测该Ligra计算图中是否有可接收环,如果有则停止模型检测。2.如权利要求1所述的方法,其特征在于,步骤1)中,首先将待检测系统模型转换成标识迁移系统,将待测属性转换成对应的Buchi自动机,然后创建该初始节点。3.如权利要求1或2所述的方法,其特征在于,步骤2)中,该状态空间生成器首先判断待生成后继节点的节点是否存在后继,如果不存在,则停止模型检测;如果存在,则生...

【专利技术属性】
技术研发人员:张营飞谢淼张珩杨秋松
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京;11

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

1