The problem of finding data decompositions and computation decompositions can be broken down into three distinct components using the affine model. The partition determines the computation and data that are allocated to the same processor. Mathematically, data and computation partitions are described by the nullspace of the matrices D and C from Definitions 2.1 and 2.2. The orientation, represented by the matrices D and C, describes the mapping between the axes of the array elements and loop iterations, and the processors. Lastly, the displacement gives the offset of the starting position of the data and computation, and corresponds to the constant vectors and . We illustrate the partition, orientation and displacement by developing a communication-free decomposition for the sample program in Figure 1.