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