Skip to main content

Hierarchical Pointer Analysis for Distributed Programs

  • Conference paper
Book cover Static Analysis (SAS 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4634))

Included in the following conference series:

Abstract

We present a new pointer analysis for use in shared memory programs running on hierarchical parallel machines. The analysis is motivated by the partitioned global address space languages, in which programmers have control over data layout and threads and can directly read and write to memory associated with other threads. Titanium, UPC, Co-Array Fortran, X10, Chapel, and Fortress are all examples of such languages. The novelty of our analysis comes from the hierarchical machine model used, which captures the increasingly hierarchical nature of modern parallel machines. For example, the analysis can distinguish between pointers that can reference values within a thread, within a shared memory multiprocessor, or within a network of processors. The analysis is presented with a formal type system and operational semantics, articulating the various ways in which pointers can be used within a hierarchical machine model. The hierarchical analysis has several applications, including race detection, sequential consistency enforcement, and software caching. We present results of an implementation of the analysis, applying it to data race detection, and show that the hierarchical analysis is very effective at reducing the number of false races detected.

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. Allen, E., Chase, D., Luchangco, V., Maessen, J.-W., Ryu, S., G. L. S. Jr., Tobin-Hochstadt, S.: The Fortress Language Specification, Version 0.866. Sun Microsystem Inc. (February 2006)

    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. Applied Numerical Algorithms Group (ANAG). Chombo, http://seesar.lbl.gov/ANAG/software.html

  4. Bailey, D.H., Barszcz, E., Barton, J.T., Browning, D.S., Carter, R.L., Dagum, D., Fatoohi, R.A., Frederickson, P.O., Lasinski, T.A., Schreiber, R.S., Simon, H.D., Venkatakrishnan, V., Weeratunga, S.K.: The NAS Parallel Benchmarks. The International Journal of Supercomputer Applications 5(3), 63–73 (1991)

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

    Google Scholar 

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

    Google Scholar 

  7. Carlson, W., Draper, J., Culler, D., Yelick, K., Brooks, E., Warren, K.: Introduction to UPC and language specification. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences (1999)

    Google Scholar 

  8. Cray Inc. Chapel Specification 0.4 (February 2005)

    Google Scholar 

  9. Datta, K., Bonachea, D., Yelick, K.: Titanium performance and potential: an NPB experimental study. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds.) LCPC 2005. LNCS, vol. 4339, Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  10. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, London, UK (2000)

    Google Scholar 

  11. Hicks, J.: Experiences with compiler-directed storage reclamation. In: FPCA 1993. Proceedings of the conference on Functional programming languages and computer architecture, pp. 95–105. ACM Press, New York, USA (1993)

    Chapter  Google Scholar 

  12. Hilfinger, P.N., Bonachea, D., Gay, D., Graham, S., Liblit, B., Pike, G., Yelick, K.: Titanium language reference manual. Technical Report UCB/CSD-04-1163-x, University of California, Berkeley (September 2004)

    Google Scholar 

  13. Kamil, A.: Analysis of Partitioned Global Address Space Programs. Master’s thesis, University of California, Berkeley (December 2006)

    Google Scholar 

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

    Google Scholar 

  15. Kamil, A., Yelick, K.: Concurrency analysis for parallel programs with textually aligned barriers. In: Proceedings of the 18th International Workshop on Languages and Compilers for Parallel Computing (October 2005)

    Google Scholar 

  16. Liblit, B., Aiken, A.: Type systems for distributed data structures. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2000, ACM Press, New York (2000)

    Google Scholar 

  17. Liblit, B., Aiken, A., Yelick, K.: Type systems for distributed data sharing. In: International Static Analysis Symposium, San Diego, California (June 2003)

    Google Scholar 

  18. Lin, Y., Padua, D.A.: Analysis of irregular single-indexed array accesses and its applications in compiler optimizations. In: Watt, D.A. (ed.) CC 2000 and ETAPS 2000. LNCS, vol. 1781, pp. 202–218. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  19. Maydan, D.E., Amarasinghe, S.P., Lam, M.S.: Array-data flow analysis and its use in array privatization. In: POPL 1993. Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, New York, NY, USA, pp. 2–15. ACM Press, New York, NY, USA (1993)

    Chapter  Google Scholar 

  20. Maydan, D.E., Amarsinghe, S., Lam, M.S.: Data dependence and data-flow analysis of arrays. In: Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing, London, UK, pp. 434–448. Springer, Heidelberg (1993)

    Google Scholar 

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

  22. Paek, Y., Hoeflinger, J., Padua, D.: Efficient and precise array access analysis. ACM Trans. Program. Lang. Syst. 24(1), 65–109 (2002)

    Article  Google Scholar 

  23. Rugina, R., Rinard, M.: Pointer analysis for multithreaded programs. In: PLDI 1999. Proceedings of the ACM SIGPLAN 1999 Conference on Programming Language Design and Implementation, pp. 77–90. ACM Press, New York, USA (1999)

    Chapter  Google Scholar 

  24. Saraswat, V.: Report on the Experimental Language X10, Version 0.41. IBM Research (February 2006)

    Google Scholar 

  25. Silicon Graphics. CF90 co-array programming manual. Technical Report SR-3908 3.1, Cray Computer (1994)

    Google Scholar 

  26. The UPC Consortium. UPC Language Specifications, Version 1.2 (May 2005)

    Google Scholar 

  27. Wen, T., Colella, P.: Adaptive mesh refinement in titanium. In: IPDPS. Proceedings of the 19th International Parallel and Distributed Processing Symposium (2005)

    Google Scholar 

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

  29. Zhu, Y., Hendren, L.J.: Communication optimizations for parallel C programs. In: PLDI 1998. Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation, New York, NY, USA, pp. 199–211. ACM Press, New York, USA (1998)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hanne Riis Nielson Gilberto Filé

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kamil, A., Yelick, K. (2007). Hierarchical Pointer Analysis for Distributed Programs. In: Nielson, H.R., Filé, G. (eds) Static Analysis. SAS 2007. Lecture Notes in Computer Science, vol 4634. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74061-2_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-74061-2_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-74060-5

  • Online ISBN: 978-3-540-74061-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics