DocumentCode :
1565934
Title :
The Jrpm system for dynamically parallelizing Java programs
Author :
Chen, Michael K. ; Olukotun, Kunle
Author_Institution :
Stanford Univ., CA, USA
fYear :
2003
Firstpage :
434
Lastpage :
445
Abstract :
We describe the Java runtime parallelizing machine (Jrpm), a complete system for parallelizing sequential programs automatically. Jrpm is based on a chip multiprocessor (CMP) with thread-level speculation (TLS) support. CMPs have low sharing and communication costs relative to traditional multiprocessors, and thread-level speculation (TLS) simplifies program parallelization by allowing us to parallelize optimistically without violating correct sequential program behavior. Using a Java virtual machine with dynamic compilation support coupled with a hardware profiler, speculative buffer requirements and inter-thread dependencies of prospective speculative thread loops (STLs) are analyzed in real-time to identify the best loops to parallelize. Once sufficient data has been collected to make a reasonable decision, selected loops are dynamically recompiled to run in parallel. Experimental results demonstrate that Jrpm can exploit thread-level parallelism with minimal effort from the programmer. On four processors, we achieved speedups of 3 to 4 for floating point applications, 2 to 3 on multimedia applications, and between 1.5 and 2.5 on integer applications. Performance was achieved by automatic selection of thread decompositions by the hardware profiler, intra-procedural optimizations on code compiled dynamically into speculative threads, and some minor programmer transformations for exposing parallelism that cannot be performed automatically.
Keywords :
Java; multiprocessing systems; optimising compilers; parallel architectures; parallel programming; performance evaluation; program control structures; virtual machines; CMP; Java runtime parallelizing machine system; Java virtual machine; Jrpm system; STL; TLS; buffer requirement; chip multiprocessor; dynamic compilation support; dynamically parallelizing Java program; floating point application; hardware profiler; integer application; inter-thread dependency; intra-procedural optimization; multimedia application; sequential program; shared memory system; speculative thread loop; thread-level speculation; Automatic control; Cost function; Dynamic compiler; Hardware; Java; Parallel processing; Programming profession; Runtime; Virtual machining; Yarn;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Computer Architecture, 2003. Proceedings. 30th Annual International Symposium on
ISSN :
1063-6897
Print_ISBN :
0-7695-1945-8
Type :
conf
DOI :
10.1109/ISCA.2003.1207020
Filename :
1207020
Link To Document :
بازگشت