Skip to main content

On the complexity of parallel implementation of logic programs

Extended abstract

  • Conference paper
  • First Online:
Foundations of Software Technology and Theoretical Computer Science (FSTTCS 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1346))

Abstract

We study several data-structures and operations that commonly arise in parallel implementations of logic programming languages. The main problems that arise in implementing such parallel systems are abstracted out and precisely stated. Upper and lower bounds are derived for several of these problems. We prove a lower bound of Ω(log n) on the overhead incurred in implementing even a simplified version of or-parallelism. We prove that the aliasing problem in parallel logic programming is at least as hard as the union-find problem. We prove that an and-parallel implementation can be realized on an extended pointer machine with an O(1) overhead.

This work has been partially supported by NSF grants CCR 96-25358, INT 95-15256, and HRD 9628450, and by NATO Grant CRG 921318.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K.A.M. Ali and R. Karlsson. Full Prolog and Scheduling Or-parallelism in Muse. International Journal of Parallel Programming, 1991. 19(6):445–475.

    Article  MathSciNet  Google Scholar 

  2. N. Blum. On the single-operation worst-case time complexity of the disjoint set union problem. SIAM Journal on Computing, 15(4), 1986.

    Google Scholar 

  3. M. Carlsson,G. Gupta, K.M. Ali and M.V. Hermenegildo. Parallel execution of prolog programs: a survey. Journal of Logic Programming, 1998. to appear.

    Google Scholar 

  4. M. Fredman, M. Saks. The Cell Probe Complexity of Dynamic Data Structures. In Procs. of 21st ACM Symposium on Theory of Computing. ACM, 1989.

    Google Scholar 

  5. H.N. Gabow. Data structures for weighted matching and nearest common ancestor. In ACM Symp. on Discrete Algorithms, 1990.

    Google Scholar 

  6. G. Gupta and V. Santos Costa. Cuts and Side-effects in And/Or Parallel Prolog. Journal of Logic Programming, 27(1):45–71, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  7. G. Gupta and B. Jayaraman. Analysis of or-parallel execution models. ACM TOPLAS, 15(4):659–680, 1993.

    Article  Google Scholar 

  8. D. Harel and R.E. Tarjan. Fast Algorithms for Finding Nearest Common Ancestor. SIAM Journal of Computing, 13(2), 1984.

    Google Scholar 

  9. M. Hermenegildo and K. Greene. &-Prolog and its Performance. In Int'l Conf. on Logic Prog., MIT Press, 1990.

    Google Scholar 

  10. J.C. Kergommeaux and P. Codognet. Parallel logic programming systems. ACM Computing Surveys, 26(3), 1994.

    Google Scholar 

  11. D.E. Knuth. The Art of Computer Programming, volume 1. Addison-Wesley, 1968.

    Google Scholar 

  12. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.

    Google Scholar 

  13. E. Lusk and al. The Aurora Or-parallel Prolog System. New Generation Computing, 7(2,3), '90.

    Google Scholar 

  14. E. Pontelli and G. Gupta. Implementation mechanisms for dependent andparallelism. In International Conference on Logic Programming. MIT Press, 1997.

    Google Scholar 

  15. E. Pontelli, G. Gupta, and M. Hermenegildo. &ACE: A High-performance Parallel Prolog System. In IPPS 95. IEEE Computer Society, 1995.

    Google Scholar 

  16. E. Pontelli, D. Ranjan, and G. Gupta. On the complexity of the Parallelism in Logic Programming. Technical report, New Mexico State University, 1997.

    Google Scholar 

  17. E. Pontelli, D. Ranjan, and G. Gupta. On the complexity of the insertion/precedes problem. Technical report, New Mexico State University, 1997.

    Google Scholar 

  18. H. La Poutré. Lower Bounds for the Union-Find and the Split-Find Problem on Pointer Machines. Journal of Computer and System Sciences, 52:87–99, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  19. A. Schönhage. Storage Modification Machines. SIAM Journal of Computing, 9(3):490–508, August 1980.

    Article  MATH  Google Scholar 

  20. D.D. Sleator and R.E. Tarjan. A data structure for dynamic trees. Journal of Computer and System Sciences, 26, 1983.

    Google Scholar 

  21. R.E. Tarjan. A Class of Algorithms which Require Nonlinear Time to Mantain Disjoint Sets. Journal of Computer and System Sciences, 2(18), 1979.

    Google Scholar 

  22. R.E. Tarjan. Data Structures and Network Algorithms. CBMS-NSF, 1983. 23. A.K. Tsakalidis. The Nearest Common Ancestor in a Dynamic Tree. ACTA Informatica, 25, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. Ramesh G Sivakumar

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pontelli, E., Ranjan, D., Gupta, G. (1997). On the complexity of parallel implementation of logic programs. In: Ramesh, S., Sivakumar, G. (eds) Foundations of Software Technology and Theoretical Computer Science. FSTTCS 1997. Lecture Notes in Computer Science, vol 1346. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0058027

Download citation

  • DOI: https://doi.org/10.1007/BFb0058027

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63876-6

  • Online ISBN: 978-3-540-69659-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics