Advertisement

Parallel symbolic computation in ACE

  • Enrico Pontelli
  • Gopal Gupta
Article

Abstract

We present an overview of the ACE system, a sound and complete parallel implementation of Prolog that exploits parallelism transparently (i.e., without any user intervention) from AI programs and symbolic applications coded in Prolog. ACE simultaneously exploits all the major forms of parallelism – Or-parallelism, Independent And-parallelism, and Dependent And-parallelism – found in Prolog programs. These three varieties of parallelism are discussed in detail, along with the problems encountered in their practical exploitation. Our solutions to these problems, incorporated in the ACE system, are presented. The ACE system has been implemented on Sequent Symmetry and Sun Sparc Multiprocessors; performance results from this implementation for several AI programs are presented, which confirm the effectiveness of the choices made.

Keywords

Logic Program Logic Programming Parallel Execution Choice Point Prolog Program 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    K.A.M. Ali and R. Karlsson, The muse or-parallel prolog model and its performance, in: 1990 North American Conference on Logic Programming (MIT Press, 1990).Google Scholar
  2. [2]
    K.A.M. Ali and R. Karlsson, Full Prolog and scheduling or-parallelism in muse, International Journal of Parallel Programming 19(6) (1991) 445–475.MathSciNetCrossRefGoogle Scholar
  3. [3]
    U. Baron et al., The parallel ECRC Prolog system PEPSys: an overview and evaluation results, in: FGCS '88 (1988) pp. 841–850.Google Scholar
  4. [4]
    J. Bevemyr, T. Lindgren and H. Millroth, Reform Prolog: the language and its implementation, in: Proc. of the 10th Int. Conference on Logic Programming (MIT Press, 1993).Google Scholar
  5. [5]
    I. Bratko, Prolog Programming for Artificial Intelligence (Addison-Wesley, Wokingham, England, 1986).Google Scholar
  6. [6]
    D. Cabeza and M. Hermenegildo, Extracting non-strict independent and-parallelism using sharing and freeness information, Technical report, Facultad de Informatica, Universidad Politecnica de Madrid (1994).Google Scholar
  7. [7]
    D. Cabeza and M. Hermenegildo, Extracting non-strict independent and-parallelism using sharing and freeness information, in: International Static Analysis Symposium, LNCS (Springer, 1994).Google Scholar
  8. [8]
    D. Cabeza, M. Hermenegildo and M. Carro, Using attributed variables in the implementation of parallel and concurrent logic programming systems, in: Proc. of the International Conference on Logic Programming (MIT Press, 1995).Google Scholar
  9. [9]
    J.-H. Chang, A.M. Despain and D. Degroot, And-parallelism of logic programs based on static data dependency analysis, in: Compcon Spring '85 (February 1985) pp. 218–225.Google Scholar
  10. [10]
    S.-E. Chang and Y.P. Chiang, Restricted AND-parallelism execution model with side-effects, in: 1989 North American Conference on Logic Programming, eds. E.L. Lusk and R.A. Overbeek (MIT Press, 1989) pp. 350–368.Google Scholar
  11. [11]
    K. Clark and S. Gregory, Parlog: parallel programming in logic, Research report Doc 83/5, Dept. of Computing, Imperial College of Science and Technology, University of London (May 1983).Google Scholar
  12. [12]
    J.S. Conery, Parallel Execution of Logic Programs (Kluwer, Norwell, 1987).Google Scholar
  13. [13]
    V. Santos Costa, D.H.D. Warren and R. Yang, Andorra-I: a parallel Prolog system that transparently exploits both and-and or-parallelism, in: Proc. 3rd ACM SIGPLAN PPoPP (1990).Google Scholar
  14. [14]
    P. Cousot and R. Cousot, Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, in: Conf. Rec. 4th ACM Symp. on Principles of Programming Languages (1977) pp. 238–252.Google Scholar
  15. [15]
    J. Crammond, The abstract machine and implementation of parallel Prolog, Research report, Dept. of Computing, Imperial College of Science and Technology (July 1990).Google Scholar
  16. [16]
    M. Garcia de la Banda, Independence, global analysis, and parallelism in dynamically scheduled constraint logic programming, Ph.D. thesis, Universidad Politecnica de Madrid (1994).Google Scholar
  17. [17]
    M. Garcia de la Banda F. Bueno and M. Hermenegildo, Effectiveness of global analysis in strict independence-based automatic program parallelization, in: International Logic Programming Symposium, ed. M. Bruynooghe (MIT Press, 1994).Google Scholar
  18. [18]
    S.K. Debray, N.-W. Lin and M. Hermenegilo, Task granularity analysis in logic programs, in: Proc. of the 1990 ACM Conf. on Programming Language Design and Implementation (ACM Press, 1990).Google Scholar
  19. [19]
    D. DeGroot, Restricted AND-parallelism, in: Int. Conf. on 5th Generation Computer Systems (Tokyo, 1984) pp. 471–478.Google Scholar
  20. [20]
    D. DeGroot, Restricted AND-parallelism and side-effects, in: International Symposium on Logic Programming (San Francisco, IEEE Computer Society, 1987) pp. 80–89.Google Scholar
  21. [21]
    N. Drakos, Unrestricted and-parallel execution of logic programs with dependency directed backtracking, in: Proc. of the International Joint Conference on Artificial Intelligence (1989).Google Scholar
  22. [22]
    ECLiPSe User Manual, ECRC, 1993.Google Scholar
  23. [23]
    K. Hirata et al., Parallel and distributed implementation of logic programming language KL1, in: Int. Conference on Fifth Generation Computer Systems (1992).Google Scholar
  24. [24]
    I. Foster and S. Taylor, Strand: New Concepts in Parallel Programming (Prentice-Hall, 1990).Google Scholar
  25. [25]
    G. Gazdar and C. Mellish, Natural Language Processing in Prolog (Addison-Wesley, 1989).Google Scholar
  26. [26]
    G. Gupta, Multiprocessor Execution of Logic Programs (Kluwer, 1994).Google Scholar
  27. [27]
    G. Gupta and V. Santos Costa, Cuts and side-effects in and/or parallel Prolog, Journal of Logic Programming 27(1) (1996) 45–71.zbMATHMathSciNetCrossRefGoogle Scholar
  28. [28]
    G. Gupta, V. Santos Costa and E. Pontelli, Shared paged binding arrays: a universal data-structure for parallel logic programming, in: Proc. NSF/ICOT Workshop on Parallel Logic Programming and its Environments, CIS-94-04, University of Oregon (March 1994).Google Scholar
  29. [29]
    G. Gupta, M. Hermenegildo, E. Pontelli and V. Santos Costa, ACE: and/or-parallel copying-based execution of logic programs, in: Proc. ICLP'94 (MIT Press, 1994) pp. 93–109.Google Scholar
  30. [30]
    G. Gupta and B. Jayaraman, Analysis of or-parallel execution models, ACM TOPLAS 15(4) (1993) 659–680.CrossRefGoogle Scholar
  31. [31]
    G. Gupta and E. Pontelli, Data and-parallel logic programming in &ACE, in: Proc. of 7th IEEE Symposium on Parallel and Distributed Processing (1995).Google Scholar
  32. [32]
    G. Gupta and E. Pontelli, Last alternative optimization and parallel implementation of CLP(FD), Technical report NMSU-CSTR-9606, New Mexico State University (1995).Google Scholar
  33. [33]
    G. Gupta and E. Pontelli, Last alternative optimization for or-parallel logic programming systems, in: Eight International Symposium on Parallel and Distributed Processing (IEEE Computer Society, 1996).Google Scholar
  34. [34]
    S. Haridi and S. Janson, Kernel Andorra Prolog and its computation model, in: Proc. 7th Int. Conf. on Logic Prog. (MIT Press, 1990).Google Scholar
  35. [35]
    S. Haridi, B. Hausman and A. Ciepielewski, OR-parallel Prolog made efficient on shared memory multiprocessors, in: IEEE Symposium on Logic Programming (1987).Google Scholar
  36. [36]
    B. Hausman, A. Ciepielewski and A. Calderwood, Cut and side-effects in or-parallel Prolog, in: International Conference on Fifth Generation Computer Systems, Tokyo (November 1988).Google Scholar
  37. [37]
    B. Hausman, Pruning and speculative work in or-parallel PROLOG, Ph.D. thesis, The Royal Institute of Technology, Stockholm (1990).Google Scholar
  38. [38]
    M. Hermenegildo, CIAO, a generic parallel concurrent constraint logic programming system, in: Principle and Practice of Constraint Programming (Springer, 1994).Google Scholar
  39. [39]
    M. Hermenegildo and K. Greene, &-Prolog and its performance: exploiting independent and-parallelism, in: 1990 Int. Conf. on Logic Prog. (MIT Press, 1990) pp. 253–268.Google Scholar
  40. [40]
    M. Hermenegildo and F. Rossi, On the correctness and efficiency of independent and-parallelism in logic programs, in: 1989 North American Conference on Logic Programming (MIT Press, 1989) pp. 369–390.Google Scholar
  41. [41]
    M. Hermenegildo and F. Rossi, Non-strict independent and-parallelism, in: 1990 International Conference on Logic Programming (MIT Press, 1990) pp. 237–252.Google Scholar
  42. [42]
    M. Hermenegildo and F. Rossi, Strict and non-strict independent and-parallelism in logic programs: correctness, efficiency, and compile-time conditions, Journal of Logic Programming 22(1) (1995).Google Scholar
  43. [43]
    M.V. Hermenegildo, An abstract machine based execution model for computer architecture design and efficient implementation of logic programs in parallel, Ph.D. thesis, Univ. of Texas at Austin (August 1986).Google Scholar
  44. [44]
    M.V. Hermenegildo, An abstract machine for restricted AND-parallel execution of logic programs, in: Proc. 3rd ICLP, LNCS 225 (Springer, 1986) pp. 25–40.Google Scholar
  45. [45]
    M.V. Hermenegildo. Relating goal scheduling, precedence, and memory management in AND-parallel execution of logic programs, in: Fourth International Conference on Logic Programming, University of Melbourne (MIT Press, May 1987) pp. 556–575.Google Scholar
  46. [46]
    M.V. Hermenegildo and R.I. Nasr, Efficient management of backtracking in AND-parallelism, in: Third International Conference on Logic Programming, Lecture Notes in Computer Science 225 (Springer, 1986) pp. 40–55.Google Scholar
  47. [47]
    M. Hermenegildo, M. García de la Banda and K. Marriot, Independence in constraint logic programming, in: Proc. of the 1993 International Symposium on Logic Programming (MIT Press, 1993).Google Scholar
  48. [48]
    D. Jacobs and A. Langen, Accurate and efficient approximation of variable aliasing in logic programs, in: 1989 North American Conference on Logic Programming (MIT Press, 1989).Google Scholar
  49. [49]
    P. Kacsuk, A highly parallel Prolog interpreter based on the generalized data flow model, in: Proc. of the 2nd International Logic Programming Conference, Uppsala (July 1984).Google Scholar
  50. [50]
    L. Kale, Parallel execution of logic programs: the REDUCE-OR process model, in: Fourth International Conference on Logic Programming, Melbourne, Australia (May 1987) pp. 616–632.Google Scholar
  51. [51]
    F. Kluźniak, Developing applications for Aurora or-parallel system, Technical report TR-90-17, Dept. of Computer Science, University of Bristol (1990).Google Scholar
  52. [52]
    Y.-J. Lin, A parallel implementation of logic programs, Ph.D. thesis, Dept. of Computer Science, University of Texas at Austin, Austin, TX (August 1988).Google Scholar
  53. [53]
    J. W. Lloyd, Foundations of Logic Programming (Springer, 1987).Google Scholar
  54. [54]
    E. Lusk and al., The Aurora or-parallel Prolog system, New Generation Computing 7(2,3) (1990).Google Scholar
  55. [55]
    T. Moto-Oka, ed., Fifth Generation Computer Systems (North-Holland, 1982).Google Scholar
  56. [56]
    K. Muthukumar and M. Hermenegildo, Efficient methods for supporting side effects in independent and-parallelism and their backtracking semantics, in: 1989 International Conference on Logic Programming (MIT Press, 1989).Google Scholar
  57. [57]
    K. Muthukumar and M. Hermenegildo, The CDG, UDG, and MEL methods for automatic compile-time parallelization of logic programs for independent and-parallelism, in: 1990 International Conference on Logic Programming (MIT Press, 1990) pp. 221–237.Google Scholar
  58. [58]
    E. Pontelli and G. Gupta, Dependent and parallelism in logic programming, Technical report, Laboratory for Logic, DB, and Advanced Programming (1995). Internal report.Google Scholar
  59. [59]
    E. Pontelli and G. Gupta, Non-determinate dependent and-parallelism revisited, Technical report NMSU-CSTR-9601, Dept. of Computer Science, New Mexico State University (1996).Google Scholar
  60. [60]
    E. Pontelli and G. Gupta, Non-determinated dependent and-parallelism revisited, in: Proc. of the Joint International Conference and Symposium on Logic Programming (MIT Press, 1996) (extended abstract).Google Scholar
  61. [61]
    E. Pontelli, G. Gupta and M. Hermenegildo, &ACE: a high-performance parallel Prolog system, in: IPPS 95 (IEEE Computer Society, Santa Barbara, CA, April 1995).Google Scholar
  62. [62]
    E. Pontelli, G. Gupta and D. Tang, Determinacy driven optimizations of parallel Prolog implementations, in: Proc. of the Int. Conference on Logic Programming 95 (MIT Press, 1995).Google Scholar
  63. [63]
    E. Pontelli, G. Gupta, D. Tang, M. Carro and M. Hermenegildo, Efficient implementation of independent and parallelism, Computer Languages, to appear.Google Scholar
  64. [64]
    E. Pontelli, D. Tang, G. Gupta and M. Carro, Last parallel call optimization and fast backtracking in and-parallel logic programming systems, in: International Logic Programming Symposium (MIT Press, 1994) (extended abstract).Google Scholar
  65. [65]
    A. Provetti, Towards the formalization of causal aspects of legal reasoning, Ph.D. thesis, University of Bologna, Italy (1996).Google Scholar
  66. [66]
    B. Ramkumar and L.V. Kale, Machine independent AND and OR parallel execution of logic programs. Part i and ii, IEEE Transactions on Parallel and Distributed Systems 2(5).Google Scholar
  67. [67]
    J.A. Robinson, A machine oriented logic based on the resolution principle, Journal of the ACM 12(23) (1965) 23–41.zbMATHCrossRefGoogle Scholar
  68. [68]
    V. Saraswat and P. Van Hentenryck, Principle and Practice of Constraint Programming (MIT Press, 1995).Google Scholar
  69. [69]
    E.Y. Shapiro, ed., Concurrent Prolog: Collected Papers (MIT Press, Cambridge, MA, 1987).Google Scholar
  70. [70]
    K. Shen, Exploiting dependent and-parallelism in Prolog: the dynamic dependent and-parallel scheme, in: Proc. Joint Int. Conf. and Symp. on Logic Prog. (MIT Press, 1992).Google Scholar
  71. [71]
    K. Shen, Studies in and/or parallelism in Prolog, Ph.D. thesis, Univ. of Cambridge (1992).Google Scholar
  72. [72]
    K. Shen and M. Hermenegildo, A flexible stack memory management scheme for non-deterministic, and-parallel execution of logic programs, Technical report, Facultad de Informatica, U. P. Madrid, Spain (January 1993).Google Scholar
  73. [73]
    L. Sterling and E.Y. Shapiro, The Art of Prolog (MIT Press, Cambridge, MA, 1994).Google Scholar
  74. [74]
    T. Fujise, T. Chikayama and D. Sekita, A portable and efficient implementation of KL1, in: ICOT/NSF Workshop on Parallel Logic Programming and its Programming Environments, University of Oregon (1994).Google Scholar
  75. [75]
    H. Tebra, Optimistic and-parallelism in Prolog, in: PARLE 87 (Springer, 1987).Google Scholar
  76. [76]
    K. Ueda, Guarded Horn clauses, in: Concurrent Prolog: Collected Papers, ed. E.Y. Shapiro (MIT Press, Cambridge, MA, 1987) pp. 140–156.Google Scholar
  77. [77]
    J.D. Ullman, Database and Knowledge-Base Systems (Computer Science Press, Maryland, 1988).Google Scholar
  78. [78]
    D.H.D. Warren, An abstract Prolog instruction set, Technical report 309, SRI International (1983).Google Scholar
  79. [79]
    D.H.D. Warren, The SRI model for OR-parallel execution of Prolog — abstract design and implementation, in: Proc. IEEE Int. Symp. on Logic Prog. (1987) pp. 92–102.Google Scholar
  80. [80]
    M.J. Wise, Prolog Multiprocessors (Prentice-Hall, 1986).Google Scholar
  81. [81]
    M. Wolfe, High Performance Compiler for Parallel Computing (Addison-Wesley, 1996).Google Scholar

Copyright information

© Kluwer Academic Publishers 1997

Authors and Affiliations

  • Enrico Pontelli
    • 1
  • Gopal Gupta
    • 1
  1. 1.Laboratory for Logic, Databases, and Advanced Programming, Department of Computer ScienceNew Mexico State UniversityLas CrucesUSA

Personalised recommendations