On a Tabling Engine That Can Exploit Or-Parallelism

  • Authors:
  • Ricardo Rocha;Fernando M. A. Silva;Vítor Santos Costa

  • Affiliations:
  • -;-;-

  • Venue:
  • Proceedings of the 17th International Conference on Logic Programming
  • Year:
  • 2001

Quantified Score

Hi-index 0.01

Visualization

Abstract

Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog by reusing solutions to goals. Quite a few interesting applications of tabling have been developed in the last few years, and several are by nature non-deterministic. This raises the question of whether parallel search techniques can be usedto improve the performance of tabledapplications.In this work we demonstrate that the mechanisms proposed to parallelize search in the context of SLD resolution naturally generalize to parallel tabledcomputations, and that resulting systems can achieve goodp erformance on multi-processors. To do so, we present the OPTYap parallel engine. In our system individual SLG engines communicate data through stack copying. Completion is detected through a novel parallel completion algorithm that builds upon the data structures proposed for or-parallelism. Scheduling is simplified by building on previous research on or-parallelism. We show initial performance results for our implementation. Our best result is for an actual application, model checking, where we obtain linear speedups.