Review of Parallel Techniques and its Implication for Java

This paper surveys the state-of-the-art parallel techniques for multiprocessor architectures, and studies its implication for Java programs, which are typically compiled at run-time. First, this paper overviews basic techniques of program parallelization in traditional static compilers, followed by a survey of successful parallelizing compilers. Then this paper introduces the latest research topics in this area, particularly focusing on the efforts of combining parallelizing techniques with Java virtual machines, including parallel compilation and parallel real-time garbage collection. Finally, this paper summaries the opportunities and challenges of parallelizing Java computing on multicore platforms.

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

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

[3]  Deepak Kapur,et al.  Identification of Heap-Carried Data Dependence Via Explicit Store Heap Models , 2008, LCPC.

[4]  Rudolf Eigenmann,et al.  Automatic program parallelization , 1993, Proc. IEEE.

[5]  Keshav Pingali,et al.  On the Scalability of an Automatically Parallelized Irregular Application , 2008, LCPC.

[6]  Andy J. Wellings Multiprocessors and the Real-Time Specification for Java , 2008, 2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC).

[7]  Filip Pizlo,et al.  A study of concurrent real-time garbage collectors , 2008, PLDI '08.

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

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

[10]  Randy Shepherd,et al.  Object-Oriented Programming , 1994, Lecture Notes in Computer Science.

[11]  J. Eliot B. Moss,et al.  Sapphire: copying GC without stopping the world , 2001, JGI '01.

[12]  Jun Shirako,et al.  Multigrain parallel processing on compiler cooperative chip multiprocessor , 2005, 9th Annual Workshop on Interaction between Compilers and Computer Architectures (INTERACT'05).

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

[14]  Filip Pizlo,et al.  Stopless: a real-time garbage collector for multiprocessors , 2007, ISMM '07.

[15]  Yuan Zhao,et al.  Dependence-Based Code Generation for a CELL Processor , 2006, LCPC.

[16]  Jaehyuk Huh,et al.  Exploiting ILP, TLP, and DLP with the polymorphous TRIPS architecture , 2003, ISCA '03.

[17]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[18]  Matthias Meyer,et al.  A true hardware read barrier , 2006, ISMM '06.

[19]  Scott Shenker,et al.  Mostly parallel garbage collection , 1991, PLDI '91.

[20]  Yuan Zhang,et al.  Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers , 2007, LCPC.

[21]  Guy E. Blelloch,et al.  A parallel, real-time garbage collector , 2001, PLDI '01.

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

[23]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[24]  Erez Petrank,et al.  A parallel, incremental, mostly concurrent garbage collector for servers , 2005, TOPL.

[25]  Lawrence Rauchwerger,et al.  Implementation of Sensitivity Analysis for Automatic Parallelization , 2008, LCPC.

[26]  Fridtjof Siebert JEOPARD -- Java Environment for Parallel Real-Time Development , 2009, 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[27]  Wei Liu,et al.  Pillar: A Parallel Implementation Language , 2007, LCPC.

[28]  Aart J. C. Bik,et al.  A prototype bytecode parallelization tool , 1998, Concurr. Pract. Exp..

[29]  Suresh Jagannathan,et al.  A Uniform Transactional Execution Environment for Java , 2008, ECOOP.

[30]  V. T. Rajan,et al.  A real-time garbage collector with low overhead and consistent utilization , 2003, POPL '03.

[31]  Bjarne Steensgaard,et al.  Thread-specific heaps for multi-threaded programs , 2000, ISMM '00.

[32]  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).

[33]  Wei Liu,et al.  POSH: a TLS compiler that exploits program structure , 2006, PPoPP '06.

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

[35]  Michael Wolf,et al.  The pauseless GC algorithm , 2005, VEE '05.

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

[37]  Jan Vitek,et al.  Hierarchical real-time garbage collection , 2007, LCTES.

[38]  Andy J. Wellings,et al.  A Comparison of the Asynchronous Transfer of Control Features in Ada and the Real-Time Speci.cation for Java , 2003, Ada-Europe.

[39]  Maurice Herlihy,et al.  Lock-free garbage collection for multiprocessors , 1991, SPAA '91.