Skip to main content
Log in

An And/Or-Parallel implementation of AKL

  • Special Issue
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

The Agents Kernel Language (AKL) is a general purpose concurrent constraint language. It combines the programming paradigms of search-oriented languages such as Prolog and process-oriented languages such as GHC.

The paper is focused on three essential issues in the parallel implementation of AKL for shared-memory multiprocessors: how to maintain multiple binding environments, how to represent the execution state and how to distribute work among workers.

A simple scheme is used for maintaining multiple binding environments. A worker will immediately see conditional bindings placed on variables, all workers will have a coherent view of the constraint stores. A locking scheme is used that entails little overhead for operations on local variables.

The goals in a guard are represented in a way that allows them to be inserted and removed without any locking. Continuations are used to represent sequences of untried goals. The representation keeps the granularity of work more coarse.

Available work is distributed among workers in such a way that hot-spots are avoided. And- and or-tasks are distributed and scheduled in a uniform way.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ali, K. A. M., “A Parallel Copying Garbage Collection Scheme for Shared-Memory Multiprocessors,”New Generation Computing,14,3, August 1995.

  2. Santos Costa, V., Warren, D. H. D., and Yang, R., “The Andorra-I Engine: A Parallel Implementation of the Basic Andorra Model,”Technical Note, University of Bristol, Department of Computer Science, March 1990.

  3. Crammond, J., “Implementation of Committed Choice Logic Languages on Shared Memory Multiprocessors,”Ph.D thesis, Heriot-Watt University, 1988.

  4. Franzén, T., “Some Formal Aspects of AKL,”SICS Research Report, R94: 10, Swedish Institute of Computer Science, 1994.

  5. Gupta G. and Jayaraman, B., “On Criteria for Or-Parallel Execution Models of Logic Programs,” inProceedings of the 1990 North American Conference on Logic Programming (S. Debray and M. Hermenegildo, eds.), Austin, ALP, MIT Press, pp. 737–756, 1990.

    Google Scholar 

  6. Sato, H., Ichiyoshi, N., Dasai, T., Miyazaki, T., and Takeuchi, A., “A Sequential Implementation of Concurrent Prolog Based on the Deep Binding Scheme,” inThe First National Conference of Japan Society for Software Science and Technology, pp. 299–302, 1984. [In Japanese.]

  7. Hermenegildo, M. V. and Greene, K. J., “&-Prolog and Its Performance: Exploiting Independent And-Parallelism,” inProceedings of the Seventh International Conference on Logic Programming (D. H. D. Warren and P. Szeredi, eds.), Jerusalem, The MIT Press, pp. 253–268, 1990.

    Google Scholar 

  8. Ines, de C. D., “Strategies for Scheduling And- and Or-Work in Parallel Logic Programming Systems,” inProceedings of the 1994 International Logic Programming Symposium (M. Bruynooghe, ed.), Ithaca, ALP, MIT Press, 1994.

    Google Scholar 

  9. Janson, S. and Haridi, S., “Programming Paradigms of the Andorra Kernel Language,” inLogic Programming, Proceedings of the 1991 International Symposium (V. Saraswat and K. Ueda, eds.), San Diego, USA, The MIT Press, pp. 167–186, 1991.

    Google Scholar 

  10. Janson, S. and Montelius, J., “The Design of the AKL/PS 0.0 Prototype Implementation of the Andorra Kernel Language,”ESPRIT deliverable, EP 2471 (PEPMA), Swedish Institute of Computer Science, 1992.

  11. Miyazaki, T., Takeuchi, A., and Chikayama, T., “A Sequential Implementation of Concurrent Prolog Based on the Shallow Binding Scheme,” inSymposium on Logic Programming, IEEE Computer Society, Technical Committee on Computer Languages, The Computer Society Press, pp. 110–118, July 1985.

  12. Moolenaar, R. and Demoen, B., “Full Parallel Search in AKL,” submitted for publication.

  13. Podelski, A. and Van Roy, P., “The Beauty and Beast Algorithm: Quasi-Linear Incremental Tests of Entailment and Disentailment over Trees,” inProceedings of the 1994 International Logic Programming Symposium (M. Bruynooghe, ed.), Ithaca, ALP, MIT Press, pp. 359–374, 1994.

    Google Scholar 

  14. Demoen, B. and Moolenaar, R., “A Parallel Implementation for Akl,” inLecture Notes in Computer Science, 714, Springer-Verlag, pp. 246–261, August 1993.

  15. Shen, K., “Implementing Dynamic Dependent And-Parallelism,” inProceedings of the Tenth International Conference on Logic Programming (D. S. Warren, ed.), Budapest, Hungary, The MIT Press, pp. 167–183, 1993.

    Google Scholar 

  16. Warren, D. H. D., “An Abstract Prolog Instruction Set,”Technical Report, 309, SRI International, 1983.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Johan Montelius: He received his MS degree in computer science from the University of Uppsala, in 1989. Since 1990 he has been working at the Swedish Institute of Computer Science, where he is currently a member of the Programming Systems group.

His main area of interest is language design and implementation. He is currently working with a parallel implementation of AKL for shared-memory systems.

Khayri A. M. Ali: Docent (Leader of the research projects on parallel implementation of logic and concurrent constraints programming systems at SICS), Swedish Institute of Computer Science, Box 1263, S-164 28 Kista, Sweden.

His research interests include techniques for parallel and distributed implementation of functional, logic, concurrent constraints and objectoriented programming systems. He is also interested in performance analysis and garbage collection. His current interest is efficient techniques for distributed implementation of the concurrent programming language Oz.

About this article

Cite this article

Montelius, J., Ali, K.A.M. An And/Or-Parallel implementation of AKL. NGCO 14, 31–52 (1996). https://doi.org/10.1007/BF03037217

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Keywords

Navigation