Partitioning and mapping nested loops on multiprocessor systems
- 1 January 1991
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 2 (4) , 430-439
- https://doi.org/10.1109/71.97900
Abstract
[[abstract]]Intensive scientific algorithms can usually be formulated as nested loops which are the main source of parallelism. When a nested loop is executed in parallel, the total execution time is composed of two parts - the computation time and the communication time. For a message-passing multiprocessor system, performance declines rapidly as the communication over-head is higher than the corresponding computation. In this paper, a method for parallel executing nested loops with constant loop-carried dependencies on message-passing multiprocessor systems to reduce the communication overhead is presented. First, we partition the nested loop into blocks which result in little communication without concern for the topology of machines. For a given linear time transformation found by the hyperplane method, the iterations of a nested loop are partitioned into blocks such that the communication among the blocks is reduced while the execution ordering defined by the time transformation is not perturbed. Then, the partitioned blocks generated by the partitioning method are mapped onto multiprocessor systems according to the specific properties of various machines. We propose a heuristic mapping algorithm for the hypercube machines.[[fileno]]2030224010050[[department]]資訊工程學This publication has 15 references indexed in Scilit:
- Pipelined data parallel algorithms-II: designIEEE Transactions on Parallel and Distributed Systems, 1990
- Minimum distance: a method for partitioning recurrences for multiprocessorsIEEE Transactions on Computers, 1989
- The generation of a class of multipliers: synthesizing highly parallel algorithms in VLSIIEEE Transactions on Computers, 1988
- Synthesizing linear array algorithms from nested FOR loop algorithmsIEEE Transactions on Computers, 1988
- Nearest-Neighbor Mapping of Finite Element Graphs onto Processor MeshesIEEE Transactions on Computers, 1987
- A design methodology for synthesizing parallel algorithms and architecturesJournal of Parallel and Distributed Computing, 1986
- Partitioning and Mapping Algorithms into Fixed Size Systolic ArraysIEEE Transactions on Computers, 1986
- The Design of Optimal Systolic ArraysIEEE Transactions on Computers, 1985
- Spacetime representations of computational structuresComputing, 1984
- High-Speed Multiprocessors and Compilation TechniquesIEEE Transactions on Computers, 1980