Abstract by S. Jacob Powell
S. Jacob Powell
ZipperOTF: Automatic, Precise, and Simple Data Race Detection
Parallel programming is a technique for speeding up software by executing multiple tasks concurrently.
This technique can introduce data race, a class of errors that occur when two or more parallel tasks access a shared resource concurrently and at least one of the accesses is a write.
In the presence of data race, the order in which concurrent tasks execute can affect program behavior.
Because this order is not fully under programmer control, data race can be difficult to locate.
Automatic data race detection can address this difficulty.
Standard algorithms for automatic data race detection track which concurrent tasks last accessed a shared resource.
Our previous work, Zipper, instead records a partial order over groups of accesses to shared resources.
We present ZipperOTF, which simplifies and generalizes Zipper and enables data race detection before program termination.