Speculating on top of an unmodified Java VM

As multicore processors become the default for computing devices ranging from smartphones to cloud servers, many researchers have proposed Thread-Level Speculation (TLS) as a solution to the problem of extracting parallelism from sequential algorithms. On managed code environments, such as the Java Virtual Machine, most TLS research is done on smaller, simpler, research Virtual Machines, which are more amenable to the multiple changes needed for speculative execution, but that do not reflect the full range of optimizations and issues that top tier VMs such as Oracle’s HotSpot present. In this paper, we make the argument for doing TLS on top of an unmodified JVM, and explore why such a system may present performance surpassing current TLS proposals.

[1]  Nir Shavit,et al.  Noninvasive concurrency with Java STM , 2009 .

[2]  James R. Larus,et al.  Software and the Concurrency Revolution , 2005, ACM Queue.

[3]  Alan Mycroft,et al.  A lightweight in-place implementation for software thread-level speculation , 2009, SPAA '09.

[4]  Ivo Filipe Silva,et al.  JaSPEx: Speculative Parallelization on the Java Platform , 2009 .

[5]  João P. Cachopo,et al.  RuLAM Project : Speculative Parallelization for Java using Software Transactional Memory ∗ , 2011 .

[6]  Peng Wu,et al.  Fastpath Speculative Parallelization , 2009, LCPC.

[7]  Doug Lea,et al.  A Java fork/join framework , 2000, JAVA '00.

[8]  Christian Wimmer,et al.  Efficient coroutines for the Java platform , 2010, PPPJ.

[9]  Lawrence Rauchwerger,et al.  Polaris: The Next Generation in Parallelizing Compilers , 2000 .

[10]  Steven W. K. Tjiang,et al.  SUIF: an infrastructure for research on parallelizing and optimizing compilers , 1994, SIGP.

[11]  Clark Verbrugge,et al.  Understanding Method Level Speculation , 2009 .

[12]  João P. Cachopo,et al.  Versioned boxes as the basis for memory transactions , 2006, Sci. Comput. Program..

[13]  Antony L. Hosking,et al.  Nested transactional memory: Model and architecture sketches , 2006, Sci. Comput. Program..

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

[15]  H. Lee,et al.  Helper Transactions : Enabling Thread-Level Speculation via A Transactional Memory System , 2008 .

[16]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

[17]  Clark Verbrugge,et al.  Software Thread Level Speculation for the Java Language and Virtual Machine Environment , 2005, LCPC.

[18]  Maurice Herlihy,et al.  A flexible framework for implementing software transactional memory , 2006, OOPSLA '06.

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