To facilitate the design of our data layout algorithm, we have
developed a data transformation model that is analogous to the
well-known loop transformation theory[6,35].
We represent an n-dimensional array as
an n-dimensional polytope whose boundaries are given by the array
bounds, and the interior integer points represent all the elements in
the array. As with sequential loops, the ordering of the axes is
significant. In the rest of the paper we assume the FORTRAN
convention of column-major ordering by default, and for clarity the
array dimensions are 0-based. This means that for an n-dimensional
array with array bounds
, the linearized address for array element
is
.
Below we introduce two primitive data transforms: strip-mining and
permutation.