• DocumentCode
    1538307
  • Title

    Coarse-grained thread pipelining: a speculative parallel execution model for shared-memory multiprocessors

  • Author

    Kazi, Iffat H. ; Lilja, David J.

  • Author_Institution
    Sun Microsyst. Inc., Palo Alto, CA, USA
  • Volume
    12
  • Issue
    9
  • fYear
    2001
  • Firstpage
    952
  • Lastpage
    966
  • Abstract
    This paper presents a new parallelization model, called coarse-grained thread pipelining, 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 superthreaded 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.
  • Keywords
    parallel architectures; program debugging; shared memory systems; coarse-grained thread pipelining; concurrent execution; debugging; loop iterations; parallelization model; program constructs; runtime data-dependence checking; runtime dependence checking; runtime parallelization algorithms; shared-memory multiprocessor systems; shared-memory multiprocessors; speculative execution; speculative parallel execution model; superthreaded architecture; superthreaded compiler; superthreaded processor; synthetic benchmark; Computer architecture; Data analysis; Debugging; Grain size; Libraries; Multiprocessing systems; Parallel processing; Pipeline processing; Runtime; Yarn;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/71.954629
  • Filename
    954629