Skip to main content

Concurrency Analysis for Parallel Programs with Textually Aligned Barriers

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4339))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aiken, A., Gay, D.: Barrier inference. In: Principles of Programming Languages, San Diego, California (January 1998)

    Google Scholar 

  2. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (May 1994)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Article  MATH  Google Scholar 

  6. Bonachea, D.: GASNet specification, v1.1. Technical Report UCB/CSD-02-1207, University of California, Berkeley (November 2002)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  13. Gay, D.: Barrier Inference. PhD thesis, University of California, Berkeley (May 1998)

    Google Scholar 

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

    Google Scholar 

  15. Jeremiassen, T., Eggers, S.: Static analysis of barrier synchronization in explicitly parallel programs. In: Parallel Architectures and Compilation Techniques, Montreal, Canada (August 1994)

    Google Scholar 

  16. Kamil, A., Su., J., Yelick, K.: Making sequential consistency practical in Titanium. In: Supercomputing 2005 (November 2005) (to appear)

    Google Scholar 

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

  18. Masticola, S., Ryder, B.: Non-concurrency analysis. In: Principles and practice of parallel programming, San Diego, California (May 1993)

    Google Scholar 

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

    Article  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  23. United States Department of Defense. Reference manual for the Ada programming language. Technical Report ANSI/MIL-STD-1815A,Washington, D.C. (January 1983)

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics