Proceedings Article10.1145/859618.859668
The Jrpm system for dynamically parallelizing Java programs
Michael Chen,Kunle Olukotun +1 more
- 01 May 2003
- Vol. 31, Iss: 2, pp 434-446
TL;DR: Results demonstrate that Jrpm can exploit thread-level parallelism with minimal effort from the programmer, and 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.
read more
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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Evaluating MapReduce for Multi-core and Multiprocessor Systems
C. Ranger,R. Raghuraman,A. Penmetsa,Gary Bradski,Christos Kozyrakis +4 more
- 10 Feb 2007
TL;DR: It is established that, given a careful implementation, MapReduce is a promising model for scalable performance on shared-memory systems with simple parallel code.
POSH: a TLS compiler that exploits program structure
Wei Liu,James Tuck,Luis Ceze,Wonsun Ahn,Karin Strauss,Jose Renau,Josep Torrellas +6 more
- 29 Mar 2006
TL;DR: POSH is a new, fully automated TLS compiler built on top of gcc that leverages the code structures created by the programmer, namely subroutines and loops to generate speculative tasks that are crucial to overall TLS performance.
Programming with transactional coherence and consistency (TCC)
Lance Hammond,Brian D. Carlstrom,Vicky Wong,Ben Hertzberg,Michael Chen,Christos Kozyrakis,Kunle Olukotun +6 more
- 07 Oct 2004
TL;DR: Two basic programming language constructs for decomposing programs into transactions, a loop conversion syntax and a general transaction-forking mechanism are described, so that writing correct parallel programs requires only small, incremental changes to correct sequential programs.
A cost-driven compilation framework for speculative parallelization of sequential programs
Zhao-Hui Du,Chu-cheow Lim,Xiaofeng Li,Chen Yang,Qing-Yu Zhao,Tin-Fook Ngai +5 more
- 09 Jun 2004
TL;DR: This work proposes a comprehensive cost-driven compilation framework to perform speculative parallelization of sequential programs that supports and uses enabling techniques such as loop unrolling, software value prediction and dependence profiling to expose more speculative parallelism.
•Book
Enhancing software reliability with speculative threads
Jeffrey Oplinger,Monica S. Lam +1 more
- 01 Jan 2004
TL;DR: This paper advocates the use of a monitor-and-recover programming paradigm to enhance the reliability of software, and proposes an architectural design that allows software and hardware to cooperate in making this paradigm more efficient and easier to program.
137
References
•Book
Computer Architecture: A Quantitative Approach
John L. Hennessy,David A. Patterson +1 more
- 01 Dec 1989
TL;DR: This best-selling title, considered for over a decade to be essential reading for every serious student and practitioner of computer design, has been updated throughout to address the most important trends facing computer designers today.
12.6K
•Book
The Java Language Specification
James Gosling,Bill Joy,Guy L. Steele +2 more
- 12 Sep 1996
TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
•Book
The Java Virtual Machine Specification
Tim Lindholm,Frank Yellin +1 more
- 19 Sep 1996
TL;DR: In this article, the authors present a detailed overview of the Java Virtual Machine, including the internal structure of the class file format, the internal form of Fully Qualified Class and Interface names, and the implementation of new class instances.
•Book
Advanced Compiler Design and Implementation
Steven S. Muchnick
- 01 Jan 1997
TL;DR: Advanced Compiler Design and Implementation by Steven Muchnick Preface to Advanced Topics
2.6K
•Book
Garbage collection: algorithms for automatic dynamic memory management
Richard Jones,Rafael Dueire Lins +1 more
- 08 Aug 1996
TL;DR: The Classical Algorithms: A Treatise on Reference Counting.
1.1K
Related Papers (5)
Gurindar S. Sohi,Scott E. Breach,T. N. Vijaykumar +2 more
- 01 May 1995
Lance Hammond,Mark Willey,Kunle Olukotun +2 more
- 01 Oct 1998
Anasua Bhowmik,Manoj Franklin +1 more
- 10 Aug 2002