Aligning parallel arrays to reduce communication
- 19 November 2002
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 324-331
- https://doi.org/10.1109/fmpc.1995.380438
Abstract
Axis and stride alignment is an important optimization in compiling data-parallel programs for distributed-memory machines. We previously developed an optimal algorithm for aligning array expressions. Here, we examine alignment for more general program graphs. We show that optimal alignment is NP-complete in this setting, so we study heuristic methods. This paper makes two contributions. First, we show how local graph transformations can reduce the size of the problem significantly without changing the best solution. This allows more complex and effective heuristics to be used. Second, we give a heuristic that can explore the space of possible solutions in a number of ways. We show that some of these strategies can give better solutions than a simple greedy approach proposed earlier. Our algorithms have been implemented; we present experimental results showing their effect on the performance of some example programs running on the CM-5.<>Keywords
This publication has 6 references indexed in Scilit:
- Optimal evaluation of array expressions on massively parallel machinesACM Transactions on Programming Languages and Systems, 1995
- Global optimizations for parallelism and locality on scalable parallel machinesPublished by Association for Computing Machinery (ACM) ,1993
- The data alignment phase in compiling programs for distributed-memory machinesJournal of Parallel and Distributed Computing, 1991
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- Data optimization: Allocation of arrays to reduce communication on SIMD machinesJournal of Parallel and Distributed Computing, 1990
- Register allocation via coloringComputer Languages, 1981