OoOJava: an out-of-order approach to parallel programming

  • Authors:
  • James C. Jenista;Yong Hun Eom;Brian Demsky

  • Affiliations:
  • -;-;-

  • Venue:
  • HotPar'10 Proceedings of the 2nd USENIX conference on Hot topics in parallelism
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Developing parallel software using current tools can be challenging. Developers must reason carefully about the use of locks to avoid both race conditions and deadlocks. We present a compiler-assisted approach to parallel programming inspired by out-of-order hardware. In our approach, the developer annotates code blocks as reorder-able to decouple these blocks from the parent thread of execution. OoOJava uses static analysis to extract all data dependences from both variables and data structures to generate an executable that is guaranteed to preserve the behavior of the original sequential code. We have implemented OoOJava and achieved significant speedups for a ray tracer and a K-Means cluster benchmark. The straightforward development model, compiler feedback, and speedups are promising indicators that a simple deterministic parallel programming model with strong guarantees can become mainstream.