Towards Incremental Static Race Detection in OpenMP Programs Conference Paper uri icon

abstract

  • 2018 IEEE. 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 protection 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.

name of conference

  • 2018 IEEE/ACM 2nd International Workshop on Software Correctness for HPC Applications (Correctness)

published proceedings

  • PROCEEDINGS OF CORRECTNESS 2018: 2ND IEEE/ACM INTERNATIONAL WORKSHOP ON SOFTWARE CORRECTNESS FOR HPC APPLICATIONS

author list (cited authors)

  • Swain, B., & Huang, J.

citation count

  • 2

complete list of authors

  • Swain, Bradley||Huang, Jeff

publication date

  • November 2018