Coordination and Concurrency in Multi-engine Prolog

International audience We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure.We advocate a combination of coroutining constructs with focus on expressiveness a...

Full description

Bibliographic Details
Main Author: Tarau, Paul
Other Authors: University of North Texas (UNT), Wolfgang Meuter, Gruia-Catalin Roman, TC 6, WG 6.1
Format: Conference Object
Language:English
Published: HAL CCSD 2011
Subjects:
Online Access:https://hal.inria.fr/hal-01582990
https://hal.inria.fr/hal-01582990/document
https://hal.inria.fr/hal-01582990/file/978-3-642-21464-6_11_Chapter.pdf
https://doi.org/10.1007/978-3-642-21464-6_11
Description
Summary:International audience We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure.We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism.In this context, native multi-threading is made available to the application programmer as a set of high-level primitives with a declarative flavor while cooperative constructs provide efficient and predictable coordination mechanisms. As illustrations of our techniques, a parallel fold operation as well as cooperative implementations of Linda blackboards and publish/subscribe are described.