On the Implementation of an Or-Parallel Prolog System for Clusters of Multicores
João Santos and Ricardo Rocha
October 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 recent work, we have proposed 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). In this work, we
present a first implementation of such model and for that we revive
and extend the YapOr system to exploit or-parallelism between teams of
workers. We also propose a new set of built-in predicates that
constitute the syntax to interact with an or-parallel engine in our
platform. Experimental results show that our implementation 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 platform is an efficient and viable alternative for
exploiting implicit or-parallelism in the currently available clusters
of low cost multicore architectures.
Bibtex
@Article{santos-iclp16,
author = {J. Santos and R. Rocha},
title = {{On the Implementation of an Or-Parallel Prolog System for Clusters of Multicores}},
journal = {Journal of Theory and Practice of Logic Programming,
32nd International Conference on Logic Programming (ICLP 2016), Special Issue},
pages = {899--915},
volume = {16},
number = {5 \& 6},
month = {October},
year = {2016},
}
Download Paper
PDF file
Cambridge University Press
Computing Research Repository (CoRR)
Download Slides
PDF file