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]  T.L. Pappas Upgrading without fear [Product Reviews] , 1996, Computer.

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

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

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

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

[6]  W. Marsden I and J , 2012 .

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

[8]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

[9]  Roger Y. Lee,et al.  Reduction of Complexity and Automation of Parallel Execution through Loop Level Parallelism , 2007, Seventh International Conference on Quality Software (QSIC 2007).

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

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

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

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

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

[15]  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.

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

[17]  서정연,et al.  Journal of Computing Science and Engineering(JCSE)의 국제화 작업 , 2010 .