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 effectiveenvironmentforexploitingmethod-levelparallelism,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 compilereffort. Oncontrol-flowdependentprograms,moderatespeedupshavebeenachieved,suggestingmoresignificantperformance improvements on these types of programs may come from more carefulanalysisorre-codingoftheapplication. Forbothclasses of applications, we discover performance debugging drastically improves speedups by eliminating or minimizing dependencies that limit the effectiveness of metho...
Michael K. Chen, Kunle Olukotun