A static analysis tool using a three-step approach for data races in HPC programs

Yasushi Negishi, Hiroki Murata, Guojing Cong, Hui Fang Wen, I. Hsin Chung

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

2 Scopus citations

Abstract

Multicore processors are becoming dominant in the high performance computing (HPC) area, so multithread programming with OpenMP is becoming a key to good performance on such processors, though debugging problems remain. In particular, it is difficult to detect data races among threads with nondeterministic results, thus calling for tools to detect data races. Because HPC programs tend to run for long periods, detection tools that do not need to run the target programs are strongly preferred. We developed a static program analysis tool to detect data races in OpenMP loops in FORTRAN programs. Programmers can quickly use the tool at compile time without executing the target program. Because static analysis tools tend to report many false positives, we counted the false positives in some large applications to assess the utility and limits of static analysis tools. We have devised a new approach to detect data races. Our approach combines existing program analysis methods with a new analysis. We experimented with NAS parallel benchmarks and two real applications, GTC for plasma physics and GFMC for nuclear physics. Our new analysis method also reduces number of reported candidates from totally 97 to 33 in these applications. We found 13 previously unknown bugs out of 33 candidates reported by our prototype. Our analysis is fast enough for practical use, since the analysis time for the NAS parallel benchmark was shorter than the compilation time (18.5 seconds compared to 33.0 seconds).

Original languageEnglish
Title of host publication2012 10th Workshop on Parallel and Distributed Systems
Subtitle of host publicationTesting, Analysis, and Debugging, PADTAD 2012 - Proceedings
Pages11-17
Number of pages7
DOIs
StatePublished - 2012
Externally publishedYes
Event2012 10th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD 2012 - Minneapolis, MN, United States
Duration: Jul 16 2012Jul 16 2012

Publication series

Name2012 10th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD 2012 - Proceedings

Conference

Conference2012 10th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD 2012
Country/TerritoryUnited States
CityMinneapolis, MN
Period07/16/1207/16/12

Keywords

  • Data Race
  • High Performance Computing
  • Multithread
  • OpenMP

Fingerprint

Dive into the research topics of 'A static analysis tool using a three-step approach for data races in HPC programs'. Together they form a unique fingerprint.

Cite this