Concurrent Table Accesses in Parallel Tabled Logic Programs

  • Ricardo Rocha
  • Fernando Silva
  • Vítor Santos Costa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3149)


Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog by reusing answers to subgoals. The declarative nature of tabled logic programming suggests that it might be amenable to parallel execution. On the other hand, the complexity of the tabling mechanism, and the existence of a shared resource, the table, may suggest that parallelism might be limited and never scale for real applications. In this work, we propose three alternative locking schemes to deal with concurrent table accesses, and we study their impact on the OPTYap parallel tabling system using a set of tabled programs.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Sagonas, K., Swift, T., Warren, D.S.: XSB as an Efficient Deductive Database Engine. In: ACM SIGMOD International Conference on the Management of Data, pp. 442–453. ACM Press, New York (1994)Google Scholar
  2. 2.
    Rocha, R., Silva, F., Santos Costa, V.: On a Tabling Engine that Can Exploit Or- Parallelism. In: Codognet, P. (ed.) ICLP 2001. LNCS, vol. 2237, pp. 43–58. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Ali, K., Karlsson, R.: The Muse Approach to OR-Parallel Prolog. International Journal of Parallel Programming 19, 129–162 (1990)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Sagonas, K., Swift, T.: An Abstract Machine for Tabled Execution of Fixed-Order Stratified Logic Programs. ACM Transactions on Programming Languages and Systems 20, 586–634 (1998)CrossRefGoogle Scholar
  5. 5.
    Rocha, R., Silva, F., Costa, V.S.: Achieving Scalability in Parallel Tabled Logic Programs. In: International Parallel and Distributed Processing Symposium, IEEE Computer Society, Los Alamitos (2002)Google Scholar
  6. 6.
    Ramakrishnan, I.V., Rao, P., Sagonas, K., Swift, T., Warren, D.S.: Efficient Access Mechanisms for Tabled Logic Programs. Journal of Logic Programming 38, 31–54 (1999)zbMATHCrossRefGoogle Scholar
  7. 7.
    Fredkin, E.: Trie Memory. Communications of the ACM 3, 490–499 (1962)CrossRefGoogle Scholar
  8. 8.
    Chan, I.W., Lim, C.Y.: Parallel Implementation of the Trie Structure. In: International Conference on Parallel and Distributed Systems, pp. 538–543. IEEE Computer Society, Los Alamitos (1994)Google Scholar
  9. 9.
    McCune, W.W.: Experiments with Discrimination-Tree Indexing and Path Indexing for Term Retrieval. Journal of Automated Reasoning 9, 147–167 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Bachmair, L., Chen, T., Ramakrishnan, I.V.: Associative Commutative Discrimination Nets. In: Gaudel, M.-C., Jouannaud, J.-P. (eds.) CAAP 1993, FASE 1993, and TAPSOFT 1993. LNCS, vol. 668, pp. 61–74. Springer, Heidelberg (1993)Google Scholar
  11. 11.
    Graf, P. (ed.): Term Indexing. LNCS, vol. 1053. Springer, Heidelberg (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Ricardo Rocha
    • 1
  • Fernando Silva
    • 1
  • Vítor Santos Costa
    • 2
  1. 1.DCC-FC & LIACCUniversity of PortoPortugal
  2. 2.COPPE Systems & LIACCFederal University of Rio de JaneiroBrazil

Personalised recommendations