Exploiting Method-Level Parallelism in Single-Threaded Java Programs

Abstract

Method speculation of object-oriented programs attempts to exploit method-level parallelism (MLP) by executing sequential method invocations in parallel while still maintaining correct sequential ordering of data dependencies and memory accesses. In this paper, we show why the Java virtual machine is an effective environment for exploiting method-level parallelism, and demonstrate how method speculation can potentially speed up single-threaded general purpose Java programs. Results from our study show that significant speedups can be achieved on data-parallel applications with minimal programmer and compiler effort. On control flow dependent programs, moderate speedups have been achieved, suggesting more significant performance improvements on these types of programs may come from more careful analysis or re-coding of the application. For both classes of applications, we discover performance debugging drastically improves speedups by eliminating or minimizing dependencies that limit the effectiveness of method speculation.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Oct 01, 1998
Accession Number
ADA419621

Entities

People

  • Kunle Olukotun
  • Michael K. Chen

Organizations

  • Stanford University

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Application Software
  • Closed Loop Systems
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computers
  • Instructions
  • Multiprocessors
  • Object Code
  • Operating Systems
  • Simulations
  • Simulators
  • Statistics
  • Virtual Machines

Fields of Study

  • Computer science
  • Engineering

Readers

  • Parallel and Distributed Computing.
  • Systems Analysis and Design