Skip to main content

Divided We Stand: Parallel Distributed Stack Memory Management

  • Chapter
Implementations of Logic Programming Systems

Abstract

We present an overview of the stack-based memory management techniques that we used in our non-deterministic and-parallel Prolog systems: &-Prolog and DASWAM. We believe that the problems associated with non-deterministic and-parallel systems are more general than those encountered in or-parallel and deterministic and-parallel systems, which can be seen as subsets of this more general case. We develop on the previously proposed “marker scheme”, lifting some of the restrictions associated with the selection of goals while keeping (virtual) memory consumption down. We also review some of the other problems associated with the stack-based management scheme, such as handling of forward and backward execution, cut, and rollbacks.

Some of the research reported in this paper was carried out while this author was at the Computer Laboratory, University of Cambridge, Cambridge UK.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Ait-Kaci. Warren’s Abstract Machine, A Tutorial Reconstruction. MIT Press, 1991.

    Google Scholar 

  2. P. Borgwardt. Parallel prolog using stack segments on shared memory multiprocessors. In International Symposium on Logic Programming, pages 2–12, Silver Spring, MD, February 1984. Atlantic City, IEEE Computer Society.

    Google Scholar 

  3. M. Carlsson. SICStus Prolog Internals Manual. Swedish Institute of Computer Science, Box 1263, S-163 12 Spånga, Sweden, Jan. 1989.

    Google Scholar 

  4. J. Chassin de Kergommeaux. Measures of the PEPSys Implementation on the MX500. Technical Report CA-44, European Computer-Industry Research Centre, Arabellaastr. 17, D-8000 München 81, Germany, 1989.

    Google Scholar 

  5. D. DeGroot. Restricted AND-Parallelism. In International Conference on Fifth Generation Computer Systems, pages 471–478. Tokyo, ICOT, November 1984.

    Google Scholar 

  6. M. V. Hermenegildo and K. Greene. The &-prolog System: Exploiting Independent And-Parallelism. New Generation Computing, 9(3,4):233–257, 1991.

    Article  Google Scholar 

  7. M. V. Hermenegildo. An Abstract Machine Based Execution Model for Computer Architecture Design and Efficient Implementation of Logic Programs in Parallel. PhD thesis, The University of Texas At Austin, 1986.

    Google Scholar 

  8. M. V. Hermenegildo. An Abstract Machine for Restricted AND-parallel Execution of Logic Programs. In Third International Conference on Logic Programming, number 225 in Lecture Notes in Computer Science, pages 25–40. Imperial College, Springer-Verlag, July 1986.

    Google Scholar 

  9. M. V. Hermenegildo. Relating Goal Scheduling, Precedence, and Memory Management in AND-Parallel Execution of Logic Programs. In Fourth International Conference on Logic Programming, pages 556–575. University of Melbourne, MIT Press, May 1987.

    Google Scholar 

  10. M. V. Hermenegildo and R. I. Nasr. Efficient Management of Backtracking in AND-parallelism. In Third International Conference on Logic Programming, number 225 in Lecture Notes in Computer Science, pages 40–55. Imperial College, Springer-Verlag, July 1986.

    Google Scholar 

  11. Y. J. Lin and V. Kumar. AND-Parallel Execution of Logic Programs on a Shared Memory Multiprocessor: A Summary of Results. In Fifth International Conference and Symposium on Logic Programming, pages 1123–1141. University of Washington, MIT Press, August 1988.

    Google Scholar 

  12. E. L. Lusk, R. Butler, T. Disz, R. Olson, R. A. Overbeek, R. Stevens, D. H. D. Warren, A. Calderwood, P. Szeredi, S. Haridi, P. Brand, M. Carlsson, A. Ciepielewski, and B. Hausman. The Aurora Or-Parallel Prolog System. New Generation Computing, 7(2,3), 1990.

    Google Scholar 

  13. L. Naish. Parallelizing NU-Prolog. In International Conference and Symposium on Logic Programming, pages 1546–1564. University of Washington, MIT Press, August 1988.

    Google Scholar 

  14. V. Santos Costa, D. H. D. Warren, and R. Yang. The Andorra-I Engine: A Parallel Implementation of the Basic Andorra Model. In Proceedings of the Eighth International Conference on Logic Programming, 1991.

    Google Scholar 

  15. V. Santos Costa, D. H. D. Warren, and R. Yang. The Andorra-I Preprocessor: Supporting Full Prolog on the Basic Andorra Model. In Proceedings of the Eighth International Conference of Logic Programming, 1991.

    Google Scholar 

  16. K. Shen. Exploiting And-parallelism in Prolog: the Dynamic Dependent And-parallel Scheme (DDAS). In Joint International Conference and Symposium on Logic Programming, pages 717–731, 1992.

    Google Scholar 

  17. K. Shen. Studies of And/Or Parallelism in Prolog. PhD thesis, Computer Laboratory, University of Cambridge, 1992.

    Google Scholar 

  18. K. Shen. Implementing Dynamic Dependent And-parallelism. In International Conference of Logic Programming, pages 167–183. The MIT Press, 1993.

    Google Scholar 

  19. K. Shen and M. V. Hermenegildo. A Flexible Scheduling and Memory Management Scheme for Non-Deterministic, And-parallel Execution of Logic Programs. Internal Report, 1993.

    Google Scholar 

  20. D. H. D. Warren. Implementing prolog — compiling predicate logic programs. Technical Report 39 and 40, Department of Artificial Intelligence, University of Edinburgh, 1977.

    Google Scholar 

  21. D. H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, 333 Ravenswood Ave., Menlo Park CA 94025, USA, 1983.

    Google Scholar 

  22. D. H. D. Warren. The SRI Model for Or-Parallel Execution of Prolog — Abstract Design and Implementation Issues. In Proceedings 1987 Symposium on Logic Programming, pages 92–102. Computer Society Press of the IEEE, Sept. 1987.

    Google Scholar 

  23. D. S. Warren. Efficient prolog memory management for flexible control strategies. In International Symposium on Logic Programming, pages 198–203, Silver Spring, MD, February 1984. Atlantic City, IEEE Computer Society.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer Science+Business Media New York

About this chapter

Cite this chapter

Shen, K., Hermenegildo, M. (1994). Divided We Stand: Parallel Distributed Stack Memory Management. In: Tick, E., Succi, G. (eds) Implementations of Logic Programming Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2690-2_13

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-2690-2_13

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-6157-2

  • Online ISBN: 978-1-4615-2690-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics