Issue No. 01 - January (2001 vol. 12)
ISSN: 1045-9219
pp: 22-37
ABSTRACT
<p><b>Abstract</b>—We define a new type of recurrence equations called “Simple Indexed Recurrences” (SIR). In this type of equations, ordinary recurrences are generalized to <tmath>$X[g(i)] = op_i(X[f(i)],X[g(i)])$</tmath>, where <tmath>$f,g:\{1\ldots n\}\mapsto \{1\ldots m\}$</tmath>, <tmath>$op_i(x,y)$</tmath> is a binary associative operator and <tmath>$g$</tmath> is distinct, i.e., <tmath>$\forall i\ne j \; \; g(i)\ne g(j)$</tmath>. This enables us to model certain sequential loops as a sequence of SIR equations. A parallel algorithm that solves a set of SIR equations will, in fact, parallelize sequential loops of the above type. Such a parallel SIR algorithm must be efficient enough to compete with the <tmath>$O(n)$</tmath> work complexity of the original loop. We show why efficient parallel algorithms for the related problems of List Ranking and Tree Contraction, which require <tmath>$O(n)$</tmath> work, cannot be applied to solving SIR. We instead use repeated iterations of pointer jumping to compute the final values of <tmath>$X[]$</tmath> in <tmath>${\frac {n} {p}} \cdot \log p$</tmath> steps and <tmath>$n \cdot \log p$</tmath> work, with <tmath>$p$</tmath> processors. A sequence of experiments was performed to test the effect of synchronous and asynchronous executions on the actual performance of the algorithm. These experiments show that pointer jumping requires <tmath>$O(n)$</tmath> work in most practical cases of SIR loops.</p><p>An efficient solution is given for the special case where we know how to compute the inverse of <tmath>$op_i$</tmath>, and finally, useful applications of SIR to the well-known Livermore Loops benchmark are presented.</p>
INDEX TERMS
Ordinary recurrence equations, indexed recurrence equations, pointer jumping, list ranking, tree contraction, parallel prefix sums, Euler tour, parallelizing compilers, Livermore Loops benchmark.
CITATION
Gadi Haber, Yosi Ben-Asher, "Parallel Solutions of Simple Indexed Recurrence Equations", IEEE Transactions on Parallel & Distributed Systems, vol. 12, no. , pp. 22-37, January 2001, doi:10.1109/71.899937