Domain-independent multi-threaded software model checking
Autor: | Karlheinz Friedberger, Dirk Beyer |
---|---|
Rok vydání: | 2018 |
Předmět: |
Speedup
Computer science business.industry Memoization Parallel algorithm 020207 software engineering 02 engineering and technology Parallel computing Domain (software engineering) Program analysis Software Multithreading 0202 electrical engineering electronic engineering information engineering Overhead (computing) 020201 artificial intelligence & image processing business Massively parallel Software verification |
Zdroj: | ASE |
DOI: | 10.1145/3238147.3238195 |
Popis: | Recent development of software aims at massively parallel execution, because of the trend to increase the number of processing units per CPU socket. But many approaches for program analysis are not designed to benefit from a multi-threaded execution and lack support to utilize multi-core computers. Rewriting existing algorithms is difficult and error-prone, and the design of new parallel algorithms also has limitations. An orthogonal problem is the granularity: computing each successor state in parallel seems too fine-grained, so the open question is to find the right structural level for parallel execution. We propose an elegant solution to these problems: Block summaries should be computed in parallel. Many successful approaches to software verification are based on summaries of control-flow blocks, large blocks, or function bodies. Block-abstraction memoization is a successful domain-independent approach for summary-based program analysis. We redesigned the verification approach of block-abstraction memoization starting from its original recursive definition, such that it can run in a parallel manner for utilizing the available computation resources without losing its advantages of being independent from a certain abstract domain. We present an implementation of our new approach for multi-core shared-memory machines. The experimental evaluation shows that our summary-based approach has no significant overhead compared to the existing sequential approach and that it has a significant speedup when using multi-threading. |
Databáze: | OpenAIRE |
Externí odkaz: |