New Generation Computing

, Volume 20, Issue 4, pp 373–399 | Cite as

PAN: A portable, parallel Prolog: Its design, realisation and performance

  • George Xirogiannis
  • Hamish Taylor
Regular Papers


PAN is a general purpose, portable environment for executing logic programs in parallel. It combines a flexible, distributed architecture which is resilient to software and platform evolution with facilities for automatically extracting and exploiting AND and OR parallelism in ordinary Prolog programs. PAN incorporates a range of compile-time and run-time techniques to deliver the performance benefits of parallel execution while rertaining sequential execution semantics. Several examples illustrate the efficiency of the controls that facilitate the execution of logic programs in a distributed manner and identify the class of applications that benefit from distributed platforms like PAN.


Logic Programming Parallelisation PVM 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1).
    Ali, K. A. M. and Karlsson, R., Scheduling OR-parallelism in MUSE. inProc. of 8th Int. Conf. on Logic Prog. (Furukawa, K., ed.), pp. 807–821, 1991.Google Scholar
  2. 2).
    Araujo, J. and Ruz, J. J., “A Parallel Prolog System for Distributed Memory,”Int. Journal of Logic Prog., 33, 1, pp. 49–79, 1997.CrossRefGoogle Scholar
  3. 3).
    Baron, U., de Kergommeaux J. C., Hailperin M., Ratcliffe M., Robert P., Syre J. C., and Westphal H., “The parallel ECRC Prolog system PEPSys: An overview and evaluation results,” inInt. Conf. on FCGS (ICOT, ed.), pp. 841–850. 1988.Google Scholar
  4. 4).
    Beaumont, T. and Warren, D. H. D., “Scheduling Speculative Work in OR-parallel Prolog Systems,” inProc. of 10th Int. Conf. on Logic Prog. (Warren, D. S., ed.), pp. 135–149, 1993.Google Scholar
  5. 5).
    Bratko, I.,Prolog: Prog. for Art. Intelligence, 2nd ed. Addison Wesley, 1991.Google Scholar
  6. 6).
    Briat, J., Favre, M., Geyer, C., and de Kergommeaux, J. C., “OPERA: Orparallel Prolog system on Supernode,”Implementations of Distributed Prolog (Kacsuk, P. and Wise M. J., eds.), John Wiley, pp. 45–64, 1992.Google Scholar
  7. 7).
    Bruynooghe M., Deomoen N., Boulanger D., Denecker M., and Mulkers A., “A Freeness and Sharing Analysis of Logic Programs Based on Pre-interpretation,” inProc. of 3rd Int. Symp. on Static Analysis (R. Cousot and D. A. Schmidt, eds.), pp. 128–142, 1996.CrossRefGoogle Scholar
  8. 8).
    Carlton, M. and Van Roy P.,A Distributed Prolog System with AND-Parallelism, IEEE Software, pp. 43–51, Jan., 1988.CrossRefGoogle Scholar
  9. 9).
    Clocksin W. F., “The Delphi Multiprocessor Inference Machine,” inProc. of ICSLP '92-Work. on Concurrent and Parallel Implementations (Apt, K., ed.), 1992.Google Scholar
  10. 10).
    Costa, V. S., Warren, D. H. D., and Yang, R., “The Andorra-I Preprocessor Full Prolog on the Basic Andorra Model,” inProc of 8th Int. Conf. on Logic Prog. (Furukawa, K., ed.), pp. 599–613, 1991.Google Scholar
  11. 11).
    Coulouris, G. F., and Dollimore, J.,Distributed Systems: Concepts and Design, 2nd ed., Addison Wesley, 1994.Google Scholar
  12. 12).
    Cunha, J. C., Medeiros, P. D., Carvalhosa, M. B., and Pereira, L. M., “Delta-Prolog: A Distributed Logic Programming Language and its Implementation on Distributed Memory Multiprocessors,”Implementations of Distributed Prolog (Kacsuk, P. and Wise, M. J., eds.), John Wiley, pp. 335–356, 1992.Google Scholar
  13. 13).
    Dutra I., “Strategies for Scheduling AND and OR Parallel Work in Parallel Logic Programming Systems”, in inProc. of 1994 Int. Symp. of Logic Prog. (M. Bruynooghe, ed.), pp. 289–304, 1994.Google Scholar
  14. 14).
    Debray, S. K., Garcia, P. L., Hermenegildo, M. V. and Lin N. W., “Estimating the Computational Cost of Logic Programs,” inProc. of Static Analysis Symp. (Charlier, B. L., ed.), 1994, pp. 255–265, 1994.Google Scholar
  15. 15).
    Debray, S. K. and Lin, N., “Cost Analysis of Logic Programs,”TOPLAS, 15, 5, pp. 826–875, 1993.CrossRefGoogle Scholar
  16. 16).
    Debray, S. K., Lin, N. W. and Hermenegildo, M. V., “Task Granularity Analysis in Logic Programs,” inProc. of 1990 ACM Conf. on Prog. Lang. Design and Implementation, pp. 174–188, 1990.CrossRefGoogle Scholar
  17. 17).
    DeGroot, D., “Restricted AND-parallelism and Side Effects,” inProc. of Int. Symp. on Logic Prog., pp. 80–89, 1987.Google Scholar
  18. 18).
    Futo, I., “The Real Time Extension of CS-Prolog Professional,”ICLP'94-Work. on Parallel and Data Parallel Execution of Logic Programs (Barklund, J., Jayaraman, B. and Tanaka, J., eds.), 1994.Google Scholar
  19. 19).
    Garcia, P. L., Hermenegildo, M. V., and Debray, S. K., “A Methodology for Granularity Based Control of Parallelism in Logic Programs,”Journal of Symbolic Computation, 22, pp. 715–734, 1996.MathSciNetzbMATHGoogle Scholar
  20. 20).
    Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., and Sunderam, V.,PVM User's Guide and Reference Manual, ORNL, Tennessee, 1995.zbMATHGoogle Scholar
  21. 21).
    Gupta, G. and Costa, V. S., “Cuts and Side-effects in AND-OR Parallel Prolog,”Journal of Logic Prog., 27, 1, 1996.MathSciNetCrossRefGoogle Scholar
  22. 22).
    Gupta G, Hermenegildo M, and Costa V., S., “AND-OR Parallel Prolog: Recomputation Based Approach”,New Generation Computing, 1, 3–4, pp. 770–782, 1993.Google Scholar
  23. 23).
    Hermenegildo, M. V. and Greene, K. J., “The &-Prolog System: Exploiting Independent AND-parallelism,”New Generation Computing, 9, 3–4, pp. 233–257, 1991.CrossRefGoogle Scholar
  24. 24).
    Hermenegildo M. V., Bueno F., Puebla G., and Lopez P., “Program Analysis, Debugging and Optimisation Using the CIAO System Preprocessor,” inProc. of 1999 IJCSLP (D. De Schreye, ed.), pp. 52–66, 1999.Google Scholar
  25. 25).
    Hermenegildo, M. V., “An Abstract Machine for Restricted AND-parallel Execution of Logic Programs,”Proc. of 3rd Int. Conf. on Logic Prog. (Shapiro, E., ed.), pp. 25–40, 1986.Google Scholar
  26. 26).
    Hermenegildo M. V. and Rossi, F., “On the Correctness and Efficiency of Independent AND-parallelism in Logic Programs,” inProc. of 1989 N. Amer. Conf. on Logic Prog. (Lusk, E. L. and Overbeek, R. A., eds.), pp. 369–389, 1989.Google Scholar
  27. 27).
    Jacobs D. and A. Langen A., “Accurate and Efficient Approximation of Variable Aliasing in Logic Programs,”Journal of Logic Prog. 13, 2–3 pp. 291–314, 1992.CrossRefGoogle Scholar
  28. 28).
    Kacsuk, P., “OR-parallel Prolog on Distributed Memory Systems,”LNCS, 817, Springer-Verlag, pp. 543–463, 1994.Google Scholar
  29. 29).
    Kacsuk, P. and Wise, M. J.,Implementations of Distributed Prolog. John Wiley, Chichester, 1992.Google Scholar
  30. 30).
    Kale, L. V. and Ramkumar, B., “The REDUCE/OR Process Model for Parallel Logic Programming on Non-shared Memory Machines,”Implementations of Distributed Prolog (Kacsuk, P. and Wise, M. J., eds.), John Wiley, pp. 187–212, 1992.Google Scholar
  31. 31).
    Kaplan, S., “Algorithmic Complexity of Logic Programs,” inProc. of 5th Int. Conf. and Symp. on Logic Prog. (Kowalski, R. and Bowen K, eds.), pp. 780–793, 1988.Google Scholar
  32. 32).
    King A., Shen K., and Benoy F., “Lower-bound Time-complexity Analysis of Logic Programs,” inInt. Symp. on Logic Prog. (J. Maluszynski, ed.), pp. 261–276, 1997.Google Scholar
  33. 33).
    King, A. and Soper P., “Heuristics, Thresholding and a New Technique for Controlling the Granularity of Concurrent Logic Programs,” Tech. Rep. CSTR 92-08, Dept. of Electronics and Computer Science-Southampton Univ., 1992.Google Scholar
  34. 34).
    King A. and Soper P., “Depth-k Sharing and Freeness,” inInt. Conf. on Logic Prog. 1994 (P. Van Hentenryck, ed.), pp. 553–568, 1994.Google Scholar
  35. 35).
    Lusk, E., Warren, D. H. D., and Haridi, S., “The aurora OR-parallel System,”New Generation Computing, 7, 2–3, pp. 243–271, 1990.CrossRefGoogle Scholar
  36. 36).
    Morel, E., Briat, J., de Kergommeaux, J. C. and Geyer, C., “Side-effects in PloSys Or-parallel Prolog on Distributed Memory Machines,”ICSLP'96-Compulog Net Meeting (Maher, M. J., ed.), Bonn, 1996.Google Scholar
  37. 37).
    Mulkers A., Simoens W., Janssens G. and Bruynooghe M., “On the Practicality of Abstract Equation Systems,” inProc. of 12th Int. Conf. on Logic Prog. (L. Sterling, ed.), pp. 781–795, 1995.Google Scholar
  38. 38).
    Muthukumar K. and Hermenegildo M.V., “The CDG, UDG and MEL Methods for Automatic Compile-time Parallelization of Logic Programs for Independent AND-parallelism,“ in7th Int. Conf. on Logic Prog. (D. H. D. Warren and P. Szeredi, eds.), pp. 221–236, 1990.Google Scholar
  39. 39).
    Nelson, R. D. and Squillante, M. S., “Modeling and Analysis of Task Migration in Shared-memory Multiprocessor Computer Systems,” inProc. of 4th Int. Work on MASCOT, Computer Society, pp. 262–266, 1996.Google Scholar
  40. 40).
    Palmer, D. and Naish, L., “NUA-Prolog, Extension to WAM for Parallel Andorra,” inProc. of 8th Int. Conf. on Logic Prog. (Furukawa, K., ed.), pp. 599–613, 1991.Google Scholar
  41. 41).
    Pontelli, E, Gupta, G. and Hermenegildo, M. V., “&-ACE: a High Performance Parallel Prolog System,” inProc. of Int. Parallel Processing Symp., IEEE Computer Society, 1995.Google Scholar
  42. 42).
    Sahlin, D., “Determinacy Analysis for Full Prolog,”ACM Symp. on Partial Evaluation and Semantics Based Program Manipulation, ACM Press, 1991.Google Scholar
  43. 43).
    Shapiro, E., “An OR-parallel Algorithm for Prolog and its FCP Implementation,” inProc. of 4th Int. Conf. on Logic Prog. (Lassez, J.L., ed.), pp. 311–337, 1987.Google Scholar
  44. 44).
    Shapiro, E. and Sterling, L.,The Art of Prolog, MIT Press, 1988.Google Scholar
  45. 45).
    Shen, K., “Improving the Execution of the Dependent AND-parallel Prolog DDAS,”LNCS, 817, Springer-Verlag, pp. 438–452, 1994.CrossRefGoogle Scholar
  46. 46).
    Shen K., Costa V. S., and King A., “A New Metric for Controlling Granularity for Parallel Execution,” inWork. on Parallelism and Implementation Technology for Constraint Logic Prog. Langs., 1997.Google Scholar
  47. 47).
    Shen K., Costa V. S., and King A., “Distance, a New Metric for Controlling Granularity for Parallel Execution,”Functional and Logic Prog., 1999.Google Scholar
  48. 48).
    Sindaha R. Y., “Branch-level Scheduling in Aurora: The Dharma Scheduler,” inInt. Symp. on Logic Prog. (D. Miller, ed.), pp. 403–419, 1993.Google Scholar
  49. 49).
    Takeuchi, A., “Parallel Logic Prog.” PhD thesis, Univ. of Tokyo Japan 1990.Google Scholar
  50. 50).
    Taylor, H., “Assembling a Resolution Multiprocessor from Interface, Programming and Distributed Processing Components,”Computer Languages, 22, 2–3, pp. 181–192, 1996.CrossRefGoogle Scholar
  51. 51).
    Tick, E.,Parallel Logic Prog., MIT Press, 1991.Google Scholar
  52. 52).
    Tick, E. “Compile-time Granularity Analysis of Parallel Logic Programming Languages,”New Generation Computing, 7, 2, 1990.CrossRefGoogle Scholar
  53. 53).
    Tick, E. and Zhong, X., “A Compile-time Granularity Analysis Algorithm and its Performance Evaluation,”New Generation Computing,1,3–4, 1993.Google Scholar
  54. 54).
    Verden, A. and Glaser, H., “An AND-OR-parallel Distributed Prolog Executor,”Implementations of Distributed Prolog (Kacsuk, P. and Wise, M. J., eds), John Wiley, pp. 143–157, 1992.Google Scholar
  55. 55).
    Warren, D. H. D., “The SRI Model for OR-parallel Execution of Prolog-Abstract Design and Implementation,” inProc. of Int. Symp. on Logic Prog. (Warren, D. H. D. and Szeredi, P., eds.), pp. 92–102, 1987.Google Scholar
  56. 56).
    Warren, D. H. D., “The Extended Andorra Model with Implicit Control”ICLP'90-Work. on Parallel Logic Prog. (Warren, D. H. D. and Szeredi P, eds.), 1990.Google Scholar
  57. 57).
    Wegbreit, B., “Mechanical program analysis,”CACM, 18, 9, pp. 528–539, 1975.MathSciNetCrossRefGoogle Scholar
  58. 58).
    Winsborough W. and Waern A., “Transparent AND-parallelism in the Presence of Shared Free Variables,” in5th Int. Conf. and Symp. on Logic Prog. (R. Kowalski and K. Bowen, eds.), pp. 749–764, 1988.Google Scholar
  59. 59).
    Wise, M. J., “Experience with PMS-Prolog,”Software Practice and Experience, 22, 2 pp. 151–175, 1993.CrossRefGoogle Scholar
  60. 60).
    Xirogiannis, G., “Compile-time Analysis of Freeness and Side-effects for Distributed Execution of Prolog Programs,” inProc. of 6th Hellenic Conf. on Informatics (Sellis, T. and Pagkalos, G., eds.) pp. 701–722, 1997.Google Scholar
  61. 61).
    Xirogiannis, G., “Execution of Prolog by Transformations on Distributed Memory Multi-ProcessorsPhD thesis, Heriot-Watt Univ., Edinburgh, 1998.Google Scholar
  62. 62).
    Xirogiannis, G., “Granularity Control for Distributed Execution of Logic Programs,” inProc. of 18th Int. Conf. on Distributed Computing Systems (Papazoglou, M. P., Takizawa, M., Kramer, B. and Chanson, S. eds.), pp. 230–237, 1998.Google Scholar
  63. 63).
    Xirogiannis, G., and Taylor, H., “A Dynamic Task Distribution and Engine Allocation Strategy for Distributed Execution of Logic Programs,” inProc. of 1998. Int. Conf. on High-Performance Computing & Networking (Sloot, P., Bubak, M. and Hertzerger, B., eds.), pp. 294–304, 1998.CrossRefGoogle Scholar
  64. 64).
    Yang, R., Beaumont, T., Dutra, I., Costa, V. S. and Warren, D. H. D., “Performance of the Compiler-based Andorra-I System,” inProc. of the Tenth International Conference on Logic Programming (David S. Warren, ed.), pp. 150–166, Budapest, Hungary, 1993. The MIT Press.Google Scholar

Copyright information

© Ohmsha, Ltd. and Springer 2002

Authors and Affiliations

  1. 1.Heriot-Watt UniversityEdinburghScotland

Personalised recommendations