Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Parallelizing functional programs by generalization

  • Functional and Logic Programming
  • Conference paper
  • First Online:
Algebraic and Logic Programming (ALP 1997, HOA 1997)

Abstract

List homomorphisms are functions that are parallelizable using the divide-and-conquer paradigm. We study the problem of finding a homomorphic representation of a given function, based on the Bird-Meertens theory of lists. A previous work proved that to each pair of leftward and rightward sequential representations of a function, based on cons- and snoc-lists, respectively, there is also a representation as a homomorphism. Our contribution is a mechanizable method to extract the homomorphism representation from a pair of sequential representations. The method is decomposed to a generalization problem and an inductive claim, both solvable by term rewriting techniques. To solve the former we present a sound generalization procedure which yields the required representation, and terminates under reasonable assumptions. We illustrate the method and the procedure by the parallelization of the scan-function (parallel prefix). The inductive claim is provable automatically.

Partially supported by grant Ku 996/3-l of the DFG within the Schwerpunkt Deduktion at the University of Tübingen.

Partially supported by the DFG project RecuR2 and by the DAAD exchange programs ARC and PROCOPE.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Leo Bachmair. Canonical Equational Proofs. Research Notes in Theoretical Computer Science. Wiley and Sons, 1989.

    Google Scholar 

  2. D. Barnard, J. Schmeiser, and D. Skillicorn. Deriving associative operators for language recognition. Bulletin of EATCS, 43:131–139, 1991.

    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.

    Google Scholar 

  4. G. Blelloch. Scans as primitive parallel operations. IEEE Trans. on Computers, 38(11):1526–1538, November 1989.

    Google Scholar 

  5. Hubert Comon, Marianne Haberstrau, and Jean-Pierre Jouannaud. Syntacticness, cycle-syntacticness, and shallow theories. Inform. and Computation, 111:154–191, 1994.

    Google Scholar 

  6. Ulrich Frans and Heinrich Hu\mann. Term induction proofs by a generalization of narrowing. In C. Rattray and R. G. Clark, editors, The Unified Computation Laboratory — Unifying Frameworks, Theories and Tools, Oxford, UK, 1992. Clarendon Press.

    Google Scholar 

  7. A. Geser and S. Gorlatch. Parallelizing functional programs by term rewriting. Technical Report MIP-9709, Universität Passau, April 1997. Available from http://brahms.fmi.uni-passau.de/cl/papers/GesGor97a.html.

    Google Scholar 

  8. Alfons Geser. Mechanized inductive proof of properties of a simple code optimizer. In Peter D. Mosses, Mogens Nielsen, and Michael I. Schwartzbach, editors, Proc. 6th Theory and Practice in Software Development (TAPSOFT), LNCS 915, pages 605–619. Springer, 1995.

    Google Scholar 

  9. J. Gibbons. The third homomorphism theorem. J. Fun. Programming, 6(4):657–665, 1996.

    Google Scholar 

  10. S. Gorlatch. Constructing list homomorphisms. Technical Report MIP-9512, Universität Passau, August 1995.

    Google Scholar 

  11. S. Gorlatch. Systematic efficient parallelization of scan and other list homomorphisms. In L. Bouge, P. Fraigniaud, A. Mignotte, and Y. Robert, editors, EuroPar'96. Parallel Processing, Lecture Notes in Computer Science 1124, pages 401–408. Springer-Verlag, 1996.

    Google Scholar 

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

    Google Scholar 

  13. 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.

    Google Scholar 

  14. B. Heinz. Lemma discovery by anti-unification of regular sorts. Technical Report 94-21, TU Berlin, May 1994.

    Google Scholar 

  15. Jean-Pierre Jouannaud. Syntactic theories. In B. Rovan, editor, Mathematical Foundations of Computer Science, pages 15–25, Banská Bystrica, 1990. LNCS 452.

    Google Scholar 

  16. Steffen Lange. Towards a set of inference rules for solving divergence in Knuth-Bendix completion. In Klaus P. Jantke, editor, Proc. Analogical and Inductive Inference, pages 305–316. LNCS 397, 1989.

    Google Scholar 

  17. J. O'Donnell. A correctness proof of parallel scan. Parallel Processing Letters, 4(3):329–338, 1994.

    Google Scholar 

  18. Gordon D. Plotkin. Lattice-theoretic properties of subsumption. Technical Report Memo MIP-R-77, Univ. Edinburgh, UK, 1970.

    Google Scholar 

  19. D. Skillicorn. Foundations of Parallel Programming. Cambridge Univ. Press, 1994.

    Google Scholar 

  20. Muffy Thomas and Phil Watson. Solving divergence in Knuth-Bendix completion by enriching signatures. Theoretical Computer Science, 112(1):145–185, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michael Hanus Jan Heering Karl Meinke

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Geser, A., Gorlatch, S. (1997). Parallelizing functional programs by generalization. In: Hanus, M., Heering, J., Meinke, K. (eds) Algebraic and Logic Programming. ALP HOA 1997 1997. Lecture Notes in Computer Science, vol 1298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027002

Download citation

  • DOI: https://doi.org/10.1007/BFb0027002

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63459-1

  • Online ISBN: 978-3-540-69555-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics