The AND-Prolog compiler system — Automatic parallelization tools for LP

This report presents an overview of the current work performed by us in the context of the efficient parallel implementation of traditional logic programming systems. The work is based on the &-Prolog System, a system for the automatic parallelization and execution of logic programming languages within the Independent And-parallelism model, and the global analysis and parallelization tools which have been developed for this system. In order to make the report self-contained, we first describe the "classical" tools of the &-Prolog system. We then explain in detail the work performed in improving and generalizing the global analysis and parallelization tools. Also, we describe the objectives which will drive our future work in this area.

[1]  Heikki Mannila,et al.  Flow Analysis of Prolog Programs , 1987, SLP.

[2]  Annika Waern An Implementation Technique for the Abstract Interpretation of Prolog , 1988 .

[3]  Manuel V. Hermenegildo,et al.  Extracting Non-Strict Independent And-Parallelism Using Sharing and Freeness Information , 1994, SAS.

[4]  Harald Søndergaard,et al.  An Application of Abstract Interpretation of Logic Programs: Occur Check Reduction , 1986, ESOP.

[5]  Michael Codish,et al.  Derivation and Safety of an Abstract Unification Algorithm for Groundness and Aliasing Analysis , 1991, ICLP.

[6]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[7]  Doug DeGroot Restricted And-Parallelism and Side Effects , 1987, SLP.

[8]  Manuel V. Hermenegildo,et al.  An abstract machine based execution model for computer architecture design and efficient implementation of logic programs in parallel , 1986 .

[9]  John S. Conery,et al.  The and/or process model for parallel interpretation of logic programs , 1983 .

[10]  Fosca Giannotti,et al.  A Technique for Recursive Invariance Detection and Selective Program Specification , 1991, PLILP.

[11]  Francesca Rossi,et al.  Non-Strict Independent And-Parallelism , 1990, ICLP.

[12]  Manuel V. Hermenegildo,et al.  Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation , 1991, ICLP.

[13]  Gopal Gupta,et al.  And-Or Parallelism on Shared-Memory Multiprocessors , 1993, J. Log. Program..

[14]  Péter Szeredi Performance Analysis of the Aurora Or-Parallel Prolog System , 1989, NACLP.

[15]  John S. Conery,et al.  An Abstract Interpretation Scheme for Groundedness, Freeness, and Sharing Analysis of Logic Programs , 1992, FSTTCS.

[16]  Saumya K. Debray,et al.  Automatic Mode Inference for Prolog Programs , 1986, SLP.

[17]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[18]  Chris Mellish,et al.  Abstract Interpretation of Prolog Programs , 1986, ICLP.

[19]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[20]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[21]  David H. D. Warren,et al.  Or-Parallel Execution Models of Prolog , 1987, TAPSOFT, Vol.2.

[22]  Francesca Rossi,et al.  On the Correctness and Efficiency of Independent And-Parallelism in Logic Programs , 1989, NACLP.

[23]  Maurice Bruynooghe,et al.  A framework for the abstract interpretation of logic programs , 1987 .

[24]  Alan H. Karp,et al.  A comparison of 12 parallel FORTRAN dialects , 1988, IEEE Software.

[25]  Yow-Jian Lin,et al.  A parallel implementation of logic programs , 1988 .

[26]  Hisao Tamaki,et al.  Enumeration of Success Patterns in Logic Programs , 1983, Theor. Comput. Sci..

[27]  Manuel V. Hermenegildo,et al.  The DCG, UDG, and MEL Methods for Automatic Compile-time Parallelization of Logic Programs for Independent And-parallelism , 1990, ICLP.

[28]  Philippe Robert,et al.  The PEPSys Model: Combining Backtracking, AND- and OR-Parallelism , 1987, SLP.

[29]  Khayri A. M. Ali,et al.  The Muse Or-Parallel Prolog Model and its Performance , 1990, NACLP.

[30]  Laxmikant V. Kalé,et al.  Compiled Execution of the Reduce-OR Process Model on Multiprocessors , 1989, NACLP.

[31]  Suzanne W. Dietrich,et al.  Extension Tables: Memo Relations in Logic Programming , 1987, SLP.

[32]  David Y. Y. Yun,et al.  A Scalable Abstract Machine Model to Support Limited-OR (LOR) / Restricted-AND Parallelism (RAP) in Logic Programs , 1988, ICLP/SLP.

[33]  Saumya K. Debray,et al.  On the Practicality of Global Flow Analysis of Logic Programs , 1988, ICLP/SLP.

[34]  Francesca Rossi,et al.  Strict and Nonstrict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions , 1995, J. Log. Program..

[35]  Flemming Nielson,et al.  Strictness analysis and denotational abstract interpretation , 1987, POPL '87.

[36]  Saumya K. Debray,et al.  Static inference of modes and data dependencies in logic programs , 1989, TOPL.

[37]  Doug DeGroot,et al.  Restricted AND-Parallelism , 1984, FGCS.

[38]  Manuel V. Hermenegildo,et al.  Complete and Efficient Methods for Supporting Side-effects in Independent/Restricted AND-Parallelism , 1989, ICLP.

[39]  Dean Jacobs,et al.  Accurate and Efficient Approximation of Variable Aliasing in Logic Programs , 1989, NACLP.

[40]  David H. D. Warren,et al.  The SRI Model for Or-Parallel Execution of Prolog: Abstract Design and Implementation Issues , 1987, SLP.

[41]  Manuel V. Hermenegildo,et al.  A simulation study of or- and independent and-parallelism , 1991 .