Skip to main content
Log in

Programming with Divide-and-Conquer Skeletons: A Case Study of FFT

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

We demonstrate an approach to parallel programming, based on skeletons – parameterized program schemas with efficient implementations over diverse architectures. The contribution of the paper is two-fold: (1) we classify divide-and-conquer (DC) algorithms and provide a family of provably correct parallel implementations for a particular DC skeleton, called DH (distributable homomorphism); (2) we adjust the mathematical specification of the Fast Fourier Transform (FFT) to the DH skeleton and, thereby, obtain a generic SPMD program, well suited for implementation under MPI. The generic program includes the efficient FFT solutions used in practice – the binary-exchange and the 2D- and 3D-transpose implementations – as special cases.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. K. Achatz and W. Schulte. Architecture independent massive parallelization of divide-and-conquer algorithms. In B. Moeller, editor, Mathematics of Program Construction, Lecture Notes in Computer Science 947, pages 97–127, 1995.

  2. J. W. Backus. Can programming be liberated from the von Neumann style? Communications of the ACM, 21:613–641, 1978.

    Google Scholar 

  3. R. S. Bird. Lectures on constructive functional programming. In M. Broy, editor, Constructive Methods in Computing Science, NATO ASI Series F: Computer and Systems Sciences. Vol. 55, pages 151–216. Springer Verlag, 1988.

  4. M. Cole. Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation. PhD thesis, University of Edinburgh, 1988.

  5. S. Gorlatch. Stages and transformations in parallel programming. In M. Kara et al., editors, Abstract Machine Models for Parallel and Distributed Computing, pages 147–162. IOS Press, 1996.

  6. S. Gorlatch. Systematic efficient parallelization of scan and other list homomorphisms. In L. Bougé et al., editors, Parallel Processing. Euro-Par'96, Lecture Notes in Computer Science 1124, pages 401–408. Springer-Verlag, 1996.

  7. S. Gorlatch. Systematic extraction and implementation of divide-and-conquer parallelism. In H. Kuchen and D. Swierstra, editors, Programming Languages: Implementation, Logics and Programs. PLILP'96, Lecture Notes in Computer Science 1140, pages 274–288. Springer-Verlag, 1996.

  8. S. Gorlatch. Optimizing compositions of scans and reductions in parallel program derivation. Technical Report MIP-9711, Universität Passau, May 1997.

  9. S. Gorlatch and H. Bischof. Formal derivation of divide-and-conquer programs: A case study in the multidimensional FFT's. In D. Mery, editor, Formal Methods for Parallel Programming: Theory and Applications. Workshop at IPPS'97, pages 80–94, 1997. Available from http://brahms.fmi.unipassau.de/cl/papers/GorBi97.html.

  10. S. Gorlatch and C. Lengauer. Parallelization of divide-and-conquer in the Bird-Meertens formalism. Formal Aspects of Computing, 7(6):663–682, 1995.

    Google Scholar 

  11. C. A. Herrmann and C. Lengauer. Parallelization of divide-and-conquer by translation to nested loops. Technical Report MIP-9705, Fakultät für Mathematik und Informatik, Universität Passau, March 1997.

  12. V. Kumar et al. Introduction to Parallel Computing. Benjamin/Cummings Publ., 1994.

  13. J. Misra. Powerlist: a structure for parallel recursion. ACM TOPLAS, 16(6):1737–1767, 1994.

    Google Scholar 

  14. Z. G. Mou and P. Hudak. An algebraic model for divide-and-conquer algorithms and its parallelism. Journal of Supercomputing, 2(3):257–278, 1988.

    Google Scholar 

  15. D. Skillicorn. Foundations of Parallel Programming. Cambridge U. P., 1994.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Gorlatch, S. Programming with Divide-and-Conquer Skeletons: A Case Study of FFT. The Journal of Supercomputing 12, 85–97 (1998). https://doi.org/10.1023/A:1007981511582

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1007981511582

Navigation