This report considers the problem of writing data distribution independent (DDI) programs in order to eliminate or reduce initial data redistribution overheads for distributed memory parallel computers. The functionality and execution time of DDI programs are independent of initial data distributions. First, modular mappings, which can be used to derive many equally optimal ant1 functionally equivalent programs, are briefly reviewed. Relations between modular mappings and input data distributions are then established. These relations are the basis of a systematic approach to the derivation of DDI programs which is illustrated for matrix-matrix multiplication(c = a x b). Conditions on data distributions that correspond to an optimal modular mapping are: (1) the first row of the inverse of distribution pattern matrix of army 'a' should be equal to the second row of the inverse of distribution pattern matrix of array 'b') (2) the second row of the inverse of distribution pattern matrix of array 'a' should be linearly independent of the first row of the inverse of distribution pattern matrix of array 'b', and (3) each distribution pattern matrix of arrays 'a', 'b', and 'c' should have at [east one zero entry, respectively. It is shown that only twelve programs suffice to accomplish redistribution-free execution for the many input data distributions that satisfy the above conditions. When DDI matrix multiplication programs are used in an algorithm with multiple matrix products, half of data redistributions otherwise required can be eliminated.
Date of this Version