Parallel execution of prolog programs: A survey

被引:61
|
作者
Gupta, G
Pontelli, E
Ali, KAM
Carlsson, M
Hermenegildo, MV
机构
[1] Univ Texas, Dept Comp Sci, Richardson, TX 75083 USA
[2] New Mexico State Univ, Dept Comp Sci, Las Cruces, NM 88003 USA
[3] Swedish Inst Comp Sci, SE-16429 Kista, Sweden
[4] Univ Politecn Madrid, Fac Informat, E-28660 Madrid, Spain
关键词
design; languages; performance; automatic parallelization; constraint programming; logic programming; parallelism; prolog;
D O I
10.1145/504083.504085
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Since the early days of logic programming, researchers in the field realized the potential for exploitation of parallelism present in the execution of logic programs. Their high-level nature, the presence of nondeterminism, and their referential transparency, among other characteristics, make logic programs interesting candidates for obtaining speedups through parallel execution. At the same time, the fact that the typical applications of logic programming frequently involve irregular computations, make heavy use of dynamic data structures with logical variables, and involve search and speculation, makes the techniques used in the corresponding parallelizing compilers and run-time systems potentially interesting even outside the field. The objective of this article is to provide a comprehensive survey of the issues arising in parallel execution of logic programming languages along with the most relevant approaches explored to date in the field. Focus is mostly given to the challenges emerging from the parallel execution of Prolog programs, The article describes the major techniques used for shared memory implementation of Or-parallelism, And-parallelism, and combinations of the two. We also explore some related issues, such as memory management, compile-time analysis, and execution visualization.
引用
收藏
页码:472 / 602
页数:131
相关论文
共 50 条