skip to main content
10.1145/1941553.1941563acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

OoOJava: software out-of-order execution

Published: 12 February 2011 Publication History

Abstract

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.6x on our ten benchmarks.

References

[1]
M. D. Allen, S. Sridharan et al. Serialization sets: A dynamic dependence-based parallel execution model. In PPoPP, 2009.
[2]
P. Bellens, J. Perez et al. CellSs: a programming model for the Cell BE architecture. SC, 2006.
[3]
E. D. Berger, T. Yang et al. Grace: Safe multithreaded programming for C/C++. In OOPSLA, 2009.
[4]
R. L. Bocchino, Jr., V. S. Adve et al. A type and effect system for deterministic parallel Java. In OOPSLA, 2009.
[5]
S. Borkar. Thousand core chips: A technology perspective. In DAC, 2007.
[6]
B. Cahoon and K. S. McKinley. Data flow analysis for software prefetching linked data structures in Java. In PACT, 2001.
[7]
C. Cao Minh, J. Chung et al. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.
[8]
J.-D. Choi, M. Burke et al. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In POPL, 1993.
[9]
L. Dagum and R. Menon. OpenMP: An industry-standard API for shared-memory programming. IEEE Comput. Sci. Eng., 1998.
[10]
K. Dai. Code parallelization for the LGDG large-grain dataflow computation. In CONPAR 90 - VAPP IV, 1990.
[11]
J. S. Danaher, I.-T. A. Lee et al. The JCilk language for multithreaded computing. In SCOOL, 2005.
[12]
A. Deutsch. Interprocedural may-alias analysis for pointers: Beyond k-limiting. In PLDI, 1994.
[13]
C. Ding, X. Shen et al. Software behavior oriented parallelization. In PLDI, 2007.
[14]
Y. Etsion, F. Cabarcas et al. Task superscalar: An out-of-order task pipeline. In MICRO, 2010.
[15]
C. Huang and L. V. Kale. Charisma: Orchestrating migratable parallel objects. In HPDC, 2007.
[16]
J. Huang, A. Raman et al. Decoupled software pipelining creates parallelization opportunities. In CGO, 2010.
[17]
J. C. Jenista, Y. Eom et al. Disjoint reachability analysis. Tech. Rep. UCI-ISR-10--4, University of California, Irvine, 2010.
[18]
J. C. Jenista, Y. Eom et al. OoOJava: An out-of-order approach to parallel programming. In HotPar, 2010.
[19]
P. Jouvelout and D. Gifford. The FX-87 interpreter. In ICCL, 1988.
[20]
H.-W. Loidl, F. Rubio et al. Comparing parallel functional languages: Programming and performance. HOSC, 2003.
[21]
M. Olszewski, J. Ansel et al. Kendo: Efficient deterministic multithreading in software. In ASPLOS, 2009.
[22]
K. H. Randall. Cilk: Efficient Multithreaded Computing. Massachusetts Institute of Technology, 1998.
[23]
L. Rauchwerger, N. M. Amato et al. Run-time methods for parallelizing partially parallel loops. In ICS, 1995.
[24]
M. C. Rinard, D. J. Scales et al. Jade: A high-level, machineindependent language for parallel programming. Computer, 1993.
[25]
M. Sagiv, T. Reps et al. Parametric shape analysis via 3-valued logic. TOPLAS, 2002.
[26]
J. H. Saltz and R. Mirchandaney. Run-time parallelization and scheduling of loops. TC, 1991.
[27]
L. A. Smith, J. M. Bull et al. A parallel Java Grande benchmark suite. In SC, 2001.
[28]
J. Subhlok and B. Yang. A new model for integrated nested task and data parallel programming. In PPoPP, 1997.
[29]
R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM J. of Res. Dev., 1967.
[30]
S. K. Venkata, I. Ahn et al. SD-VBS: The San Diego Vision Benchmark Suite. In IISWC, 2009.
[31]
C. von Praun, L. Ceze et al. Implicit parallelism with ordered transactions. In PPoPP, 2007.
[32]
A. Welc, S. Jagannathan et al. Safe futures for Java. In OOPSLA, 2005.
[33]
J. Zhou and B. Demsky. Bamboo: A data-centric, object-oriented approach to multi-core software. In PLDI, 2010.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
February 2011
326 pages
ISBN:9781450301190
DOI:10.1145/1941553
  • General Chair:
  • Calin Cascaval,
  • Program Chair:
  • Pen-Chung Yew
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 8
    PPoPP '11
    August 2011
    300 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2038037
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 February 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. deterministic parallel programming
  2. out-of-order execution

Qualifiers

  • Research-article

Conference

PPoPP '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)5
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media