The authors present a new optimization for or-parallel logic programming (Prolog) systems, called last alternative optimization (LAO). The LAO follows from the flattening principle and the principle of duality of or-parallelism and and-parallelism. Originally LAO was conceived as the dual of last parallel call optimization, an optimization developed for and-parallel systems. LAO enables Prolog programs that have data-or parallelism to execute more efficiently. It also enables more efficient (parallel) execution of constraint logic programs over finite domains. LAO is a fairly general optimization and can be readily applied to virtually any parallel system that exploits nondeterminism (e.g., parallel search based artificial intelligence systems). Last alternative optimization has been implemented in the ACE parallel Prolog system. The performance results indeed prove the effectiveness of LAO. They present a second optimization based on the flattening principle, called balanced nesting optimization (BNO), that is related to LAO, and that also leads to reduction of parallel overhead.
[1]
Khayri A. M. Ali,et al.
The Muse Or-Parallel Prolog Model and its Performance
,
1990,
NACLP.
[2]
Enrico Pontelli,et al.
&ACE: a high-performance parallel Prolog system
,
1995,
IPPS.
[3]
Saumya K. Debray,et al.
A Simple Program Transformation for Parallelism
,
1994,
ILPS.
[4]
Enrico Pontelli,et al.
ACE: And/Or-parallel Copying-based Execution of Logic Programs
,
1994,
ICLP.
[5]
Manuel V. Hermenegildo,et al.
Relating Data-Parallelism and (and-) Parallelism in Logic Programs
,
1995,
Comput. Lang..
[6]
Manuel V. Hermenegildo,et al.
Relating Data-Parallelism and (And-) Parallelism in Logic Programs
,
1995,
Euro-Par.
[7]
Péter Szeredi,et al.
Applications of the Aurora Parallel Prolog System to Computational Molecular Biology
,
1993,
ILPS.
[8]
Enrico Pontelli,et al.
Data parallel logic programming in &ACE
,
1995,
SPDP.