作者投稿和查稿 主编审稿 专家审稿 编委审稿 远程编辑

计算机工程

• 体系结构与软件技术 • 上一篇    下一篇

Spark环境下基于SMT的分布式限界模型检测

任胜兵,张健威,吴斌,王志健   

  1. (中南大学 软件学院 嵌入式系统与网络实验室,长沙 410075)
  • 收稿日期:2016-04-01 出版日期:2017-06-15 发布日期:2017-06-15
  • 作者简介:任胜兵(1969—),男,副教授、博士,主研方向为嵌入式系统、软件工程、数字图像处理;张健威、吴斌、王志健,硕士研究生。
  • 基金资助:
    国家自然科学基金面上项目(61272151);中南大学自主探索创新项目(2016zzts373)。

SMT-based Distributed Bounded Model Checking in Spark

REN Shengbing,ZHANG Jianwei,WU Bin,WANG Zhijian   

  1. (Embedded System and Network Lab,School of Software,Central South University,Changsha 410075,China)
  • Received:2016-04-01 Online:2017-06-15 Published:2017-06-15

摘要: 在基于可满足性模理论(SMT)的限界模型检测中,限界深度对于程序验证结果的可信性和程序验证效率具有重要影响。传统串行检测方法由于单机处理性能和内存的限制,不能在限界较深的条件下进行验证。针对该问题,在Spark环境下提出一种分布式限界模型检测方法。将源程序的LLVM中间表示(LLVM-IR)构造为Spark内置的数据结构Pair RDD,利用MapReduce算法将Pair RDD转化为表示验证条件的弹性分布式数据集(VCs RDD),VCs RDD转化为SMT-LIB并输入SMT求解器进行验证。实验结果表明,与传统串行检测方法相比,该方法提高了验证过程中的限界深度和验证结果的正确率,并且对于复杂度较高的程序在限界相同的情况下其验证速度也有所提升。

关键词: 软件验证, 限界模型检测, 弹性分布式数据集, 可满足性模理论求解器, Spark框架

Abstract: The credibility of program verification results and the verification efficiency in Satisfiablity Modulo Theories(SMT)-based bounded model checking are influenced greatly by bounds.However,the traditional serial checking method cannot validate under the conditions of too large bounds because of the limitation of handling performance and memory in a single machine.In order to solve this problem,this paper proposes a SMT-based distributed BMC method in Spark.First of all,the LLVM Intermediate Representation(LLVM-IR) translated from the source program is converted into Spark built-in data structure Pair Resilient Distributed Dataset(RDD).Afterwards,the Pair RDD is converted into Verification Conditions RDD(VCs RDD) which is then converted into SMT-LIB with the proposed MapReduce algorithm.In the end,the proposed method utilizes SMT solver for verification with the SMT-LIB.Experimental results indicate that,compared with the traditional serial checking method,the proposed method improves not only the bounds of the validation process and the correctness of the verification results,but also the speed of verification for the program with higher complexity under the same bound.

Key words: software verification, Bounded Model Checking(BMC), Resilient Distributed Dataset(RDD), Satisfiablity Modulo Theories(SMT) solver, Spark framework

中图分类号: