OASys: an AND/OR parallel logic programming system

The OASys (Or/And SYStem) is a software implementation designed for AND/OR-parallel execution of logic programs. In order to combine these two types of parallelism, OASys considers each alternative path as a totally independent computation (leading to OR-parallelism) which consists of a conjunction of determinate subgoals (leading to AND-parallelism). This computation model is motivated by the need for the elimination of communication between processing elements (PEs). OASys aims towards a distributed memory architecture in which the PEs performing the OR-parallel computation possess their own address space while other simple processing units are assigned with AND-parallel computation and share the same address space. OASys execution is based on distributed scheduling which allows either recomputation of paths or environment copying. We discuss in detail the OASys execution scheme and we demonstrate OASys eAectiveness by presenting the results obtained by a prototype implementation, running on a network of workstations. The results show that speedup obtained by AND/OR-parallelism is greater than the speedups obtained by exploiting AND or OR-parallelism alone. In addition, comparative performance measurements show that copying has a minor advantage over recomputation. ” 1999 Elsevier Science B.V. All rights reserved.

[1]  Joachim Schimpf,et al.  Parallel CLP on Heterogeneous Networks , 1994, ICLP.

[2]  Yong-Fei Han,et al.  Parallel inference algorithms for the connection method on systolic arrays , 1994 .

[3]  Petros Kefalas,et al.  OR-Parallel Prolog and Search Problems in AI Applications , 1990, ICLP.

[4]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[5]  Lourdes Araujo,et al.  PDP: Prolog Distributed Processor for Independent AND\OR Parallel Execution of Prolog , 1994, ICLP.

[6]  Kish Shen Exploiting Dependent And-Parallelism in Prolog: The Dynamic Dependent And-Parallel Scheme (DDAS) , 1992, JICSLP.

[7]  Vipin Kumar,et al.  AND-Parallel Execution of Logic Programs on a Shared-Memory Multiprocessor , 1988, J. Log. Program..

[8]  Seif Haridi,et al.  A Formal Model for Or-Parallel Execution of Logic Programs , 1983, IFIP Congress.

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

[10]  Zheng Lin Self-Organizing Task Scheduling for Parallel Execution of Logic Programs , 1992, FGCS.

[11]  Seif Haridi,et al.  Data Diffusion Machine - A Scalable Shared Virtual Memory Multiprocessor , 1988, FGCS.

[12]  Philippe Robert,et al.  The Parallel ECRC Prolog System PEPSys: An Overview and Evaluation Results , 1988, FGCS.

[13]  Manuel V. Hermenegildo,et al.  &-Prolog and its Performance: Exploiting Independent And-Parallelism , 1990, ICLP.

[14]  Ioannis P. Vlahavas,et al.  A parallel Prolog resolution based on multiple unifications , 1992, Parallel Comput..

[15]  Rong Yang,et al.  Performance of the Compiler-Based Andorra-I System , 1993, ICLP.

[16]  Ioannis Vlahavas,et al.  The basic OASys model: preliminary results , 1997 .

[17]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[18]  W. F. Clocksin,et al.  Principles of the DelPhi Parallel Inference Machine , 1987, Comput. J..

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

[20]  Kazunori Ueda,et al.  Introduction to Guarded Horn Clauses , 1987 .

[21]  I Vlahavas Exploiting and-or parallelism in Prolog: The OASys computational model and abstract architecture , 1998, J. Syst. Softw..