Optimal dynamic partial order reduction
2014 (English)In: Proc. 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York: ACM Press, 2014, 373-384 p.Conference paper (Refereed)
Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.
Place, publisher, year, edition, pages
New York: ACM Press, 2014. 373-384 p.
, ACM SIGPLAN NOTICES, ISSN 0362-1340 ; 49:1
Software Engineering Computer Systems
IdentifiersURN: urn:nbn:se:uu:diva-215414DOI: 10.1145/2535838.2535845ISI: 000331120500032ISBN: 978-1-4503-2544-8OAI: oai:DiVA.org:uu-215414DiVA: diva2:687063
POPL 2014, January 22-24, San Diego, CA
FunderEU, FP7, Seventh Framework Programme, 287510