OoOJava']Java: Software Out-of-Order Execution

被引:23
作者
Jenista, James C. [1 ]
Eom, Yong Hun [1 ]
Demsky, Brian [1 ]
机构
[1] Univ Calif Irvine, Dept Elect Engn & Comp Sci, Irvine, CA 92697 USA
基金
美国国家科学基金会;
关键词
Algorithms; Languages; Performance;
D O I
10.1145/2038037.1941563
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 x on our ten benchmarks.
引用
收藏
页码:57 / 67
页数:11
相关论文
共 33 条
  • [1] Allen MatthewD., 2009, PPoPP
  • [2] [Anonymous], 2009, IISWC
  • [3] [Anonymous], ICS
  • [4] [Anonymous], IBM J RES DEV
  • [5] Bellens Pieter., 2006, SC
  • [6] Berger EmeryD., 2009, OOPSLA
  • [7] Bocchino R.L., 2009, OOPSLA
  • [8] Borkar S., 2007, DAC
  • [9] CAHOON B, 2001, PACT
  • [10] Choi Jong-Deok, 1993, POPL