|
ABSTRACT
Java programs perform many synchronization operations on data structures. Some of these synchronization are unnecessary; in particular, if an object is reachable only by a single thread, concurrent access is impossible and no synchronization is needed. We describe an interprocedural, flow- and context-insensitive dataflow analysis that finds such situations. A global optimizing transformation then eliminates synchronizations on these objects. For every program in our suite of ten Java benchmarks consisting of SPECjvm98 and others, our system optimizes over 90% of the alias sets containing at least one synchronized object. As a result, the dynamic frequency of synchronizations is reduced by up to 99%. For two benchmarks that perform synchronizations very frequently, this optimization leads to speedups of 36% and 20%.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Ole Agesen , David Detlefs , Alex Garthwaite , Ross Knippel , Y. S. Ramakrishna , Derek White, An efficient meta-lock for implementing ubiquitous synchronization, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.207-222, November 01-05, 1999, Denver, Colorado, United States
|
| |
2
|
Jonathan Aldrich, Craig Chambers, Emin Gun Sirer, and Susan Eggers. Static Analyses for Eliminating Unnecessary Synchronization from Java Programs. in Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '99), Denver, Colorado, 1-5 November 1999.
|
| |
3
|
|
 |
4
|
David F. Bacon , Ravi Konuru , Chet Murthy , Mauricio Serrano, Thin locks: featherweight synchronization for Java, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.258-268, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
5
|
|
 |
6
|
Jong-Deok Choi , Manish Gupta , Mauricio Serrano , Vugranam C. Sreedhar , Sam Midkiff, Escape analysis for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-19, November 01-05, 1999, Denver, Colorado, United States
|
| |
7
|
James C. Corbett. Using Shape Analysis to Reduce Finite- State Models of Concurrent Java Programs. Technical Report ICS-TR-98-20, Department of Information and Computer Science, University of Hawaii, October 14, 1998.
|
| |
8
|
|
 |
9
|
|
 |
10
|
Julian Dolby , Andrew A. Chien, An evaluation of automatic object inline allocation techniques, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-20, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
11
|
Andrew Duncan, Bogdan Cocosel, Costin lancu, Holger Kiente, Radu P, ugina, Urs H61zle, and Martin Rinard. OSUIF: SUIF 2.0 With Objects. Overview paper from the SUIF Workshop at Stanford University, August 1997.
|
| |
12
|
Robert Fitzgerald, Todd B. Knoblock, Erik Ruf, Bjame Steensgaard, and David Tarditi. Marmot: an Optimizing Compiler for Java. Microsoft Technical Report, November 1998.
|
| |
13
|
David Gay and Bjarne Steensgaard. Stack Allocating Objects In Java. Microsoft Technical Report, November 1998.
|
 |
14
|
Rakesh Ghiya , Laurie J. Hendren, Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-15, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237724]
|
| |
15
|
|
 |
16
|
|
| |
17
|
Java Generic Library (JGL). http://www.objectspace.corn/ products/jgl.
|
| |
18
|
JavaClass parsing library, http://www.inf.fu-berlin.de/-dahrn/ JavaClass.
|
| |
19
|
JavaCUP parser generator, http://www.cs.princeton.edu/ -appel/moderrffj ava/CUP.
|
| |
20
|
JLex lexieal analyzer generator, http://www.cs.princeton.edu/ -appel/modem/j ava/JLex.
|
| |
21
|
|
| |
22
|
|
| |
23
|
Andreas Krall and Mark Probst. Monitors and Exceptions: How to implement Java efficiently. In S. Hassanzadeh and K. Schauser, editors, ACM 1998 Workshop on Java for High-Performance Network Computing, pages 15-24, Palo Alto, March 1998. ACM.
|
| |
24
|
|
 |
25
|
|
| |
26
|
Gilles Muller, BArbara Moura, Fabrice Bellard, and Charles Consel. Harissa: a Flexible and Efficient Java Environment Mixing Bytecode and Compiled Code. In Proceedings of the Third Conference on Object-Oriented Technologies and Systems (COOTS '97), pages 1-20, Berkeley, California, June 1997.
|
 |
27
|
|
 |
28
|
|
 |
29
|
Mooly Sagiv , Thomas Reps , Reinhard Wilhelm, Solving shape-analysis problems in languages with destructive updating, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.16-31, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237725]
|
| |
30
|
SPEC Java virtual machine benchmark suite. Standard Performance Evaluation Corporation. SPECjvm98 Documentation, Release 1.0. August 1998. http:llwww.spec.org/osgljvm981 j vm98/doc/index.html.
|
 |
31
|
|
CITED BY 60
|
|
|
|
|
|
|
|
Y. Aridor , M. Factor , A. Teperman , T. Eilam , A. Schuster, A high performance cluster JVM presenting a pure single system image, Proceedings of the ACM 2000 conference on Java Grande, p.168-177, June 03-04, 2000, San Francisco, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mikel Luján , Mikel Luján , John R. Gurd , T. L. Freeman , José Miguel, Elimination of Java array bounds checks in the presence of indirection, Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande, p.76-85, November 03-05, 2002, Seattle, Washington, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sara Porat , Marina Biberstein , Larry Koved , Bilha Mendelson, Automatic detection of immutable fields in Java, Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research, p.10, November 13-16, 2000, Mississauga, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long Li , Bo Huang , Jinquan Dai , Luddy Harrison, Automatic multithreading and multiprocessing of C programs for IXP, Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, June 15-17, 2005, Chicago, IL, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tatiana Shpeisman , Vijay Menon , Ali-Reza Adl-Tabatabai , Steven Balensiefer , Dan Grossman , Richard L. Hudson , Katherine F. Moore , Bratin Saha, Enforcing isolation and ordering in STM, ACM SIGPLAN Notices, v.42 n.6, June 2007
|
|
|
|
|
|
|
|
|
|
|
|
Nikola Grcevski , Allan Kielstra , Kevin Stoodley , Mark Stoodley , Vijay Sundaresan, JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications, Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium, p.12-12, May 06-07, 2004, San Jose, California
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alexandru Nicolau , Guangqiang Li , Alexander V. Veidenbaum , Arun Kejariwal, Synchronization optimizations for efficient execution on multi-cores, Proceedings of the 23rd international conference on Supercomputing, June 08-12, 2009, Yorktown Heights, NY, USA
|
|