A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker
Verifying multi-threaded programs is becoming more and more important, because of the strong trend to increase the number of processing units per CPU socket. We introduce a new configurable program analysis for verifying multi-threaded programs with a bounded number of threads. We present a simple a...
Main Authors: | , |
---|---|
Format: | Article |
Language: | English |
Published: |
Open Publishing Association
2016-12-01
|
Series: | Electronic Proceedings in Theoretical Computer Science |
Online Access: | http://arxiv.org/pdf/1612.04983v1 |
id |
doaj-c772c074af6d4c36927a9c0bc7d9cd84 |
---|---|
record_format |
Article |
spelling |
doaj-c772c074af6d4c36927a9c0bc7d9cd842020-11-25T00:33:48ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802016-12-01233Proc. MEMICS 2016617110.4204/EPTCS.233.6:12A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAcheckerDirk Beyer0Karlheinz Friedberger1 LMU Munich, Germany University of Passau, Germany Verifying multi-threaded programs is becoming more and more important, because of the strong trend to increase the number of processing units per CPU socket. We introduce a new configurable program analysis for verifying multi-threaded programs with a bounded number of threads. We present a simple and yet efficient implementation as component of the existing program-verification framework CPAchecker. While CPAchecker is already competitive on a large benchmark set of sequential verification tasks, our extension enhances the overall applicability of the framework. Our implementation of handling multiple threads is orthogonal to the abstract domain of the data-flow analysis, and thus, can be combined with several existing analyses in CPAchecker, like value analysis, interval analysis, and BDD analysis. The new analysis is modular and can be used, for example, to verify reachability properties as well as to detect deadlocks in the program. This paper includes an evaluation of the benefit of some optimization steps (e.g., changing the iteration order of the reachability algorithm or applying partial-order reduction) as well as the comparison with other state-of-the-art tools for verifying multi-threaded programs.http://arxiv.org/pdf/1612.04983v1 |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Dirk Beyer Karlheinz Friedberger |
spellingShingle |
Dirk Beyer Karlheinz Friedberger A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker Electronic Proceedings in Theoretical Computer Science |
author_facet |
Dirk Beyer Karlheinz Friedberger |
author_sort |
Dirk Beyer |
title |
A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker |
title_short |
A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker |
title_full |
A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker |
title_fullStr |
A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker |
title_full_unstemmed |
A Light-Weight Approach for Verifying Multi-Threaded Programs with CPAchecker |
title_sort |
light-weight approach for verifying multi-threaded programs with cpachecker |
publisher |
Open Publishing Association |
series |
Electronic Proceedings in Theoretical Computer Science |
issn |
2075-2180 |
publishDate |
2016-12-01 |
description |
Verifying multi-threaded programs is becoming more and more important, because of the strong trend to increase the number of processing units per CPU socket. We introduce a new configurable program analysis for verifying multi-threaded programs with a bounded number of threads. We present a simple and yet efficient implementation as component of the existing program-verification framework CPAchecker. While CPAchecker is already competitive on a large benchmark set of sequential verification tasks, our extension enhances the overall applicability of the framework. Our implementation of handling multiple threads is orthogonal to the abstract domain of the data-flow analysis, and thus, can be combined with several existing analyses in CPAchecker, like value analysis, interval analysis, and BDD analysis. The new analysis is modular and can be used, for example, to verify reachability properties as well as to detect deadlocks in the program. This paper includes an evaluation of the benefit of some optimization steps (e.g., changing the iteration order of the reachability algorithm or applying partial-order reduction) as well as the comparison with other state-of-the-art tools for verifying multi-threaded programs. |
url |
http://arxiv.org/pdf/1612.04983v1 |
work_keys_str_mv |
AT dirkbeyer alightweightapproachforverifyingmultithreadedprogramswithcpachecker AT karlheinzfriedberger alightweightapproachforverifyingmultithreadedprogramswithcpachecker AT dirkbeyer lightweightapproachforverifyingmultithreadedprogramswithcpachecker AT karlheinzfriedberger lightweightapproachforverifyingmultithreadedprogramswithcpachecker |
_version_ |
1725314854193987584 |