A Team-Based Scheduling Model for Interfacing Or-Parallel Prolog Engines

João Santos1 and Ricardo Rocha1

  1. CRACS & INESC TEC and Faculty of Sciences, University of Porto
    Rua do Campo Alegre, 1021/1055, 4169-007 Porto, Portugal
    {jsantos,ricroc}@dcc.fc.up.pt

Abstract

Logic Programming languages, such as Prolog, offer a great potential for the exploitation of implicit parallelism. One of the most noticeable sources of implicit parallelism in Prolog programs is or-parallelism. Or-parallelism arises from the simultaneous evaluation of a subgoal call against the clauses that match that call. Nowadays, multicores and clusters of multicores are becoming the norm and, although, many 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. Conceptually, an or-parallel Prolog system consists of two components: an or-parallel engine (i.e., a set of independent Prolog engines which we named a team of workers) and a scheduler. In this work, we propose a team-based scheduling model to efficiently exploit parallelism between different or-parallel engines running on top of clusters of multicores. Our proposal defines a layered approach where a second-level scheduler specifies a clean interface for scheduling work between the base or-parallel engines, thus enabling different scheduling combinations to be used for distributing work among workers inside a team and among teams.

Key words

Prolog, or-parallelism, environment copying, scheduling

Digital Object Identifier (DOI)

https://doi.org/10.2298/CSIS131025050S

Publication information

Volume 11, Issue 4 (October 2014)
Special Issue on Advances in Systems, Modeling, Languages and Agents
Year of Publication: 2014
ISSN: 1820-0214 (Print) 2406-1018 (Online)
Publisher: ComSIS Consortium

Full text

DownloadAvailable in PDF
Portable Document Format

How to cite

Santos, J., Rocha, R.: A Team-Based Scheduling Model for Interfacing Or-Parallel Prolog Engines. Computer Science and Information Systems, Vol. 11, No. 4, 1435–1454. (2014)