An Or-Parallel Prolog Execution Model for Clusters of Multicores

João Santos and Ricardo Rocha

September 2013


Abstract

Logic Programming languages, such as Prolog, offer a great potential for the exploitation of implicit parallelism. One of the most distinguishable 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. Arguably, or-parallel Prolog systems based on the environment copying model have been the most successful parallel logic programming systems so far. 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 with distributed memory architectures. Motivated by our past experience, in designing and developing parallel Prolog systems based on the environment copying model, we propose a novel computational model to efficiently exploit implicit parallelism from large scale real-world applications specialized for the novel architectures based on clusters of multicores.

Bibtex

@InProceedings{santos-epia13-local,
  author =    {J. Santos and R. Rocha},
  title =     {{An Or-Parallel Prolog Execution Model for Clusters of Multicores}},
  booktitle = {Local Proceedings of the 16th Portuguese Conference on Artificial Intelligence (EPIA 2013)},
  pages =     {154--165},
  editor =    {L. Paulo Reis and L. Correia and J. Cascalho},
  month =     {September},
  year =      {2013},
  address =   {Açores, Portugal},
}

Download Paper

PDF file