On-Line Trace Based Automatic Parallelization of Java Programs on Multicore Platforms

We propose a new approach that automatically parallelizes Java programs at runtime. The approach collects on-line trace information during program execution, and dynamically recompiles methods that can be executed in parallel. Wealso describe a cost/benefit model that makes intelligent parallelization decisions, as well as a parallel execution environment to execute parallelized code. We implement these techniques upon Jikes RVM and evaluate our approach by parallelizing sequential benchmarks and comparing the performance to manually parallelized version of those benchmarks. According to the experimental results, our approach has low overheads and achieves competitive speed-ups compared to manually parallelized code.

[1]  Monica S. Lam,et al.  Maximizing Multiprocessor Performance with the SUIF Compiler , 1996, Digit. Tech. J..

[2]  Kenneth A. Hawick,et al.  Analysis and development of Java Grande benchmarks , 1999, JAVA '99.

[3]  L.A. Smith,et al.  A Parallel Java Grande Benchmark Suite , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[4]  John M. Mellor-Crummey,et al.  An evaluation of data-parallel compiler support for line-sweep applications , 2002, Proceedings.International Conference on Parallel Architectures and Compilation Techniques.

[5]  Kunle Olukotun,et al.  The Jrpm system for dynamically parallelizing Java programs , 2003, ISCA '03.

[6]  Tarek S. Abdelrahman,et al.  Run-Time Support for the Automatic Parallelization of Java Programs , 2004, The Journal of Supercomputing.

[7]  Christopher J. F. Pickett Software speculative multithreading for Java , 2007, OOPSLA '07.

[8]  Tarek S. Abdelrahman,et al.  Automatic Trace-Based Parallelization of Java Programs , 2007, 2007 International Conference on Parallel Processing (ICPP 2007).

[9]  R. Y. Lee,et al.  Reduction of Complexity and Automation of Parallel Execution through Loop Level Parallelism , 2007 .

[10]  Andrew Dinn,et al.  Optimizing Chip Multiprocessor Work Distribution Using Dynamic Compilation , 2007, Euro-Par.

[11]  Tarek S. Abdelrahman,et al.  The potential of trace-level parallelism in Java programs , 2007, PPPJ.

[12]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeno JVM , 2000, SIGP.

[13]  Vasanth Bala,et al.  Dynamo: a transparent dynamic optimization system , 2000, SIGP.