An and-parallel execution model of logic programs

  • Bernd Schwinn
  • Gerhard Barth
Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 213)


This paper deals with the most important kinds of parallelism that can occur in logic programs, OR parallelism and AND parallelism. To explore parallelism we use a data flow model, where the rules and facts of the logic programs are represented as graphs. Beginning with a basic model for OR parallel execution of logic programs, where all the subgoals of a rule are persued in sequential order, we give an extended model, where we try to detect and exploit independencies among subgoals during the execution of a rule (dynamic AND parallelism). The prime when extending the basic model was to improve execution time. The sizes of the graphs remain in a tolerable range.


Logic Program Output Port Input Port Parallel Execution Horn Clause 


  1. [Arv78]
    Arvind, Gostelow K.P., Plouffe W.: An Asynchronous Programming Language and Computing Machine, DCS Report 114A, University of California, Irvine, Dec. 1978.Google Scholar
  2. [Arv82]
    Arvind, Gostelow K.P.: The U-Interpreter, IEEE Computer, pp. 42–49, Feb. 1982.Google Scholar
  3. [Cla81]
    Clark K.L., Gregory S.: A Relational Language for Parallel Programming, Research Report of Imperial College of Science and Technology, Dec 81/16, July 1981.Google Scholar
  4. [Cla83]
    Clark K.L., Gregory S.: PARLOG: A Parallel Logic Programming Language, Research Report DOC 83/5, Imperial College, March 1983.Google Scholar
  5. [Clo81]
    Clocksin W.F., Mellish C.S.: Programming in Prolog, Springer Verlag, Berlin 1981.Google Scholar
  6. [Con81]
    Conery J.S., Kibler D.F.: Parallel Interpretation of Logic Programs, Proceedings of the 1981 Conference on Functional Programming Languages and Computer Architecture, pp. 163–167, October 1981.Google Scholar
  7. [DeG84]
    De Groot D.: Restricted AND Parallelism, Proceedings of the International Conference on Fifth Gerenation Computer Systems, ICOT, 1984.Google Scholar
  8. [Den74]
    Dennis J.B.: First Version of a Data-Flow Procedure Language, Lecture Notes in Computer Science, Vol. 19, pp. 362–376, Springer-Verlag, 1974.Google Scholar
  9. [Fur82]
    Furukawa K., Nitta K., Matsumoto Y.: Prolog Interpreter Based on Concurrent Progamming, Proceedings of the First International Logic Programming Conference, Marseille, France, pp. 38–41, September 1982.Google Scholar
  10. [Ito85]
    Ito N., Schimizu H.: Data Flow Based Execution Mechanisms of Parallel and Concurrent Prolog, New Generation Computing 3, pp. 15–41, 1985.Google Scholar
  11. [Kow79]
    Kowalski R.: Logic for Problem Solving, North Holland, 1979.Google Scholar
  12. [Sha83]
    Shapiro E.Y.: A Subset of Concurrent Prolog and its Interpreter, ICOT Techn. Report, TR 003, Feb. 1983.Google Scholar
  13. [Ume83]
    Umeyama S., Tamura K.: A Parallel Execution Model of Logic Programs, The 10th Annual International Symposium on Computer Architecture, ACM, pp. 349–355, June 1983.Google Scholar
  14. [Wis82]
    Wise M.: A Parallel Prolog: The Construction of a Data Driven Model, University of New South Wales, Australia, 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Bernd Schwinn
  • Gerhard Barth
    • 1
  1. 1.Department of Computer ScienceUniversity of KaiserslauternKaiserslauternWest Germany

Personalised recommendations