Issue No. 04 - October (1990 vol. 1)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.80176
<p>A methodology for designing pipelined data-parallel algorithms on multicomputers is studied. The design procedure starts with a sequential algorithm which can be expressed as a nested loop with constant loop-carried dependencies. The procedure's main focus is on partitioning the loop by grouping related iterations together. Grouping is necessary to balance the communication overhead with the available parallelism and to produce pipelined execution patterns, which result in pipelined data-parallel computations. The grouping should satisfy dependence relationships among the iterations and also allow the granularity to be controlled. Various properties of grouping are studied, and methods for generating communication-efficient grouping are given. Given a grouping and an assignment of the groups to the processors, an analytic model is combined with the grouping results to describe the behavior and to estimate the performance of the resultant parallel program. Expressions characterizing the performance are derived.</p>
Index Termsdata parallel algorithms; sequential algorithm; nested loop; loop-carried dependencies; partitioning; parallelism; pipelined execution patterns; grouping; dependence relationships; parallel program; parallel algorithms; performance evaluation
L. Ni, C. King and W. Chou, "Pipelined Data Parallel Algorithms-II: Design," in IEEE Transactions on Parallel & Distributed Systems, vol. 1, no. , pp. 486-499, 1990.