Quantitative Synthesis for Concurrent Programs
arXiv:1104.4306
Abstract
We present an algorithmic method for the quantitative, performance-aware synthesis of concurrent programs. The input consists of a nondeterministic partial program and of a parametric performance model. The nondeterminism allows the programmer to omit which (if any) synchronization construct is used at a particular program location. The performance model, specified as a weighted automaton, can capture system architectures by assigning different costs to actions such as locking, context switching, and memory and cache accesses. The quantitative synthesis problem is to automatically resolve the nondeterminism of the partial program so that both correctness is guaranteed and performance is optimal. As is standard for shared memory concurrency, correctness is formalized "specification free", in particular as race freedom or deadlock freedom. For worst-case (average-case) performance, we show that the problem can be reduced to 2-player graph games (with probabilistic transitions) with quantitative objectives. While we show, using game-theoretic methods, that the synthesis problem is NEXP-complete, we present an algorithmic method and an implementation that works efficiently for concurrent programs and performance models of practical interest. We have implemented a prototype tool and used it to synthesize finite-state concurrent programs that exhibit different programming patterns, for several performance models representing different architectures.
References in corpus (2)
Cited by in corpus (11)
- Randomness for Free
- Polynomial-Time Algorithms for Energy Games with Special Weight Structures
- The Reactive Synthesis Competition: SYNTCOMP 2016 and Beyond
- Approximating Min-Mean-Cycle for low-diameter graphs in near-optimal time and memory
- Strategy Synthesis for Multi-dimensional Quantitative Objectives
- Finite-Memory Strategies in POMDPs with Long-Run Average Objectives
- Down the Borel Hierarchy: Solving Muller Games via Safety Games
- Quantitative Programming by Examples
- Perfect-Information Stochastic Games with Generalized Mean-Payoff Objectives
- Optimizing Solution Quality in Synchronization Synthesis
- Automated Verification, Synthesis and Correction of Concurrent Systems via MSO Logic