To tackle heterogeneous architectures and fully utilize ever-increasing hardware complexity, the event-driven parallel (EDP) runtime is a growing trend in the high-performance computing area. EDP runtime allows the programmer to focus on program logic, such as control dependence and data dependence, without worrying about low efficient program tuning. However, the applications written on top of the EDP runtime remain vulnerable to data race. Existing data race detection tools either do not support the primitives in EDP runtime or fails to utilize the structural information of the program which incurs unnecessary overhead.
In this dissertation, we propose a graph-traversal based data race detection method for event-driven parallel runtimes. It leverages reachability graph (encodes the dependency of a program), to check the happens-before relation between memory accesses. In order to reduce the time complexity on race detection, we propose a few optimizations, such as reachability cache and reversed reachability graph to avoid unnecessary graph traversal and path compression to reduce the number of iteration during graph traversal. Based on our race detection technique, we have developed a prototype for the Intel Open Community Runtime (OCR). The evaluation on the OCR benchmarks shows that our tool handles all OCR constructs and the time overhead for race detection is comparable to past works.