Skip to main content

Loop transformations for Prolog programs

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 768))

  • 225 Accesses

Abstract

Parallel execution models for Prolog have generally focused on either AND or OR parallelism. In both cases the largest speedups come from recursive computations similar to procedural language loops. Parallel models to date, however, have neither treated this loop parallelism by a common implementation nor provided speedups comparable to automatic parallelizers for procedural languages. In this paper we present a framework for the use of loop transformations on Prolog programs. We show by critical path timing of several benchmarks that our transformations give a significant improvement over existing parallelization methods.

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. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, March 1986.

    Google Scholar 

  2. H. Ait-Kaci. The WAM: A (Real) Tutorial. Technical Report, Digital Equipment Corporation, Paris Research Laboratory, January 1990.

    Google Scholar 

  3. K. A. M. Ali. The Muse OR-Parallel Prolog Model and its Performance. In Proceedings of the 1990 North American Logic Programming Conference, pages 757–776, 1990.

    Google Scholar 

  4. U. Banerjee. Loop Transformations for Restructuring Compilers: the Foundations. Kluwer Academic Publishers, 1993.

    Google Scholar 

  5. J. Chang, A. M. Despain, and D. DeGroot. AND-Parallelism of Logic Programs Based on a Static Data Dependency Analysis. In Proceedings of COMPCON '85, 1985.

    Google Scholar 

  6. J. S. Conery and D. F. Kibler. AND Parallelism and Nondeterminism in Logic Programs. New Generation Computing, 3:43–70, 1985.

    Google Scholar 

  7. S. K. Debray. A Simple Code Improvement Scheme for Prolog. In Proceedings of the Sixth International Conference on Logic Programming, pages 17–32. MIT Press, 1989.

    Google Scholar 

  8. M. Hermenegildo. An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs. In Proceedings of the Third International Conference on Logic Programming, pages 25–39. Springer-Verlag, 1986.

    Google Scholar 

  9. W. L. Harrison, III. Compiling Lisp for Evaluation on a Tightly Coupled Multiprocessor. Technical report, University of Illinois at Urbana-Champaign, March, 1986. CSRD Report No. 565.

    Google Scholar 

  10. L. V. Kale, D. A. Padua, and D. C. Sehr. OR Parallel Execution of Prolog Programs with Side Effects. The Journal of Supercomputing, 2(2):209–223, October 1988.

    Article  Google Scholar 

  11. L. V. Kale. The REDUCE OR Process Model for Parallel Execution of Logic Programs. Journal of Logic Programming, Vol. 11, Number 1, July 1991, pp. 55–84.

    Article  MathSciNet  Google Scholar 

  12. L. V. Kale, and V. Saletore. Parallel State-space Search for a First Solution. International Journal of Parallel Programming, Vol. 19, 1990, pp. 251–293.

    Article  Google Scholar 

  13. D. Padua and M. Wolfe. Advanced Compiler Optimizations for Supercomputers. Communications of the ACM, pages 1184–1201, December 1986.

    Google Scholar 

  14. D. C. Sehr. Automatic Parallelization of Prolog Programs. PhD thesis, University of Illinois at Urbana-Champaign, October 1992. CSRD Report 1288.

    Google Scholar 

  15. D. C. Sehr and L. V. Kale. Estimating the Inherent Parallelism in Prolog Programs. In Proceedings of the International Conference on Fifth Generation Computer Systems 1992, pages 783–790, June 1992.

    Google Scholar 

  16. Y.-W. Tung and D. I. Moldovan. Detection of AND Parallelism in Logic Programs. In Proceedings of the 1986 International Conference on Parallel Processing, pages 984–991, August 1986.

    Google Scholar 

  17. D. H. D. Warren. The SRI Model for OR Parallel Execution of Prolog — Abstract Design and Implementation. In Proceedings of the 1987 Symposium on Logic Programming, pages 92–103. IEEE Computer Society Press, September 1987.

    Google Scholar 

  18. M. Wise. Prolog Multiprocessors. Prentice-Hall International Publishers, 1986.

    Google Scholar 

  19. M. J. Wolfe. Optimizing Supercompilers for Supercomputers. The MIT Press, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sehr, D.C., Kale, L.V., Padua, D.A. (1994). Loop transformations for Prolog programs. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1993. Lecture Notes in Computer Science, vol 768. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57659-2_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-57659-2_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57659-4

  • Online ISBN: 978-3-540-48308-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics