Context-Bounded Verification of Thread Pools
Pascal Baumann, Rupak Majumdar, Ramanathan S. Thinniyam, Georg, Zetzsche

TL;DR
This paper studies the safety verification problem for thread-pooled programs with context bounds, establishing EXPSPACE-completeness and introducing new encoding techniques that compress automata representations.
Contribution
It provides the first EXPSPACE-complete result for thread-pooled, context-bounded Boolean programs and introduces novel succinct encoding methods for automata.
Findings
Safety verification is EXPSPACE-complete for thread pools with context bounds.
New succinct encoding techniques for automata are developed.
Thread pooling reduces computational complexity compared to no pooling.
Abstract
Thread pooling is a common programming idiom in which a fixed set of worker threads are maintained to execute tasks concurrently. The workers repeatedly pick tasks and execute them to completion. Each task is sequential, with possibly recursive code, and tasks communicate over shared memory. Executing a task can lead to more new tasks being spawned. We consider the safety verification problem for thread-pooled programs. We parameterize the problem with two parameters: the size of the thread pool as well as the number of context switches for each task. The size of the thread pool determines the number of workers running concurrently. The number of context switches determines how many times a worker can be swapped out while executing a single task - like many verification problems for multithreaded recursive programs, the context bounding is important for decidability. We show that the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
