Skip to main content
Log in

AND parallelism and nondeterminism in logic programs

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

This paper defines an abstract interpreter for logic programs based on a system of asynchronous, independent processors which communicate only by passing messages. Each logic program is automatically partitioned and its pieces distributed to available processors. This approach permits two distinct forms of parallelism. OR parallelism arises from evaluating nondeterministic choices simultaneously. AND parallelism arises when a computation involves independent, but necessary, subcomputations. Algorithms like quicksort, which follow a divide and conquer approach, usually exhibit this form of parallelism. These two forms of parallelism are conjointly achieved by the parallel interpreter.

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.

Similar content being viewed by others

References

  1. Conery, J. S., Morris, P. H. and Kibler, D. F., “Efficient Logic Programs: A Research Proposal,”Technical Report 166, Department of Information and Computer Science, University of California, Irvine, April, 1981.

    Google Scholar 

  2. Conery, J. S. and Kibler, D. F., “Parallel Interpretation of Logic Programs,”Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 163–170, ACM, October, 1981.

  3. Conery, J. S. and Kibler, D. F., “AND Parallelism in Logic Programs.” inProceedings of the Eight International Joint Conference on Artificial Intelligence, pp. 539–543, 1983.

  4. Conery, J. S., “The AND/OR Process Model for Parallel Interpretation of Logic Programs,”Ph.D. Thesis, University of California, Irvine, 1983. (Available asTech. Report 204. Department of Computer ane Information Science, UC Irvine)

    Google Scholar 

  5. Gostelow, K. P. and Thomas, R., “Performance of a Simulated Dataflow Computer,”IEEE Transactions on Computers, C-29(10), pp. 905–919, October, 1980.

    Article  Google Scholar 

  6. Warren, D. S., Ahamad, M., Debray, S. K. and Kale, L. V., “Executing Distributed Prolog Programs on a Broadcast Network.” in1984 International Symposium on Logic Programming, pp. 12–21, 1984.

  7. Taylor, S., Lowry, A., Maguire, Jr., G. Q. and Stolfo, S. J., “Logic Programming Using Parallel Associative Operations,” in1984 International Symposium on Logic Programming, pp. 58–68, 1984.

  8. Eisinger, N., Kasif, S. and Minker, J., “Logic Programming: A Parallel Approach,”Proceedings of the First International Programming Conference, pp. 1–8. Faculté des Sciences de Luminy, Marseille, Sept., 1982.

  9. Ciepielewski, A. and Haridi, S., “Formal Models for OR-Parallel Execution of Logic Programs,”CSALAB Working Paper 821121, Royal Institurte of Technology, Stockholm, Sweden, 1982.

    Google Scholar 

  10. Furukawa, K., Nitta, K. and Matsumoto, Y., “Prolog Interpreter Based on Concurrent Programming“,Proceedings of the First International Logic Programming Conference, pp. 38–44. Faculté des Sciences Luminy, Marseille, Sept., 1982.

    Google Scholar 

  11. Kowalski, R. A., “Predicate Logic as a Programming Language,”IFIPS 74.

  12. Clark, K. L. and McCabe, F., “The Control Facilities of IC-Prolog,” inExpert Systems in the Microelectronic Age (D. Michie, ed.), Edinburgh University Press, 1979.

  13. Shapiro, E. Y., “A Subset of Concurrent Prolog and Its Interpreter,”ICOT Technical Report TR-003, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.

    Google Scholar 

  14. Clark, K. L. and Gregory, S., “A Relational Language for Parallel Programming,”Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 171–178. ACM, October, 1981.

  15. Zara, R. V., “A Semantic Model for a Language Processor,”Proceedings of the A. C. M. National Meeting, pp. 323–339, 1967.

  16. Hewitt, C. and Attardi, G., “Act I for Parallel Problem Solving,”Technical Report, MIT.

  17. van Emden, M. H. and Kowalski, R. A., “The Semantics of Predicate Logic as a Programming Language,”JACM, 23(4), pp. 773–742, October, 1976.

    Google Scholar 

  18. Pereira, L. M., Pereira, F. C. N. and Warren, D. H. D., “Users Guide to DEC system-10 Prolog,”Technical Report, Department of Artificial Intelligence, University of Edinburgh, September, 1978.

  19. Wulf, W. A. and Shaw, M., “Abstraction and Verification in ALPHARD: Defining and Specifying Iteration and Generators,”CACM.20(8), pp. 553–564, August, 1977.

    MATH  Google Scholar 

  20. Pereira, L. M. and Porto, A., “Intelligent Backtracking and Sidetracking in Horn Clause Programs—the Theory,”Report 2/79, Departmento de Informatica, Universidade Nova de Lisboa, Portugal, October 1979.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

About this article

Cite this article

Conery, J.S., Kibler, D.F. AND parallelism and nondeterminism in logic programs. NGCO 3, 43–70 (1985). https://doi.org/10.1007/BF03037115

Download citation

  • Received:

  • Issue Date:

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

Keywords

Navigation