Skip to main content
Log in

Containers on the Parallelization of General-Purpose Java Programs

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Static parallelization of general-purpose programs is still impossible, in general, due to their common use of pointers, irregular data structures, and complex control-flows. One promising strategy is to exploit parallelism at runtime. Runtime parallelization schemes, particularly data speculations, alleviate the need to statically prove independent computations at compile-time. However, studies show that many real-world applications exhibit limited speculative parallelism to offset the overhead and penalty of speculation schemes. This paper addresses this issue by using compiler analyses to compensate for speculative parallelizations. We focus on general-purpose Java programs with extensive use of Java container classes. In our scheme, compilers serve as a guideline of where to speculate by “lazily” detecting dependences that are mostly static, while leaving those that are more dynamic to runtime. We also propose techniques to enhance speculative parallelism in the programs. The experimental results show that, after eliminating static dependences, the four applications we study exhibit significant parallelism that can be gainfully exploited by a speculative parallelization system.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. L. Rauchwerger and D. Padua. The lrpd test: Runtime parallelization of loops with privatization and reduction parallelization, ACM SIGPLAN'95 Conf. Progr. Lang. Design and Implementation (June 1995).

  2. J. G. Steffan and T. C. Mowry, The potential for using thread-level data speculation to facilitate automatic parallelization, Proc. Fourth Int'l. Symp. on High-Performance Computer Architecture (February 1998).

  3. L. Hammond, M. Willey, and K. Olukotun, Data speculation support for a chip multi-processor, Proc. Eighth ACM Conf. on Architectural Support for Progr. Lang. Operat. Syst. (October 1998).

  4. J. Oplinger, D. Heine, S.-W. Liao, B. A. Nayfeh, M. Lam, and K. Olukotun, Software and hardware for exploiting speculative parallelism with a multiprocessor. Technical Report CSL-TR-97-715, Stanford University Computer Systems Lab (February 1997).

  5. G. S. Sohi, S. Breach, and T. N. Vijaykumar. Multiscalar processors, Proc. 22th Int'l. Symp. Computer Architecture (July 1995).

  6. Sun Microsystem, Java platform 1.2 api specification. http://www.javasoft.com-products/ jdk/1.2-docs/.

  7. D. R. Chase, M. Wegman, and F. K. Zadeck, Analysis of pointers and structures, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation (June 1990).

  8. L. J. Hendren and G. R. Gao, Designing programming languages for analyzability: A fresh look at pointer data structures, Proc. Int'l. Conf. Computer Lang. (April 1992).

  9. R. Ghiya and L. J. Hendren, Putting pointer analysis to work, 25th ACM Symp. Principles Progr. Lang. (January 1998). Proc. Int'l. Conf. Computer Lang. (April 1992).

  10. J. Hummel, L. J. Hendren, and A. Nicolau, A general data dependence test for dynamic, pointer-based data structures, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation (June 1994).

  11. R. Ghiya and L. J. Hendren, Is it a tree, a dag, or a cyclic graph? A shape analysis for heap-directed pointers in C, Proc. 23rd ACM SIGPLAN SIGACT Symp. on Principles Progr. Lang. (January 1996).

  12. J. Hummel, L. J. Hendren, and A. Nicolau, A language for conveying the aligning properties of dynamic, pointer-based data structures, Proc. Eighth Int'l. Parallel Processing Symp. (April 1994).

  13. M. C. Rinard and P. C. Diniz, Commutativity analysis: A new analysis technique for parallelizing compilers, ACM Trans. Progr. Lang. Syst. 19 (November 1997).

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Wu, P., Padua, D. Containers on the Parallelization of General-Purpose Java Programs. International Journal of Parallel Programming 28, 589–605 (2000). https://doi.org/10.1023/A:1007564701813

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1007564701813

Navigation