Reducing communication overhead is crucial for improving the performance of programs on distributed-memory machines. Compilers for data-parallel languages must perform communication optimizations in order to minimize this overhead. In this paper, we show how to combine dependence analysis, traditionally used to optimize regular communication, and a data-flow analysis method originally developed to improve placement of irregular communication. Our approach allows us to perform more extensive optimizations message vectorization, elimination of redundant messages, and overlapping communication with computation. We also present preliminary experimental results that demonstrate the benefits of the proposed method. >
['Ken Kennedy', 'Nenad Nedeljkovic']
Combining dependence and data-flow analyses to optimize communication