Veracity: Declarative Multicore Programming with Commutativity
Adam Chen, Parisa Fathololumi, Eric Koskinen, Jared Pincus

TL;DR
Veracity introduces a declarative multicore programming paradigm where programmers specify commutativity conditions to enable safe parallel execution, simplifying multicore programming and improving concurrency performance.
Contribution
The paper presents a new language and methodology for expressing and verifying commutativity conditions, enabling automatic synthesis and safe parallelization of sequential programs.
Findings
Automatic generation of commutativity conditions across benchmarks
Concurrency speedups observed with increased computation
Application to filesystem and blockchain smart contracts
Abstract
There is an ongoing effort to provide programming abstractions that ease the burden of exploiting multicore hardware. Many programming abstractions (e.g., concurrent objects, transactional memory, etc.) simplify matters, but still involve intricate engineering. We argue that some difficulty of multicore programming can be meliorated through a declarative programming style in which programmers directly express the independence of fragments of sequential programs. In our proposed paradigm, programmers write programs in a familiar, sequential manner, with the added ability to explicitly express the conditions under which code fragments sequentially commute. Putting such commutativity conditions into source code offers a new entry point for a compiler to exploit the known connection between commutativity and parallelism. We give a semantics for the programmer's sequential perspective and,…
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
TopicsDistributed systems and fault tolerance · Cloud Computing and Resource Management · Parallel Computing and Optimization Techniques
