A simple and efficient implementation of concurrent local tabling

  • Authors:
  • Rui Marques;Terrance Swift;José Cunha

  • Affiliations:
  • CITI, Departamento de Informática, Faculdade de Ciencia e Tecnologia, Universidade Nova de Lisboa, Portugal;CENTRIA, Departamento de Informática, Faculdade de Ciencia e Tecnologia, Universidade Nova de Lisboa, Portugal;CITI, Departamento de Informática, Faculdade de Ciencia e Tecnologia, Universidade Nova de Lisboa, Portugal

  • Venue:
  • PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Newer Prolog implementations commonly offer support for multithreading, and many also offer support for tabling. However, most implementations do not yet integrate tabling with multi-threading, and in particular do not support the sharing of a tabled computation among threads. In this paper we present algorithms to share completed tables among threads based on Concurrent Local SLG evaluation (SLGCL). SLGCL is based on the Local scheduling strategy, and is designed to support applications in which threads concurrently share tabled evaluations. Version 3.2 of XSB implements SLGCL in the SLGCLWAM, which fully supports well-founded tabled negation, construction of residual programs, tabled constraints and answer subsumption. The implementation of SLGCL requires significant additions to a single tabling operation only. As a result, SLGCL should be implementable by any tabling systems that uses Local evaluation based on the SLG-WAM or Chat engine, and may also be applicable to those using linear tabling.