Finding correctness issues in multithreaded programs is a tedious task. Many concurrency related bugs occur rarely and only if no debugger is attached (Heisenbug). This makes it hard to find these using traditional testing approaches like unit and integration tests.
A common issue in this setting are data races, where two concurrent agents access the same memory location without proper synchronisation. To counter this threat, data race detectors have been developed. These are able to detect data races by tracking all memory accesses and synchronisation procedures. However a general problem of this approach is the major runtime overhead. This makes it impossible to analyze memory-intense applications which are bound by external time constraints.
In this talk we present a novel approach for a low-overhead race detector. Our main contribution is a bunch of fine-grained tuning techniques, limiting both time and memory consumption. In addition we provide a proof of concept for hybrid applications consisting of native and just in time compiled code. These features are implemented in a runtime binary instrumentation tool called DRace. Using that, the user is able to analyze large applications with a predictable race detection probability.
// Felix Jonathan Mößbauer
ist C++-Entwickler für HPC-Software-Bibliotheken an der LMU München. Im Rahmen seiner Masterarbeit hat er sich bei der Siemens AG dem Thema Data-Race-Erkennung unter Windows gewidmet.