Containers on the parallelization of general-purpose Java programs

Peng Wu, David Padua

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish (US)
Pages (from-to)589-605
Number of pages17
JournalInternational Journal of Parallel Programming
Volume28
Issue number6
DOIs
StatePublished - Dec 2000

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Information Systems

Fingerprint

Dive into the research topics of 'Containers on the parallelization of general-purpose Java programs'. Together they form a unique fingerprint.

Cite this