JaSPEx: Speculative Parallel Execution of Java Applications ?
Ivo Anjo · 2006
Multicore processors, capable of running multiple hardware threads concurrently, are becoming common on servers, desktops, lap- tops, and even smaller systems. Unfortunately, most of the time these new machines are underutilized, as most current software is not written to take advantage of multiple processors. Also, with these new machines, more cores do not translate into more sequential performance, and exist- ing sequential applications will not speed up by moving to a multicore. To tackle this problem, we propose to use thread-level speculation based on a Software Transactional Memory to parallelize automatically sequen- tial programs. We describe the JaSPEx system, which is able to do auto- matic parallelization of existing sequential programs that execute on the Java Virtual Machine, and we address the problem of transactifying an existing program and the diculties inherent to this process. Besides the transactication process, we describe how speculation is introduced and controlled by the JaSPEx system, and what is the relationship between the speculative execution of a program and the Software Transactional Memory that it is using.