Optimization schemas for parallel implementation of non‐deterministic languages and systems

Naive parallel implementation of non‐deterministic systems (such as a theorem proving system) and languages (such as logic, constraint, or concurrent constraint languages) can result in poor performance. We present three optimization schemas, based on flattening of the computation tree, procrastination of overheads, and sequentialization of computations that can be systematically applied to parallel implementations of non‐deterministic systems/languages to reduce the parallel overhead and to obtain improved efficiency of parallel execution. The effectiveness of these schemas is illustrated by applying them to the ACE parallel logic programming system. The performance data presented show that considerable improvement in execution efficiency can be achieved. Copyright © 2001 John Wiley & Sons, Ltd.

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

[2]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[3]  Saumya K. Debray,et al.  Detection and Optimization of Functional Computations in Prolog , 1986, ICLP.

[4]  Enrico Pontelli,et al.  Automatic Compile-time Parallelization of Prolog Programs for Dependent And-Parallelism , 1997, ICLP.

[5]  Nancy Martin,et al.  Programming Expert Systems in OPS5 - An Introduction to Rule-Based Programming(1) , 1985, Int. CMG Conference.

[6]  Alberto Pettorossi,et al.  Transformation of Logic Programs: Foundations and Techniques , 1994, J. Log. Program..

[7]  Guy E. Blelloch,et al.  Vector Models for Data-Parallel Computing , 1990 .

[8]  Manuel V. Hermenegildo,et al.  Effectiveness of Global Analysis in Strict Independence-Based Automatic Parallelization , 1994, ILPS.

[9]  Dana S. Scott,et al.  Concurrent constraint programming languages , 1989 .

[10]  Manuel V. Hermenegildo,et al.  A Comparative Study of Methods for Automatic Compile-time Parallelization of Logic Programs , 1994, PASCO.

[11]  Enrico Pontelli,et al.  &ACE: a high-performance parallel Prolog system , 1995, IPPS.

[12]  Gary Sabot The paralation model - architecture-independent parallel programming , 1988 .

[13]  Enrico Pontelli,et al.  ACE: And/Or-parallel Copying-based Execution of Logic Programs , 1994, ICLP.

[14]  Enrico Pontelli,et al.  Determinacy Driven Optimizations of And-Parallel Prolog Implementations , 1995, ICLP.

[15]  Saumya K. Debray,et al.  Non-Failure Analysis for Logic Programs , 1997, ICLP.

[16]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[17]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[18]  Enrico Pontelli,et al.  Nested Parallel Call Optimization , 1996, IPPS.

[19]  Enrico Pontelli,et al.  Determinancy Driven Optimization of Parallel Prolog Implementations , 1994, Workshop on Design and Impl. of Parallel Logic Programming Systems.

[20]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[21]  Manuel V. Hermenegildo,et al.  Divided We Stand: Parallel Distributed Stack Memory Management , 1993, ICLP-Workshops on Implementation of Logic Programming Systems.

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

[23]  Jan Maluszy¿ski Programming with Global Analysis , 1997 .

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

[25]  Saumya K. Debray,et al.  Global Flow Analysis as a Practical Compilation Tool , 1992, J. Log. Program..

[26]  Enrico Pontelli,et al.  Improving the Efficiency of Nondeterministic Independent and-Parallel Systems , 1996, Comput. Lang..

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

[28]  David H. D. Warren,et al.  Scheduling Speculative Work in Or-Parallel Prolog Systems , 1993, ICLP.

[29]  Donald A. Smith Why Multi-SLD Beats SLD (Even on a Uniprocessor) , 1994, PLILP.

[30]  Saumya K. Debray,et al.  Automatic Mode Inference for Logic Programs , 1988, J. Log. Program..

[31]  Enrico Pontelli,et al.  Natural Language Multiprocessing: A Case Study , 1998, AAAI/IAAI.

[32]  Péter Szeredi,et al.  Applications of the Aurora Parallel Prolog System to Computational Molecular Biology , 1993, ILPS.

[33]  Daniel W. Palmer,et al.  Work-efficient nested data-parallelism , 1995, Proceedings Frontiers '95. The Fifth Symposium on the Frontiers of Massively Parallel Computation.

[34]  Lourdes Araujo,et al.  A Parallel Prolog System for Distributed Memory , 1997, J. Log. Program..

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

[36]  Isaac D. Scherson,et al.  Efficient techniques for fast nested barrier synchronization , 1995, SPAA '95.

[37]  Manuel V. Hermenegildo,et al.  An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs , 1986, ICLP.

[38]  Mats Carlsson On the Efficiency of Optimising Shallow Backtracking in Compiled Prolog , 1989, ICLP.

[39]  Frank Pfenning,et al.  Types in Logic Programming , 1992, ICLP.

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

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

[42]  Enrico Pontelli,et al.  Efficient Backtracking in And-Parallel Implementations of Non-deterministic Languages , 1998, ICPP.

[43]  Philippe Codognet,et al.  A Minimal Extension of the WAM for clp(FD) , 1993, ICLP.

[44]  Manuel V. Hermenegildo,et al.  Program Analysis, Debugging, and Optimization Using the Ciao System Preprocessor , 1999, ICLP.

[45]  Donald A. Smith MultiLog: Data Or-Parallel Logic Programming , 1993, ICLP.

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

[47]  Enrico Pontelli,et al.  Implementation Mechanisms for Dependent And-Parallelism , 1997, ICLP.

[48]  Butler W. Lampson,et al.  Hints for Computer System Design , 1983, IEEE Software.

[49]  Rong Yang,et al.  Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism , 1991, PPOPP '91.