Optimizing Solution Quality in Synchronization Synthesis
Pavol \v{C}ern\'y, Edmund M. Clarke, Thomas A. Henzinger, Arjun, Radhakrishna, Leonid Ryzhyk, Roopsha Samanta, Thorsten Tarrach

TL;DR
This paper presents a novel method for automatically inserting synchronization primitives into multithreaded programs to ensure correctness and optimize performance based on platform-specific models, scaling well to real-world applications.
Contribution
It introduces a global constraint-based framework for optimizing synchronization placement considering correctness and performance objectives.
Findings
Scales to real-world concurrent programs like device drivers and servers.
Performance predictions closely match actual measurements.
First comprehensive approach for optimizing synthesized synchronization placement.
Abstract
Given a multithreaded program written assuming a friendly, non-preemptive scheduler, the goal of synchronization synthesis is to automatically insert synchronization primitives to ensure that the modified program behaves correctly, even with a preemptive scheduler. In this work, we focus on the quality of the synthesized solution: we aim to infer synchronization placements that not only ensure correctness, but also meet some quantitative objectives such as optimal program performance on a given computing platform. The key step that enables solution optimization is the construction of a set of global constraints over synchronization placements such that each model of the constraints set corresponds to a correctness-ensuring synchronization placement. We extract the global constraints from generalizations of counterexample traces and the control-flow graph of the program. The global…
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.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Embedded Systems Design Techniques
