Divide-and-conquer is a powerful problemsolving technique that is the basis for many effective sequential algorithms. We analyze the extent to which divide-and-conquer yields effective and efficient parallel algorithms. We identify fifteen equivalence classes of divide-and-conquer algorithms and determine which classes are good candidates for parallelization and the architectures for which they are best suited. None of the classes provide optimal speedup when the maximum possible number of processors are used, and four of them yield no more than constant speedup. However, eleven classes do provide optimal speedup under limited parallelism, and three of these classes have polylogarithmic runtime with a polynomial number of processors (that is, they are in NC) and they have speedup that is within a polylogarithmic factor of optimal under maximum parallelism. The communication cost incurred during parallelization is found to have a significant impact on the performance of a parallel divide-and-conquer algorithm. This factor alone can mean the difference between speedup that is within a polylogarithmic factor of optimal and no speedup at all.
Recommendations
Grid-enabled parallel divide-and-conquer: theory and practice
SAC '02: Proceedings of the 2002 ACM symposium on Applied computingThis paper presents a general methodology for the communication-efficient parallelization of graph algorithms using the divide-and-conquer approach. The algorithm is communication-free in the conquer stage and uses only a small amount of messages while ...
Divide-and-conquer programming on MIMD computers
IPPS '95: Proceedings of the 9th International Symposium on Parallel ProcessingWe have developed a programming template to implement divide and conquer algorithms on MIMD computers. The template is based on the parallel divide and conquer function of Z.G. Mou and P. Hudak (1988). We explore the programmability and performance of ...