Pipelined data parallel algorithms-II: design
- 1 January 1990
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 1 (4) , 486-499
- https://doi.org/10.1109/71.80176
Abstract
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.Keywords
This publication has 21 references indexed in Scilit:
- Minimum distance: a method for partitioning recurrences for multiprocessorsIEEE Transactions on Computers, 1989
- On partitioning and mapping for hypercube computingInternational Journal of Parallel Programming, 1988
- Synthesizing linear array algorithms from nested FOR loop algorithmsIEEE Transactions on Computers, 1988
- Semi-automatic process partitioning for parallel computationInternational Journal of Parallel Programming, 1987
- Deadlock-Free Message Routing in Multiprocessor Interconnection NetworksIEEE Transactions on Computers, 1987
- Advanced compiler optimizations for supercomputersCommunications of the ACM, 1986
- The Design of Optimal Systolic ArraysIEEE Transactions on Computers, 1985
- Spacetime representations of computational structuresComputing, 1984
- On the Analysis and Synthesis of VLSI AlgorithmsIEEE Transactions on Computers, 1982
- Dependence graphs and compiler optimizationsPublished by Association for Computing Machinery (ACM) ,1981