A join algorithm for combining AND parallel solutions in AND/OR parallel systems

Balkrishna Ramkumar, Laxmikant V Kale

Research output: Contribution to journalArticle

Abstract

When two or more literals in the body of a Prolog clause are solved in (AND) parallel, their solutions need to be joined to compute solutions for the clause. This is often a difficult problem in parallel Prolog systems that exploit OR and independent AND parallelism in Prolog programs. In several AND/OR parallel systems proposed recently, this problem is side-stepped at the cost of unexploited OR parallelism in the program, in part due to the complexity of the backtracking algorithm beneath AND parallel branches. In some cases, the data dependency graphs used by these systems cannot represent all the exploitable indenpendent AND parallelism known at compile time. In this paper, we describe the compile time analysis for an optimized join algorithm for supporting independent AND parallelism in logic programs efficiently without leaving any OR parallelism unexploited. We then discuss how this analysis can be used to yield very efficient runtime behavior. We also discuss problems associated with a tree representation of the search space when arbitrarily complex data dependency graphs are permitted. We describe how these problems can be resolved by mapping the search space onto the data dependency graphs themselves. The algorithm has been implemented in a compiler for parallel Prolog based on the Reduce-OR process model. The algorithm is suitable for the implementation of AND/OR systems on both shared and nonshared memory machines. Performance on benchmark programs exhibiting AND and OR parallelism on one shared memory machine and one message passing machine is presented.

Original languageEnglish (US)
Pages (from-to)67-107
Number of pages41
JournalInternational Journal of Parallel Programming
Volume21
Issue number1
DOIs
StatePublished - Feb 1 1992

    Fingerprint

Keywords

  • AND/OR parallelism
  • MIMD architectures
  • Prolog
  • logic programming
  • portable parallel programming

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Information Systems

Cite this