A Software-Based Method-Level Speculation Framework for the Java Platform [chapter]

Ivo Anjo, João Cachopo
2013 Lecture Notes in Computer Science  
With multicore processors becoming ubiquitous on computing devices, the need for both parallelizing existing sequential applications and designing new parallel applications is greatly intensified. With our work, we intend to tackle the former issue. In this paper, we present the design of a software-based automatic parallelization framework for sequential applications that run on the Java platform: the JaSPEx-MLS framework. Our framework employs Method-Level Speculation: It uses method
more » ... ns as fork points and converts those invocations to return futures that can be stored in local variables in place of the original values. The support for speculative execution is provided by automatically modifying application bytecode to use a custom lightweight Software Transactional Memory (STM), and we present a novel approach to integrate futures representing speculative executions with the STM. Thread state transfer is done by employing a Java Virtual Machine that provides support for first-class continuations. We present preliminary results from our implementation of the proposed techniques on the JaSPEx-MLS framework, which works on top of the OpenJDK Hotspot VM.
doi:10.1007/978-3-642-37658-0_14 fatcat:mwg5k7fwebh4hb4niynpsmbx2m