Efficient Deterministic Multithreading Through Schedule Relaxation
Deterministic MultiThreading (DMT) eliminates many pernicious software problems caused by non-determinism. It works by constraining a program to repeat the same thread interleavings, or schedules, when given same input. Despite much recent research, it remains an open challenge to build both deterministic and efficient DMT systems for general programs on commodity hardware. To deterministically resolve a data race, a DMT system must enforce a deterministic schedule of shared memory accesses, or memschedule, which can incur prohibitive overhead.