2017
DOI: 10.1016/j.jss.2016.06.060
|View full text |Cite
|
Sign up to set email alerts
|

On scaling dynamic programming problems with a multithreaded tabling Prolog system

Abstract: Tabling is a powerful implementation technique that improves the declarativeness and expressiveness of traditional Prolog systems in dealing with recursion and redundant computations. It can be viewed as a natural tool to implement dynamic programming problems, where a general recursive strategy divides a problem in simple sub-problems that are often the same. When tabling is combined with multithreading, we have the best of both worlds, since we can exploit the combination of higher declarative semantics with… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
5

Relationship

3
2

Authors

Journals

citations
Cited by 6 publications
(7 citation statements)
references
References 24 publications
0
7
0
Order By: Relevance
“…17,18 One such approach is the subgoal sharing with shared completed answers design. 26 The idea is as follows. The subgoal trie structures are shared among all threads, and the leaf data structures representing each tabled subgoal call C i , instead of pointing to a single subgoal frame, point to a chain of private subgoal frames, one per thread that is evaluating the call C i .…”
Section: Multithreaded Tablingmentioning
confidence: 99%
See 1 more Smart Citation
“…17,18 One such approach is the subgoal sharing with shared completed answers design. 26 The idea is as follows. The subgoal trie structures are shared among all threads, and the leaf data structures representing each tabled subgoal call C i , instead of pointing to a single subgoal frame, point to a chain of private subgoal frames, one per thread that is evaluating the call C i .…”
Section: Multithreaded Tablingmentioning
confidence: 99%
“…For a tabled evaluation, a thread views its tables as private, but at the engine level, parts of the table space can be shared among threads . One such approach is the subgoal sharing with shared completed answers design . The idea is as follows.…”
Section: Introductionmentioning
confidence: 99%
“…In this subsection, we show how dynamic programming problems fit well with concurrent tabled evaluation (Areias and Rocha 2017). To do so, we used two wellknown dynamic programming problems, the Knapsack and the Longest Common Subsequence (LCS) problems.…”
Section: Experiments On Dynamic Programming Problemsmentioning
confidence: 99%
“…Full details regarding the Prolog code fragments implementing both approaches can be found in(Areias and Rocha 2017). https://www.cambridge.org/core/terms.…”
mentioning
confidence: 99%
“…One such feature is the ISO Prolog multithreading standardization proposal [36], which currently is implemented in several Prolog systems, including Ciao, SWI Prolog, XSB Prolog and YAP Prolog, providing a highly portable solution given the number of operating systems supported by these systems. Arguably, one of the features that promises to have a significant impact is the combination of multithreading with tabling [37,38], as Prolog users will be able to exploit the combination of a higher procedural control with higher declarative semantics. Future work plans include the extension of YAPTBE to support the execution and output analysis of standard and tabled multithreaded Prolog runs.…”
Section: Further Workmentioning
confidence: 99%