Parallel Solutions of Simple Indexed Recurrence Equations

  • Authors:
  • Yosi Ben-Asher;Gadi Haber

  • Affiliations:
  • Haifa Univ., Haifa, Israel;Matam—Advanced Technologies Center, Haifa, Israel

  • Venue:
  • IEEE Transactions on Parallel and Distributed Systems
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

We define a new type of recurrence equations called 驴Simple Indexed Recurrences驴 (SIR). In this type of equations, ordinary recurrences are generalized to $X[g(i)] = op_i(X[f(i)],X[g(i)])$, where $f,g:\{1\ldots n\}\mapsto \{1\ldots m\}$, $op_i(x,y)$ is a binary associative operator and $g$ is distinct, i.e., $\forall i\ne j \; \; g(i)\ne g(j)$. 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 $O(n)$ work complexity of the original loop. We show why efficient parallel algorithms for the related problems of List Ranking and Tree Contraction, which require $O(n)$ work, cannot be applied to solving SIR. We instead use repeated iterations of pointer jumping to compute the final values of $X[]$ in ${\frac {n} {p}} \cdot \log p$ steps and $n \cdot \log p$ work, with $p$ 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 $O(n)$ work in most practical cases of SIR loops.An efficient solution is given for the special case where we know how to compute the inverse of $op_i$, and finally, useful applications of SIR to the well-known Livermore Loops benchmark are presented.