Table space designs for implicit and explicit concurrent tabled evaluation

作者: MIGUEL AREIAS , RICARDO ROCHA

DOI: 10.1017/S147106841800039X

关键词: Key (cryptography)Computer scienceLogic programmingPrologParallelism (grammar)RecursionProgramming languageData structureConcurrencyTable (database)

摘要: One of the main advantages Prolog is its potential for implicit exploitation parallelism and, as a high-level language, also often used means to explicitly control concurrent tasks. Tabling powerful implementation technique that overcomes some limitations traditional systems in dealing with recursion and redundant sub-computations. Given these advantages, question arises if tabling has concurrency/parallelism. On one hand, still exploits search space but, on other model necessarily far more complex since it introduces concurrency access tables. In this paper, we summarize Yap's contributions tabled evaluation describe design challenges several alternative table designs explicit which represent different trade-offs between memory usage. We motivate using fixed-size lock-free data structures, elaborate key role engine's allocator plays such environments, discuss how mode-directed support can be extended evaluation. Finally, present our future perspectives towards an efficient novel framework integrates both single engine. Under consideration Theory Practice Logic Programming (TPLP).

参考文章(53)
I. V. Ramakrishnan, C. R. Ramakrishnan, Prasad Rao, A Thread in Time Saves Tabling Time. JICSLP. pp. 112- 126 ,(1996)
Enrico Pontelli, Gopal Gupta, Implementation Mechanisms for Dependent And-Parallelism. international conference on lightning protection. pp. 123- 137 ,(1997)
João Santos, Ricardo Rocha, On the Efficient Implementation of Mode-Directed Tabling Practical Aspects of Declarative Languages. pp. 141- 156 ,(2013) , 10.1007/978-3-642-45284-0_10
Péter Szeredi, Seif Haridi, Andrzej Ciepielewski, Ewing L. Lusk, Bogumil Hausman, Alan Calderwood, David H. D. Warren, Per Brand, Mats Carlsson, Terry Disz, Rick L. Stevens, Robert Olson, Ralph Butler, Ross A. Overbeek, The Aurora Or-Parallel Prolog System. Future Generation Computer Systems. pp. 819- 830 ,(1988)
Manuel Carro, Manuel Hermenegildo, Concurrency in Prolog using threads and a shared database international conference on logic programming. pp. 320- 334 ,(1999)
Jorge Costa, João Raimundo, Ricardo Rocha, A Term-Based Global Trie for Tabled Logic Programs international conference on logic programming. pp. 205- 219 ,(2009) , 10.1007/978-3-642-02846-5_20
Pablo Chico de Guzmán, Manuel Carro, Manuel V. Hermenegildo, Cláudio Silva, Ricardo Rocha, An improved continuation call-based implementation of tabling practical aspects of declarative languages. pp. 197- 213 ,(2008) , 10.1007/978-3-540-77442-6_14
Juliana Freire, Terrance Swift, David S. Warren, Beyond Depth-First: Improving Tabled Logic Programs through Alternative Scheduling Strategies international symposium on programming language implementation and logic programming. pp. 243- 258 ,(1996) , 10.1007/3-540-61756-6_89
I. Dorta, Fatos Xhafa, A. Rojas, Maria J. Blesa, J. Luna, Francisco Almeida, Luz Marina Moreno, Carlos Cotta, Enrique Alba, Jordi Petit, J. Cabeza, C. León, C. Pablos, M. Díaz, Joachim Gabarró, MALLBA: A Library of Skeletons for Combinatorial Optimisation (Research Note) european conference on parallel processing. pp. 927- 932 ,(2002)