符号执行工具KLEE可以并行运行吗?

时间:2015-12-09 17:01:42

标签: debugging static-analysis symbolic-computation klee

根据他们的论文(OSDI'08),符号执行工具KLEE需要大约1小时来为单个COREUTIL应用程序生成测试用例。我想知道它是否可以并行运行?(例如,多核甚至GPU上的多线程)?

1 个答案:

答案 0 :(得分:2)

大多数静态分析工具都是使用基本上是单线程(C,C ++,Java)的语言构建的。

虽然可以在这些语言中使用并行性支持,但作为一般规则,静态分析工具构建器不会利用它。部分问题在于这些工具中的并行性是高度不规则的,并且不会出现容易发现的大块,从而降低了开销,这是确保高效并行性的必要条件。这使得工具设计师很难找到/指定这样的块,并且他们已经在解决使他们的工具工作的难题。

KLEE本身我不认为这是平行的。将支持测试生成的分析划分为大块,以便交给KLEE的并行运行副本(" Cloud9");这是划分工作的一种方法,但这些是非常大的计算粒度,分布在独立处理器的云中。其中一个关键问题是"负载均衡" (为每个副本提供适当的工作量,以便充分利用并行性)。见http://dslab.epfl.ch/pubs/cloud9.pdf

(有关基于SMT的细粒度计算具有明确平行基础的一系列工具,请参阅我的bio。)