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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
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)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (May 1994)
Applied Numerical Algorithms Group (ANAG). Chombo, http://seesar.lbl.gov/ANAG/software.html
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)
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)
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)
Cray Inc. Chapel Specification 0.4 (February 2005)
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)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, London, UK (2000)
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)
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)
Kamil, A.: Analysis of Partitioned Global Address Space Programs. Master’s thesis, University of California, Berkeley (December 2006)
Kamil, A., Su., J., Yelick, K.: Making sequential consistency practical in Titanium. In: Supercomputing 2005 (November 2005)
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)
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)
Liblit, B., Aiken, A., Yelick, K.: Type systems for distributed data sharing. In: International Static Analysis Symposium, San Diego, California (June 2003)
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)
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)
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)
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)
Paek, Y., Hoeflinger, J., Padua, D.: Efficient and precise array access analysis. ACM Trans. Program. Lang. Syst. 24(1), 65–109 (2002)
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)
Saraswat, V.: Report on the Experimental Language X10, Version 0.41. IBM Research (February 2006)
Silicon Graphics. CF90 co-array programming manual. Technical Report SR-3908 3.1, Cray Computer (1994)
The UPC Consortium. UPC Language Specifications, Version 1.2 (May 2005)
Wen, T., Colella, P.: Adaptive mesh refinement in titanium. In: IPDPS. Proceedings of the 19th International Parallel and Distributed Processing Symposium (2005)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)