Scalable and Precise Dynamic Datarace Detection for Structured Parallelism
In this paper, the authors presented a new dynamic data race detection algorithm for structured parallel programs. The algorithm can process the program in parallel, uses O(1) space per memory location and admits an efficient implementation. The algorithm tracks what can happen in parallel via a new data structure called the Dynamic Program Structure Tree (DPST), and maintains two readers and a writer for each shared memory location in order to track potential conflicts between different tasks. They implemented the algorithm and demonstrated its effectiveness on a range of benchmarks.