Abstract
A fundamental problem in the analysis of parallel programs is to determine when two statements in a program may run concurrently. This analysis is the parallel analog to control flow analysis on serial programs and is useful in detecting parallel programming errors and as a precursor to semantics-preserving code transformations. We consider the problem of analyzing parallel programs that access shared memory and use barrier synchronization, specifically those with textually aligned barriers and single-valued expressions. We present an intermediate graph representation for parallel programs and an efficient interprocedural analysis algorithm that conservatively computes the set of all concurrent statements. We improve the precision of this algorithm by using context-free language reachability to ignore infeasible program paths. We then apply the algorithms to static race detection and show that it can benefit from the concurrency information provided.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aiken, A., Gay, D.: Barrier inference. In: Principles of Programming Languages, San Diego, California (January 1998)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (May 1994)
Bacon, D.F., Strom, R.E., Tarafdar, A.: Guava: a dialect of Java without data races. In: OOPSLA 2000: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 382–400. ACM Press, New York (2000)
Balls, G.T.: A Finite Difference Domain Decomposition Method Using Local Corrections for the Solution of Poisson’s Equation. PhD thesis, Department of Mechanical Engineering, University of California at Berkeley (1999)
Berger, M., Colella, P.: Local adaptive mesh refinement for shock hydrodynamics. Journal of Computational Physics 82(1), 64–84 (1989); Lawrence Livermore Laboratory Report No. UCRL-97196
Bonachea, D.: GASNet specification, v1.1. Technical Report UCB/CSD-02-1207, University of California, Berkeley (November 2002)
Boyapati, C., Lee, R., Rinard, M.: Ownership types for safe programming: preventing data races and deadlocks. In: OOPSLA 2002: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 211–230. ACM Press, New York (2002)
Cheng, G.-I., Feng, M., Leiserson, C.E., Randall, K.H., Stark, A.F.: Detecting data races in Cilk programs that use locks. In: SPAA 1998: Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures, pp. 298–309. ACM Press, New York (1998)
Christiaens, M., De Bosschere, K.: TRaDe, a topological approach to on-the-fly race detection in Java programs. In: Proceedings of the Java Virtual Machine Research and Technology Symposium (JVM 2001) (April 2001)
Dinning, A., Schonberg, E.: Detecting access anomalies in programs with critical sections. In: PADD 1991: Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging, pp. 85–96. ACM Press, New York (1991)
Duesterwald, E., Soffa, M.: Concurrency analysis in the presence of procedures using a data-flow framework. In: Symposium on Testing, analysis, and verification, Victoria, British Columbia (October 1991)
Flanagan, C., Freund, S.N.: Type-based race detection for Java. In: PLDI 2000: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, pp. 219–232. ACM Press, New York (2000)
Gay, D.: Barrier Inference. PhD thesis, University of California, Berkeley (May 1998)
Hilfinger, P.N., Bonachea, D., Datta, K., Gay, D., Graham, S., Liblit, B., Pike, G., Su, J., Yelick, K.: Titanium language reference manual, version 2.19. Technical Report UCB/EECS- 2005-15, University of California, Berkeley (November 2005)
Jeremiassen, T., Eggers, S.: Static analysis of barrier synchronization in explicitly parallel programs. In: Parallel Architectures and Compilation Techniques, Montreal, Canada (August 1994)
Kamil, A., Su., J., Yelick, K.: Making sequential consistency practical in Titanium. In: Supercomputing 2005 (November 2005) (to appear)
Kamil, A., Yelick, K.: Concurrency analysis for parallel programs with textually aligned barriers. Technical Report UCB/EECS-2006-41, EECS Department, University of California, Berkeley, April 18 (2006), Available at, http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-41.html
Masticola, S., Ryder, B.: Non-concurrency analysis. In: Principles and practice of parallel programming, San Diego, California (May 1993)
Netzer, R.H.B., Miller, B.P.: What are race conditions?: Some issues and formalizations. ACM Lett. Program. Lang. Syst. 1(1), 74–88 (1992)
O’Callahan, R., Choi, J.-D.: Hybrid dynamic data race detection. In: PPoPP 2003: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 167–178. ACM Press, New York (2003)
Reps, T.: Program analysis via graph reachability. In: ILPS 1997: Proceedings of the 1997 international symposium on Logic programming, pp. 5–19. MIT Press, Cambridge (1997)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15(4), 391–411 (1997)
United States Department of Defense. Reference manual for the Ada programming language. Technical Report ANSI/MIL-STD-1815A,Washington, D.C. (January 1983)
von Praun, C., Gross, T.R.: Static conflict analysis for multi-threaded object-oriented programs. In: PLDI 2003: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pp. 115–128. ACM Press, New York (2003)
Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P., Graham, S., Gay, D., Colella, P., Aiken, A.: Titanium: A high-performance Java dialect. In: Workshop on Java for High-Performance Network Computing, Stanford, California (February 1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kamil, A., Yelick, K. (2006). Concurrency Analysis for Parallel Programs with Textually Aligned Barriers. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_13
Download citation
DOI: https://doi.org/10.1007/978-3-540-69330-7_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69329-1
Online ISBN: 978-3-540-69330-7
eBook Packages: Computer ScienceComputer Science (R0)