On the synthesis of a reactive module
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bisimulation through probabilistic testing (preliminary report)
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Competitive Markov decision processes
Competitive Markov decision processes
A Discrete Subexponential Algorithm for Parity Games
STACS '03 Proceedings of the 20th Annual Symposium on Theoretical Aspects of Computer Science
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
Programming by sketching for bit-streaming programs
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Sketching concurrent data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Inferring locks for atomic sections
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Automatic verification of probabilistic concurrent finite state programs
SFCS '85 Proceedings of the 26th Annual Symposium on Foundations of Computer Science
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Better Quality in Synthesis through Quantitative Objectives
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Abstraction-guided synthesis of synchronization
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
MFCS'10 Proceedings of the 35th international conference on Mathematical foundations of computer science
Energy and mean-payoff games with imperfect information
CSL'10/EACSL'10 Proceedings of the 24th international conference/19th annual conference on Computer science logic
Measuring and synthesizing systems in probabilistic environments
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
From boolean to quantitative synthesis
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Automatic verification of competitive stochastic systems
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Automated model repair for distributed programs
ACM SIGACT News
Partial-Observation Stochastic Games: How to Win When Belief Fails
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Synthesis from incompatible specifications
Proceedings of the tenth ACM international conference on Embedded software
Strategy synthesis for multi-dimensional quantitative objectives
CONCUR'12 Proceedings of the 23rd international conference on Concurrency Theory
Polynomial-Time algorithms for energy games with special weight structures
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
MODELS'12 Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems
A temporal logic with mean-payoff constraints
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Code aware resource management
Formal Methods in System Design
Formalizing and reasoning about quality
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
Bridging boolean and quantitative synthesis using smoothed proof search
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Model-based synthesis of control software from system-level formal specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Quantitative reactive modeling and verification
Computer Science - Research and Development
A survey of partial-observation stochastic parity games
Formal Methods in System Design
Hi-index | 0.00 |
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.