On the Correctness and Efficiency of Independent And-Parallelism in Logic Programs

This paper presents and proves some fundamental results for independent and-parallelism (IAP). First, the paper treats the issues of correctness and efficiency: after defining strict and non-strict goal independence, it is proved that if strictly independent goals are executed in parallel the solutions obtained are the same as those produced by standard sequential execution. It is also shown that, in the absence of failure, the parallel proof procedure doesn't generate any additional work (with respect to standard SLDresolution) while the actual execution time is reduced. The same results hold even if non-strictly independent goals are executed in parallel, provided a trivial rewriting of such goals is performed. In addition, and most importantly, treats the issue of compile-time generation of IAP by proposing conditions, to be written at compile-time, to efficiently check strict and non-strict goal independence at run-time and proving the sufficiency of such conditions. It is also shown how simpler conditions can be constructed if some information regarding the binding context of the goals to be executed in parallel is available to the compiler trough either local or program-level analysis. These results therefore provide a formal basis for the automatic compile-time generation of IAP. As a corollary of such results, the paper also proves that negative goals are always non-strictly independent, and that goals which share a first occurrence of an existential variable are never independent.

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

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

[3]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

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

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

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

[7]  Laxmikant V. Kalé,et al.  'Completeness' and 'Full Parallelism' of Parallel Logic Programming Schemes , 1987, SLP.

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

[9]  Doug DeGroot,et al.  AND-Parallelism of Logic Programs Based on a Static Data Dependency Analysis , 1985, COMPCON.

[10]  Annika Wærn,et al.  Transparent And-Parallelism in the Presence of Shared Free Variables , 1988, ICLP/SLP.

[11]  Manuel V. Hermenegildo,et al.  Determination of variable dependence information at compile-time through abstract interpretation , 1989 .

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

[13]  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.

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

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

[16]  Dean Jacobs,et al.  Compilation of Logic Programs for Restricted And-Parallelism , 1988, ESOP.

[17]  Manuel V. Hermenegildo,et al.  Efficient Management of Backtracking in AND-Parallelism , 1986, ICLP.

[18]  Krzysztof R. Apt,et al.  Introduction to Logic Programming , 1988 .