Automatic Compile-time Parallelization of Prolog Programs for Dependent And-Parallelism

The problem of automatically detecting dependent and-parallelism in Prolog programs has not been studied so far. In this paper we discuss major issues involved in using static analysis to detect dependent and-parallelism in Prolog programs. We present a static analysis technique based on abstract interpretation that detects (fruitful) dependent and-parallelism. Our method makes use of several types of information about the program|sharing and freeness, granularity of subgoals, and binding-times of program variables|computed using abstract interpretation. The information collected from diierent sources is used to produce a suitable annotation of the original program. This annotation iden-tiies: (i) the most fruitful sources of parallelism; and, (ii) the dependencies that must be respected during execution. A prototype compiler that incorporates these ideas has been implemented and tested on the ACE and-or parallel Prolog system. The (very encouraging) results obtained are reported here.

[1]  Boontee Kruatrachue,et al.  Grain size determination for parallel processing , 1988, IEEE Software.

[2]  Laura Ricci,et al.  Pipeline optimizations in and-parallelism by abstract interpretation , 1990 .

[3]  Manuel V. Hermenegildo Some Methodological Issues in the Design of CIAO, a Generic, Parallel Concurrent Constraint Logic Programming System , 1994, PPCP.

[4]  Håkan Millroth,et al.  Reform Prolog: The Language and Its Implementation , 1993, ICLP.

[5]  Gopal Gupta Multiprocessor Execution of Logic Programs , 1994, Springer US.

[6]  Manuel V. Hermenegildo,et al.  Automatic Compile-Time Parallelization of Logic Programs for Restricted, Goal Level, Independent and Parallelism , 1999, J. Log. Program..

[7]  Saumya K. Debray,et al.  Cost analysis of logic programs , 1993, TOPL.

[8]  Kenneth R. Traub,et al.  Compilation as partitioning: a new approach to compiling non-strict functional languages , 1989, FPCA.

[9]  Kish Shen,et al.  Overview of Daswam: Exploitation of Dependent and-Parallelism , 1996, J. Log. Program..

[10]  Francesca Rossi,et al.  Towards a Concurrent Semantics based Analysis of CC and CLP , 1994, PPCP.

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

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

[13]  Enrico Pontelli,et al.  Non-determinate Dependent And-parallelism Revisited , 1996 .

[14]  CortesiAgostino,et al.  Abstract interpretation of logic programs , 1991 .

[15]  Kish Shen Initial Results of the Parallel Implementation of DASWAM , 1996, JICSLP.

[16]  Kish Shen Studies of and/or parallelism in Prolog , 1992 .

[17]  Patrick Cousot Abstract Interpretation of Logic Programs , 1991, ICLP.

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

[19]  Andy King,et al.  Schedule Analysis of Concurrent Logic programs , 1992, JICSLP.

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

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

[22]  Saumya K. Debray,et al.  Task granularity analysis in logic programs , 1990, PLDI '90.

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