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...

Full description

Bibliographic Details
Main Authors: Dirk Beyer, Karlheinz Friedberger
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