Logic Programming Environments with Advanced Parallelism

João Santos

July 2016


Abstract

Nowadays, clusters of multicores are becoming the norm and, although, many or-parallel Prolog systems have been developed in the past, to the best of our knowledge, none of them was specially designed to explore the combination of shared and distributed memory architectures. In this thesis, we propose a novel computational model specially designed for such combination which introduces a layered model with two scheduling levels, one for workers sharing memory resources, which we named a team of workers, and another for teams of workers (not sharing memory resources). Starting from this proposal, we then present a first implementation of such model and for that we revive and extend the YapOr system to efficiently exploit or-parallelism between teams of workers. In order to take full advantage of our system, we also propose a new set of built-in predicates that constitute the syntax to interact with an or-parallel engine in our system. Experimental results show that our system, when compared against YapOr, achieves identical speedups for shared memory and, when running on clusters of multicores, is able to increase speedups as we increase the number of workers per team, thus taking advantage of the maximum number of cores in a machine, and to increase speedups as we increase the number of teams, thus taking advantage of adding more computer nodes to a cluster. We thus argue that our system is an efficient and viable alternative for exploiting implicit or-parallelism in the currently available clusters of low cost multicore architectures.

Bibtex

@PhdThesis{santos-phd,
  author =  {J. Santos},
  title =   {{Logic Programming Environments with Advanced Parallelism}},
  school =  {University of Porto},
  address = {Portugal},
  month =   {July},
  year =    {2016},
  type =    {{PhD Thesis}},
}

Download Thesis

PDF file