OoOJava: software out-of-order execution

12 years 2 months ago
OoOJava: software out-of-order execution
Developing parallel software using current tools can be challenging. Even experts find it difficult to reason about the use of locks and often accidentally introduce race conditions and deadlocks into parallel software. OoOJava is a compiler-assisted approach that leverages developer annotations along with static analysis to provide an easy-to-use deterministic parallel programming model. OoOJava extends Java with a task annotation that instructs the compiler to consider a code block for out-of-order execution. OoOJava executes tasks as soon as their data dependences are resolved and guarantees that the execution of an annotated program preserves the exact semantics of the original sequential program. We have implemented OoOJava and achieved an average speedup of 16.6× on our ten benchmarks.
James Christopher Jenista, Yong Hun Eom, Brian Dem
Added 17 Sep 2011
Updated 17 Sep 2011
Type Journal
Year 2011
Authors James Christopher Jenista, Yong Hun Eom, Brian Demsky
Comments (0)