<span class="var-sub_title">Incremental Static Race Detection in OpenMP Programs</span> SC18 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

2nd International Workshop on Software Correctness for HPC Applications (Correctness 2018)

Incremental Static Race Detection in OpenMP Programs

Authors: Bradley Swain (Texas A&M University)

Abstract: OpenMP is a high level API that allows programmers to write concurrent programs on multi-core systems. OpenMP provides an interface for easily managing teams of threads and concurrent tasks allowing the programmer to focus on modeling a problem concurrently rather than dealing with low level thread management details for each system on which the code may run. Although OpenMP can automatically handle many parts of writing parallel programs (thread management, work distribution, scheduling, etc.), OpenMP offers no protections against data races. The programmer is left with the difficult task of ensuring that OpenMP programs are free of data races. Many concurrent programs, especially those related to high performance computing, can be difficult for programmers to reason through and are particularly prone to data races due to programmer error.

This paper presents an extensible and incremental static analysis technique for detecting data races in OpenMP programs at compile time. Our technique is comprised of two primary components:

(i): Array Index Analysis, which is used to detect when two array accesses made from separate threads may overlap resulting in multiple accesses to the same location in memory.

(ii): An Incremental Phase Graph is used to build a May Happen in Parallel (MHP) model that is utilized in determining if overlapping array accesses are capable of occurring concurrently.

Archive Materials

Back to 2nd International Workshop on Software Correctness for HPC Applications (Correctness 2018) Archive Listing

Back to Full Workshop Archive Listing