Coarse-Grained Thread Pipelining: A Speculative Parallel Execution Model for Shared-Memory Multiprocessors
Issue No. 09 - September (2001 vol. 12)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.954629
<p><b>Abstract</b>—This paper presents a new parallelization model, called <it>coarse-grained thread pipelining</it>, for exploiting speculative coarse-grained parallelism from general-purpose application programs in shared-memory multiprocessor systems. This parallelization model, which is based on the fine-grained thread pipelining model proposed for the <it>superthreaded</it> architecture, allows concurrent execution of loop iterations in a pipelined fashion with runtime data-dependence checking and control speculation. The speculative execution combined with the runtime dependence checking allows the parallelization of a variety of program constructs that cannot be parallelized with existing runtime parallelization algorithms. The pipelined execution of loop iterations in this new technique results in lower parallelization overhead than in other existing techniques. We evaluated the performance of this new model using some real applications and a synthetic benchmark. These experiments show that programs with a sufficiently large grain size compared to the parallelization overhead obtain significant speedup using this model. The results from the synthetic benchmark provide a means for estimating the performance that can be obtained from application programs that will be parallelized with this model. The library routines developed for this thread pipelining model are also useful for evaluating the correctness of the codes generated by the superthreaded compiler and in debugging and verifying the simulator for the superthreaded processor.</p>
Runtime parallelization, shared-memory multiprocessors, coarse-grained parallelization, speculative execution, thread pipelining, superthreaded architecture.
David J. Lilja, Iffat H. Kazi, "Coarse-Grained Thread Pipelining: A Speculative Parallel Execution Model for Shared-Memory Multiprocessors", IEEE Transactions on Parallel & Distributed Systems, vol. 12, no. , pp. 952-966, September 2001, doi:10.1109/71.954629