On Comparing Alternative Splitting Strategies for Or-Parallel Prolog Execution on Multicores

Many or-parallel Prolog models exploiting implicit parallelism have been proposed in the past. Arguably, one of the most successful models is environment copying for shared memory architectures. With the increasing availability and popularity of multicore architectures, it makes sense to recover the body of knowledge there is in this area and re-engineer prior computational models to evaluate their performance on newer architectures. In this work, we focus on the implementation of splitting strategies for or-parallel Prolog execution on multicores and, for that, we develop a framework, on top of the YapOr system, that integrates and supports five alternative splitting strategies. Our implementation shares the underlying execution environment and most of the data structures used to implement or-parallelism in YapOr. In particular, we took advantage of YapOr's infrastructure for incremental copying and scheduling support, which we used with minimal modifications. We thus argue that all these common support features allow us to make a first and fair comparison between these five alternative splitting strategies and, therefore, better understand their advantages and weaknesses.

[1]  Karen Villaverde,et al.  A Methodology for Order-Sensitive Execution of Non-deterministic Languages on Beowulf Platforms , 2003, Euro-Par.

[2]  Enrico Pontelli,et al.  Stack-splitting: Or-/And-parallelism on Distributed Memory Machines , 1999, ICLP.

[3]  Enrico Pontelli,et al.  Stack splitting A Simple Technique for Implementing Or parallelism and And parallelism on Distributed Machines , 2003 .

[4]  Ricardo Rocha,et al.  YapDss: An Or-Parallel Prolog System for Scalable Beowulf Clusters , 2003, EPIA.

[5]  Ricardo Rocha,et al.  Threads and or-parallelism unified , 2010, Theory Pract. Log. Program..

[6]  V. S. Costa,et al.  The YAP Prolog system , 2011, Theory and Practice of Logic Programming.

[7]  Ricardo Rocha,et al.  YapOr: an Or-Parallel Prolog System Based on Environment Copying , 1999, EPIA.

[8]  Ricardo Rocha,et al.  Or-parallel prolog execution on multicores based on stack splitting , 2012, DAMP '12.

[9]  Karen Villaverde,et al.  PALS: An Or-Parallel Implementation of Prolog on Beowulf Architectures , 2001, ICLP.

[10]  Khayri A. M. Ali,et al.  Full prolog and scheduling or-parallelism in muse , 1991, International Journal of Parallel Programming.

[11]  Khayri A. M. Ali,et al.  The muse approach to Or-parallel prolog , 1990, International Journal of Parallel Programming.

[12]  Karen Villaverde,et al.  Stack splitting: A technique for efficient exploitation of search parallelism on share-nothing platforms , 2006, J. Parallel Distributed Comput..