Implicit Parallelism with Ordered Transactions

Implicit Parallelism with Ordered Transactions (IPOT) is an extension of explicitly parallel programming models to support implicit parallelism through speculative execution. The key idea of this model is to specify opportunities for parallelization within a sequential thread using annotations similar to transactions. Unlike explicit parallelism, IPOT annotations do not require the absence of data or control-dependences, since the parallelization relies on runtime support for speculative execution. IPOT as a parallel programming model is determinate, i.e., program semantics are independent of the interleaving of concurrent threads. For optimization, non-determinism can be introduced selectively.

We describe IPOT as a programming model and an on-line tool that recommends boundaries of ordered transactions by observing the sequential execution. On a set of SPECcpu benchmarks and two large HPC workloads, we demonstrate that our method is effective in identifying opportunities for fine-grain parallelization within OpenMP tasks. Using the automated task recommendation tool, we were able to perform the parallelization of each program within a few hours.

By: Christoph von Praun; Luis Ceze; Calin Cascaval

Published in: RC24054 in 2006


This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to .