skip to main content
10.1145/2338967.2336809acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
Article

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

Published: 16 July 2012 Publication History

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).

References

[1]
The OpenMP API specification for Parallel Programming: http://www.openmp.org/
[2]
NAS Parallel Benchmarks: http://www.nas.nasa.gov/Software/NPB.
[3]
H. Jin, M. Frumkin and J. Yan, "The OpenMP Implementation of NAS Parallel Benchmarks and its Performance": http://www.nas.nasa.gov/News/Techreports/ 1999/PDF/nas-99-011.pdf
[4]
Gyrokinetic Toroidal Code (GTC) Project page: http://w3.pppl.gov/theory/proj_gksim.html
[5]
Dr. Ewing Lusk, et al., "More SCALABILITY, Less PAIN," SciDAC REVIEW: http://www.scidacreview.org/1002/html/adlb.html
[6]
DRD: A Thread Error Detector: http://valgrind.org/docs/manual/drd-manual.html
[7]
Intel Parallel Inspector: http://www.xlsoft.com/jp/products/ intel/parallel/inspector.html
[8]
VivaMP - a tool for OpenMP: http://www.viva64.com/en/a/0058//
[9]
Vineet Kahlon, Yu Yang, Sriram Sankaranarayanan and Aarti Gupta, "Fast and Accurate Static Data-Race Detection for Concurrent Programs": http://dl.acm.org/citation.cfm?id=1770386
[10]
XL Fortran for AIX: http://www- 01.ibm.com/software/awdtools/fortran/xlfortran/aix/
[11]
CoCoLab Fortran Parser: http://www.cocolab.com/parse_fortran.html
[12]
The Omega Project: http://www.cs.umd.edu/projects/omega/
[13]
Tor E. Jeremiassen, and Susan J. Eggers, "Reducing False Sharing on Shared Memory Multiprocessors through Compile Time Data Transformations," PPOPP'95 Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming 1995.
[14]
J. Overbey, S. Xanthos, R. Johnson, and B. Foote. "Refactoring for Fortran and high-performance computing." Second International Workshop on Software Engineering for High Performance Computing System Applications, May 2005.
[15]
A. Garrido and R. Johnson. "Challenges of refactoring c programs." Proceedings of the International Workshop on Principles of Software Evolution, pages 6-14, May 2002.
[16]
Y. Negishi, H. Murata, and T. Moriyama, "A proposal of Operation History Management System for Source-to-Source Optimization for HPC Programs." Parallel and Distributed Systems: Testing, Analysis and Debugging, July, 2009.
[17]
G. Cong, I. Chung, H. Wen, D. J. Klepacki, H. Murata, Y. Negishi and T. Moriyama, "A Systematic Approach toward Automated Performance Analysis and Tuning." IEEE Transactions on Parallel and Distributed Systems, March 2012.
[18]
G. Li, and G. Gopalakrishnan, "Scalable SMT-based verification of GPU kernel functions," FSE'10 Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, Nov. 2010.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PADTAD 2012: Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
July 2012
46 pages
ISBN:9781450314565
DOI:10.1145/2338967
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 July 2012

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ISSTA '12
Sponsor:

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 06 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media