Abstract:Partition is a compiler technique that maps computation and data onto different processors, and is the key issue of automatic parallelization on distributed memory architecture. Array's life cycle has been less considered by previous researches on data decomposition, despite of the fact that the inconsistency of decomposition in different array life cycles often results in communication redundancy. This paper proposes a new data decomposition algorithm which represents data flow information of array by define-use graph, and creates own decomposition for each life cycle of array. The experimental results on Matrix-Inversion and other eight applications show that compared with automatic data decomposition methods that does not distinguish the life cycle of array, the proposed algorithm not only makes more accurate assessment of parallel benefits, but also reduce communication redundancy and rise up the speedup.