Towards a high-level implementation of execution primitives for unrestricted, independent and-parallelism

  • Authors:
  • Amadeo Casas;Manuel Carro;Manuel V. Hermenegildo

  • Affiliations:
  • Depts. of Comp. Science and Electr. and Comp. Eng., Univ. of New Mexico;School of Comp. Science, Univ. Politécnica de Madrid, Spain and IMDEA-Software;Depts. of Comp. Science and Electr. and Comp. Eng., Univ. of New Mexico and School of Comp. Science, Univ. Politécnica de Madrid, Spain and IMDEA-Software

  • Venue:
  • PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most efficient implementations of parallel logic programming rely on complex low-level machinery which is arguably difficult to implement and modify. We explore an alternative approach aimed at taming that complexity by raising core parts of the implementation to the source language level for the particular case of and-parallelism. We handle a significant portion of the parallel implementation at the Prolog level with the help of a comparatively small number of concurrency-related primitives which take care of lower-level tasks such as locking, thread management, stack set management, etc. The approach does not eliminate altogether modifications to the abstract machine, but it does greatly simplify them and it also facilitates experimenting with different alternatives. We show how this approach allows implementing both restricted and unrestricted (i.e., non fork-join) parallelism. Preliminary experiments show that the performance sacrificed is reasonable, although granularity control is required in some cases. Also, we observe that the availability of unrestricted parallelism contributes to better observed speedups.