An and/or-parallel implementation of AKL

被引:4
|
作者
Montelius, J
Ali, KAM
机构
[1] Swed. Institute of Computer Science, SICS, Box 1263
关键词
logic programming; concurrent language; parallel implementation; binding scheme;
D O I
10.1007/BF03037217
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:31 / 52
页数:22
相关论文
共 50 条