Citation
Casas, Amadeo and Carro Liñares, Manuel and Hermenegildo, Manuel V.
(2007).
Towards a high-level implementation of
execution primitives for non-restricted,
independent and-parallelism.
Monografía (Technical Report).
Facultad de Informática (UPM), Madrid, España.
Abstract
Most 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. Therefore, we handle a significant portion of the parallel
implementation mechanism 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 amount of
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.