Towards Multi-Threaded Local Tabling Using a Common Table Space
Miguel Areias, Ricardo Rocha

TL;DR
This paper introduces a novel multi-threaded tabling approach in Prolog using a common table space, reducing memory and improving execution time compared to traditional private or shared table methods.
Contribution
It proposes three designs for a shared table space in multi-threaded Prolog, offering an alternative to existing private and shared table implementations like in XSB.
Findings
Significant memory reduction achieved with the new designs.
Notable improvements in execution time observed.
Effective sharing strategies enhance multi-threaded tabling performance.
Abstract
Multi-threading is currently supported by several well-known Prolog systems providing a highly portable solution for applications that can benefit from concurrency. When multi-threading is combined with tabling, we can exploit the power of higher procedural control and declarative semantics. However, despite the availability of both threads and tabling in some Prolog systems, the implementation of these two features implies complex ties to each other and to the underlying engine. Until now, XSB was the only Prolog system combining multi-threading with tabling. In XSB, tables may be either private or shared between threads. While thread-private tables are easier to implement, shared tables have all the associated issues of locking, synchronization and potential deadlocks. In this paper, we propose an alternative view to XSB's approach. In our proposal, each thread views its tables as…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
