An architectural model for OR-parallellism on distributed memory systems

  • F. Baiardi
  • D. M. Di Bella
Session: Parallel Implementations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 528)


A model for OR-parallel execution of logic programs on highly parallel, distributed memory architectures is proposed. The model aims to reduce the overhead due to a parallel execution by using a parallel decomposition of a WAM into three units devoted to, respectively, memory management, unification, and subtree scheduling. A further unit may be introduced to handle message routing in the case of partial interconnection networks.

The proposed model can be applied independently of the method to handle the multiple bindings for a variable.

After discussing the parallel decomposition of a WAM, the implementation of the model is considered. We show that the implementation mainly consists of the mapping of the units onto the processing elements of the target architecture. Some performance figures of a prototype implementation on a Transputer based system are presented and discussed.


Logic Program Schedule Strategy Interconnection Structure Logical Node Parallel Unit 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    K.A.M. Ali, R. Karlsson, The MUSE OR-Parallel Prolog Model and its Performance, Proc. of the 1990 NACLP, pp. 757–776, 1990.Google Scholar
  2. [2]
    P. Borgwardt, Parallel Prolog Using Stack Segments on Shared Memory Multiprocessors, Proc. of the 1984 Int. Symposium on Logic Programming, IEEE, Atlantic City, pp. 2–11, 1984.Google Scholar
  3. [3]
    J. Chassin, U.C. Baron, W. Rapp, M. Ratcliff, Performance Analysis of a Parallel Prolog: a correlated approach, PARLE '89, vol. II, pp. 151–164, Eindhoven, 1989.Google Scholar
  4. [4]
    A. Ciepielewsky, S. Haridi, A Formal Model for OR-parallel Execution of Logic Programs, Proc. of IFIP 83, Mason ed., North Holland, 1983.Google Scholar
  5. [5]
    J.S. Conery, Binding Environments for Parallel Logic Programs in Non-Shared Memory Multiprocessors, Proc. of the Int. Conference on Parallel Processing, IEEE, pp. 457–467, 1987.Google Scholar
  6. [6]
    B.S. Fagin, A.M. Despain, The Performance of Parallel Prolog Programs, IEEE Transaction on Computers, vol. 39, No. 12, pp. 1434–1445, 1990.Google Scholar
  7. [7]
    G. Goupta, B. Jayaraman, On Criteria for Or-Parallel Execution Models of Logic Programs, Proc. of the 1990 NACLP, pp. 737–756, 1990.Google Scholar
  8. [8]
    S. Haridi, E. Hagersten, The Cache Coherence Protocol of the Data Diffusion Machine, PARLE '89, vol. I, pp. 1–18, Eindhoven, 1989.Google Scholar
  9. [9]
    B. Hausman, A. Ciepielewsky, S. Haridi, OR-parallel Prolog Made Efficient on Shared Memory Multiprocessors, Proc. of the Int. Conference on Parallel Processing, pp. 69–79, 1987.Google Scholar
  10. [10]
    B. Hausman, Pruning and Scheduling Speculative Work in OR-Parallel Prolog, PARLE '89, vol. II, pp. 133–150, Eindhoven, 1989.Google Scholar
  11. [11]
    Lusk et al., The Aurora OR-Parallel Prolog System, New Generation Computing, 7, 243–271, 1990.Google Scholar
  12. [12]
    S. Peyton Jones, C. Clack, J. Salkild, M. Hardie, GRIP: a High Performance Architecture for Parallel Graph Reduction, Functional Programming Languages and Computer Architecture, LNCS 274, September 1987.Google Scholar
  13. [13]
    A.G. Ranade, How to Emulate Shared Memory, Proc. of 28th IEEE Symposium on Fundations of Computer Science, pp. 185–194, 1987.Google Scholar
  14. [14]
    C.L. Seitz, Concurrent VLSI Architectures, IEEE Trans. on Computers, C33, 12, 1984.Google Scholar
  15. [15]
    E. Tick, Memory Performance of Prolog Architectures, Kluwer Academic, 1987.Google Scholar
  16. [16]
    P. Tinker, G. Lindstrom, A Performance Oriented Design for OR-parallel Logic Programming, Proc. of the Int. Conference on Logic Programming, Melbourne, 1987.Google Scholar
  17. [17]
    H. Touati, A. Despain, An Empirical Study of the Warren Abstract Machine, Proc. of the Int. Conference on Parallel Processing, IEEE, 1987.Google Scholar
  18. [18]
    E. Upfal, Efficient Schemes for Parallel Communication, Journal of ACM, vol. 31, No. 3, pp. 507–517, 1984.Google Scholar
  19. [19]
    L.G. Valiant, General Purpose Parallel Architecture, Technical Report TR-07-89, Harward University, Cambridge, 1989.Google Scholar
  20. [20]
    D.H.D. Warren, An Abstract Prolog Instruction Set, Technical Report 309, SRI International, AI Center, 1983.Google Scholar
  21. [21]
    D.H.D. Warren, OR-parallel Execution Models of Prolog, Proc. of the Int. Joint Conference on Theory and Practice of Software Development, Pisa, pp. 243–259, 1987.Google Scholar
  22. [22]
    D.H.D. Warren, The SRI Model of OR-parallel Execution of Prolog. Abstract Design and Implementation Issues, Proc. of the Int. Conference on Parallel Processing, pp. 92–102, 1987.Google Scholar
  23. [23]
    D.S. Warren, Efficient Memory Management for Flexible Control Strategies, Proc. of the Int. Conference on Parallel Processing, IEEE, pp. 198–202, 1984.Google Scholar
  24. [24]
    H. Westphal, P. Robert, J. Chassin, J.Syre, The PEPSys Model Combining Backtracking, AND-and OR-parallelism, Proc. of the Int. Conference on Parallel Processing, IEEE, pp. 436–448, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • F. Baiardi
    • 1
  • D. M. Di Bella
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations