Abstract
In this paper we present an implementation of May Happen in Parallel analysis for Java that attempts to address some of the practical implementation concerns of the original work. We describe a design that incorporates techniques for aiding a feasible implementation and expanding the range of acceptable inputs. We provide experimental results showing the utility and impact of our approach and optimizations using a variety of concurrent benchmarks.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
SPEC JVM98 Benchmarks, http://wwww.spec.org/jvm98
Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pp. 103–114. ACM Press, New York (2003)
Bogda, J., Holzle, U.: Removing unnecessary synchronization in Java. In: Proceedings of the ACM SIGPLAN 1999 Conference on Object-Oriented Programming, Systems, Languages, and Application, November 1999, pp. 35–46 (1999)
Choi, J.-D., Lee, K., Loginov, A., Sarkar, R.O.V., Sirdharan, M.: Efficient and precise datarace detection for multithreaded object-oriented programs. In: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, Berlin, Germany (June 2002)
Dean, J., Grove, D., Chambers, C.: Optimization of object-oriented programs using static class hierarchy analysis. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 77–101. Springer, Heidelberg (1995)
Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. In: Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pp. 242–256 (1994)
Ruf, E.: Effective synchronization removal for Java. In: Proceedings of the ACM SIGPLAN 2000 Conference on Programming language design and implementation, June 2000, pp. 208–218 (2000)
Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its uses in optimization. ACM Transactions on Programming Languages and Systems (July 1987)
Flanagan, C., Freund, S.N.: Type-based race detection for Java. In: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, pp. 219–232. ACM Press, New York (2000)
Ferrante, J., Ottenstein, K., Warren, J.: Compile-time analysis and optimization of explicitly parallel programs. Journal of Parallel algorithms and applications (1997)
Lea, D.: Concurrent Programming in Java Design Principles and Patterns. Addison-Wesley, Reading (1997)
Lea, D.: Concurrent Programming in Java Design Principles and Patterns, 2nd edn. Addison-Wesley, Reading (1999)
Lee, J.: Compilation techniques for explicitly parallel programs. PhD thesis, University of Illinois at Unbana-Champaign (1999)
Lhoták, O.: Spark: A flexible points-to analysis framework for Java. Master’s thesis, McGill University (December 2002)
Naumovich, G., Avrumin, G.S., Clarke, L.A.: An efficient algorithm for computing MHP information for concurrent Java program. In: Proceedings of the 7th European engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering, Toulous, France (1999)
O’Callahan, R., Choi, J.-D.: Hybrid dynamic data race detection. In: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 167–178. ACM Press, New York (2003)
Rountev, A., Milanova, A., Ryder, B.G.: Points-to analysis for Java using annotated constraints. In: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pp. 43–55. ACM Press, New York (2001)
Sarkar, V.: Analysis and optimization of explicitly parallel programs using the parallel program graph representation. In: Proceedings of the 10th International Workshop on Languages and Compilers for Parallel Computing, Minneapolis, MN. LNCS. Springer, Heidelberg (1997)
Sarkar, V., Simons, B.: Parallel program graphs and their classification. In: Proceedings of ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, Montreal, Quebec, Canada (1998)
Steensgaard, B.: Points-to analysis in almost linear time. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 32–41. ACM Press, New York (1996)
Java Grande Benchmark Suite, http://www.epcc.ed.ac.uk/javagrande/javag.html
Vallée-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: Soot - a Java optimization framework. In: Proceedings of CASCON 1999, pp. 125–135 (1999)
von Praun, C., Gross, T.R.: Object race detection. In: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pp. 70–82. ACM Press, New York (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Li, L., Verbrugge, C. (2005). A Practical MHP Information Analysis for Concurrent Java Programs. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_15
Download citation
DOI: https://doi.org/10.1007/11532378_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28009-5
Online ISBN: 978-3-540-31813-2
eBook Packages: Computer ScienceComputer Science (R0)