ACM Home Page
Please provide us with feedback. Feedback
Barrier matching for programs with textually unaligned barriers
Full text PdfPdf (203 KB)
Source
Principles and Practice of Parallel Programming archive
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming table of contents
San Jose, California, USA
SESSION: Memory models and concurrency analysis table of contents
Pages: 194 - 204  
Year of Publication: 2007
ISBN:978-1-59593-602-8
Authors
Yuan Zhang  University of Delaware, Newark, DE
Evelyn Duesterwald  IBM T.J. Watson Research Center, Hawthorne, NY
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 66,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1229428.1229472
What is a DOI?

ABSTRACT

Barriers, a common synchronization primitive in SPMD-style programs, are used to partition a program into a sequence of parallel phases. Popular parallel programming models, such as MPI and OpenMP, allow barriers to be textually unaligned. Textually unaligned barriers make it difficult for the programmer to understand the synchronization phases in the program, and they can easily lead to synchronization errors. In this paper, we present an interprocedural analysis for matching barriers in a program in order to detect synchronization errors, or, if no such errors exist, to determine the synchronization phases of the program. Our analysis uses a combination of path expressions and interprocedural program slicing to match synchronizing barrier statements. If the barrier matching succeeds, the analysis determines the sets of barrier statements that synchronize together. A matching failure indicates the presence of a synchronization error and the analysis constructs a counter example to illustrate the error. We have implemented the analysis in an MPI checker tool for programs written in C and successfully analyzed the synchronization structure of several MPI benchmarks.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
L. O. Andersen. Program Analysis and Specialization For the C Programming Language. PhD thesis, University of Copenhagen, 1994.
3
4
5
6
 
7
Ana M. Erosa and Laurie J. Hendren. Taming control flow: A structured approach to eliminating goto statements. In Proceedings of the 1994 International Conference on Computer Languages, pages 229--240, Toulouse, France, May 1994.
 
8
9
 
10
11
 
12
 
13
Yuan Lin. Static nonconcurrency analysis of openmp programs. In Fist International Workshop on OpenMP, 2005.
 
14
OpenMP C/C++ Manual. http://www.openmp.org/specs/.
15
 
16
 
17
Karl J. Ottenstein and Linda M. Ottenstein. The program dependence graph in a software development environment. Software Engineering Notes, 9(3), 1984.
 
18
P. Hulfinger, D. Bonachea, K. Datta, D. Gay, S.Graham, B. Liblit, G. Pike, J. Su, and K. Yelick. Titanium language reference manual. Technical Report UCB/EECS-2005-15, U.C. Berkeley, 2005.
 
19
Shuyi Shao, Alex K. Jones, and Rami Melhem. A compiler-based communication analysis approach for multiprocessor systems, 2006.
20
21
 
22
The Message Passing Interface (MPI) standard. http://www-unix.mcs.anl.gov/mpi/.
23
24
25
26
27
28
 
29
Mark Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, July 1984.

Collaborative Colleagues:
Yuan Zhang: colleagues
Evelyn Duesterwald: colleagues