In this paper, we present a new framework based on expression-rewritings and a calculus form called common-stride descriptor (CSD) calculus to generate the local enumeration set and communication set for High Performance Fortran (HPF) programs with `Block-Cyclic' distributions. Our framework is a practical software framework, and can handle the general cases so that the communication set of HPF programs of block-cyclic distributions with two-level alignments (or multiple-level alignments), multi-dimensional arrays, array intrinsic functions (such as Transpose operation), and affine indices and axis exchanges in the array subscript, can be calculated in a systematic way with a sound software foundation. Previously, existing works do not report a software framework to solve a problem with such general cases. In addition, our expression-rewriting framework is based on a new representative form, CSD, to describe the regularity of the access patterns of HPF programs with block-cyclic distribution. We also demonstrate a calculus of CSD that CSD is closed under intersection and normalization, which helps the process of calculating local enumeration and communication sets of HPF programs with block-cyclic distributions. We also utilize the characteristics of CSD calculus to provide a global-to-local mapping function for multiple level alignments and block-cyclic distributions. Experimental results show that our software scheme not only can be easily implemented in the practice, but also is with good efficiency.
ASJC Scopus subject areas