Data optimization: minimizing residual interprocessor data motion on SIMD machines

Basic concepts in array layout are summarized, and unhonored preferences and residual data motion are discussed. A technique for minimizing such motion is presented. For each array the source program is divided into regions, each associated with a single home. This enables efficient handling of residual data motion. The partitioning into regions is based on control flow and data dependence. Preliminary results obtained with this technique show an order-of-magnitude improvement for certain classes of programs.<<ETX>>