Graph-based Partitioning of Matrix Algorithms for Systolic Arrays: Application to Transitive Closure

The authors propose a technique to partition algorithms for execution in systolic arrays, based on the dependence graph of algorithms. Such procedure achieves its objectives by performing transformations on the graph. These transformations first remove from the graph properties not suitable for an implementation, then transform the graph into one with simple communication requirements, and finally map the graph onto the target array. They illustrate this method through its application to the computation of transitive closure of a directed graph. They drive linear and two-dimensional structures for such algorithm that exhibit maximal utilization, no overhead due to partitioning and simple control. In the process, the authors obtain a graph suitable for an array for fixed-size problems that exhibits better characteristics than arrays previously proposed for this algorithm. The authors' method also allows evaluating trade-offs among implementations. The authors show that, in partitioned implementations with the same number of cells, a linear array performs better, its implementation is easier and it is better suited for fault-tolerant capabilities than a two-dimensional one.