kirancodes.me
To Proof Maintenance & Beyond!

Drinking from both glasses: combining pessimistic and optimistic tracking of cross-thread dependences

Man Cao, Minjia Zhang, Aritra Sengupta, Michael D. Bond

Abstract

It is notoriously challenging to develop parallel software systems that are both scalable and correct. Runtime support for parallelism---such as multithreaded record & replay, data race detectors, transactional memory, and enforcement of stronger memory models---helps achieve these goals, but existing commodity solutions slow programs substantially in order to track (i.e., detect or control) an execution's cross-thread dependences accurately. Prior work tracks cross-thread dependences either "pessimistically," slowing every program access, or "optimistically," allowing for lightweight instrumentation of most accesses but dramatically slowing accesses involved in cross-thread dependences.

Related papers