Advertisement

The Use of the Tupling Strategy in the Development of Parallel Programs

  • Alberto Pettorossi
  • Enrico Pietropoli
  • Maurizio Proietti
Part of the The Springer International Series In Engineering and Computer Science book series (SECS, volume 231)

Abstract

We present a technique for developing efficient functional programs by using optimal synchronizations among function calls. This technique is based on the application of the tupling strategy and it works for a wide class of functions defined by recursive equations. The derived programs are shown to have minimal redundancy, in the sense that repeated computations of identical recursive calls are never performed and identical subexpressions may be recomputed a number of times which is linearly bounded w.r.t. the depth of the recursion. The derived programs also have minimal spatial synchronization, in the sense that only a minimal number of computations are synchronized together, without increasing the parallel computation time.

Keywords

Parallel Program Function Symbol Function Call Recursive Call Recursive Equation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Aerts, K., and Van Besien, D.: ‘Implementing the Loop Absorption and Generalization Strategies in Logic Programs’ Report of Electronics Department, Rome University Tor Vergata, 1991.Google Scholar
  2. [2]
    Augustsson, L. and Johnsson, T.: ‘Parallel Graph Reduction with the <v,G>machine’ Proceedings of Functional Programming Languages and Computer Architecture, London, 1989, 202–213.Google Scholar
  3. [3]
    Barendregt, H.P.: The Lambda Calculus, its Syntax and Semantics, North-Holland (Amsterdam) 1984.MATHGoogle Scholar
  4. [4]
    Barendregt, H.P., van Eekelen, M.C.J.D., Glauert, J.R.W., Kennaway, J.R., Plasmeijer, M.J., and Sleep, M.R.: ‘Term Graph Rewriting’ PARLE Conference, Lecture Notes in Computer Science n. 259, 1987, 141–158.Google Scholar
  5. [5]
    Bird, R.S.: ‘The Promotion and Accumulation Strategies in Transformational Programming’, ACM Transactions on Programming Languages and Systems, Volume 6, No. 4, 1984, 487–504.MATHCrossRefGoogle Scholar
  6. [6]
    Burstall, R.M. and Darlington, J.: ‘A Transformation System for Developing Recursive Programs’, Journal of the ACM, Volume 24, No. 1, 1977, 44–67.MATHCrossRefGoogle Scholar
  7. [7]
    Bush, V. J., and Gurd, J. R.: ‘Transforming Recursive Programs for Execution on Parallel Machines’ Proceedings of Functional Programming Languages and Computer Architecture, Nancy, France, Lecture Notes in Computer Science n. 201, Springer Verlag, 1985, 350–367.Google Scholar
  8. [8]
    CIP Language Group: ‘The Munich Project CIP’, Lecture Notes in Computer Science n. 183, Springer Verlag, 1985.Google Scholar
  9. [9]
    Cohen, N. H.: ‘Eliminating Redundant Recursive Calls’ ACM Transactions on Programming Languages and Systems, Volume 5, 1983, 265–299.MATHCrossRefGoogle Scholar
  10. [10]
    Courcelle, B.: ‘Recursive Applicative Program Schemes’, in Handbook of Theoretical Computer Science, Volume B, Chapter 9, Elsevier Science Publishers, 1990, 459–492.Google Scholar
  11. [11]
    Darlington, J.: ‘An Experimental Program Transformation’ Artificial Intelligence 16, 1981, 1–46.CrossRefGoogle Scholar
  12. [12]
    Darlington, J. and Pull, H.: ‘A Program Development Methodology Based on a Unified Approach to Execution and Transformation’ IFIP TC2 Working Conference on Partial and Mixed Computation, Ebberup, Denmark (D. Bjørner and A. P. Ershov, editors), North Holland, 1987, 117–131.Google Scholar
  13. [13]
    Darlington, J. and Reeve, M.: ‘A Multi-Processor Reduction Machine for the Parallel Evaluation of Applicative Languages’, ACM Conference on Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire, 1981, 65–75.Google Scholar
  14. [14]
    Downey, P. J., Sethi, R. and Tarjan R. E.: ‘Variations on the Common Subexpression Problem’, Journal of ACM, Volume 27, No. 4, 1980, 758–771.MATHCrossRefGoogle Scholar
  15. [15]
    Feather, M.S.: ‘A System for Assisting Program Transformation’, ACM Transactions on Programming Languages and Systems, 4(1), 1982, 1–20.MATHCrossRefGoogle Scholar
  16. [16]
    Feather, M.S.: ‘A Survey and Classification of Some Program Transformation Techniques’, Proceedings of the TC2 IFIP Working Conference on Program Specification and Transformation, Bad Tölz, Germany, 1986, 165–195.Google Scholar
  17. [17]
    George, L.: ‘An Abstract Machine for Parallel Graph Reduction’ Proceedings of Functional Programming Languages and Computer Architecture, London, 1989, 214–229.Google Scholar
  18. [18]
    Goldberg, B.: ‘Buckwheat: Graph Reduction on a Shared-Memory Multiprocessor’ Proceedings of the ACM Conference on Lisp and Functional Programming, 1988, 40–51.Google Scholar
  19. [19]
    Gordon, M. J., Milner, R., and Wadsworth, C. P.: ‘Edinburgh LCF’, Lecture Notes in Computer Science n. 78, Springer Verlag, 1979.Google Scholar
  20. [20]
    Janicki, R. and Müldner, T.: ‘Transformation of Sequential Specifications into Concurrent Specifications by Synchronization Guards’, Theoretical Computer Science 77, 1990, 97–129.CrossRefGoogle Scholar
  21. [21]
    Karp, R. M. and Ramachandran, V.: ‘Parallel Algorithms for Shared-Memory Machines’, Handbook of Theoretical Computer Science, 1990, 869–942.Google Scholar
  22. [22]
    Kott, L.: ‘About Transformation System: A Theoretical Study’, 3ème Colloque International sur la Programmation, Dunod, Paris, 1978, 232–247.Google Scholar
  23. [23]
    Landin, P. J.: ‘The Mechanical Evaluation of Expressions’ Computer Journal 6(4), 1964, 308–320.MATHGoogle Scholar
  24. [24]
    Langendoen, K. G. and Vree, W. G.: ‘FRATS: A Parallel Reduction Strategy for Shared Memory’ Proceedings PLILP’ 91, Lecture Notes in Computer Science n. 528 (Maluszynski and Wirsing, editors), Springer Verlag, 1991, 99–110.Google Scholar
  25. [25]
    Manna, Z.: Mathematical Theory of Computation, McGraw-Hill, 1974.Google Scholar
  26. [26]
    Möller, B. (editor): ‘Programs from Specifications’, in Proceedings of the IFIP TC2 Working Conference, Asilomar Center, California, USA, North Holland (Amsterdam), 1991.MATHGoogle Scholar
  27. [27]
    Mosses, P. D.: ‘Denotational Semantics’ in Handbook of Theoretical Computer Science, Volume B, Chapter 9, Elsevier Science Publishers, 1990, 574–631.Google Scholar
  28. [28]
    Paige, R. and Koenig, S.: ‘Finite Differencing of Computable Expressions’ ACM Transactions on Programming Languages and Systems, 4(3), 1982, 402–454.MATHCrossRefGoogle Scholar
  29. [29]
    Pettorossi, A.: ‘Transformation of Programs and Use of Tupling Strategy’, Proceedings Informatica 77, Bled, Yugoslavia, 1977, 3 103, 1–6.Google Scholar
  30. [30]
    Pettorossi, A.: ‘A Powerful Strategy for Deriving Efficient Programs by Transformation’ ACM Symposium on Lisp and Functional Programming, Austin, Texas, USA, 6–8 August 1984, 273–281.Google Scholar
  31. [31]
    Pettorossi, A. and Skowron, A.: ‘Communicating Agents for Applicative Concurrent Programming’, in Proceedings International Symposium on Programming, Turin, Italy, Lecture Notes in Computer Science n. 137 (Dezani-Ciancaglini and Montanari, editors), Springer Verlag, 1982, 305–322.Google Scholar
  32. [32]
    Smith, D. R.: ‘A Semiautomatic Program Development System’ IEEE Transactions on Software Engineering, Volume 16, No. 9, 1990, 1024–1043.CrossRefGoogle Scholar
  33. [33]
    Staples, J.: ‘Computation on Graph-like Expressions’, Theoretical Computer Science 10, 1980, 171–185.MATHCrossRefGoogle Scholar
  34. [34]
    Stoy, J. E.: Denotational Semantics: The Scott-Scrachey Approach to Programming Language Theory, The MIT Press, Cambridge, Massachusetts, 1977.Google Scholar
  35. [35]
    Wadler, P. L.: ‘Deforestation: Transforming Programs to Eliminate Trees’, in Proceedings ESOP 88, Nancy, France, Lecture Notes in Computer Science n. 300, Springer Verlag, 1988, 344–358.Google Scholar

Copyright information

© Kluwer Academic Publishers 1993

Authors and Affiliations

  • Alberto Pettorossi
    • 1
  • Enrico Pietropoli
    • 1
  • Maurizio Proietti
    • 2
  1. 1.Electronics DepartmentUniversity of Roma Tor VergataRomaItaly
  2. 2.IASI CNRRomaItaly

Personalised recommendations