Analysis of parallelism in logic programs. (volumes i and ii)
暂无分享,去创建一个
The research reported in this thesis characterizes and explores various aspects of parallelism in the framework of logic programming. Specifically, we analyze communication, process and resource control with respect to parallel execution of logic programs.
We introduce a computational model for AND/OR parallel execution of logic programs. The computational model is shown to support both old and new communication paradigms for the parallel interpretation of logic programs. The primitives that comprise the model are used to synthesize two parallel interpreters: Disjunctive System (DS) interpreters and Intelligent Channel Interpreters.
We show that the Intelligent Channel allows us to introduce parallelism to the execution of logic programs without the need for a separate binding environment for every active OR-branch.
Subsequently, we investigate several candidate control constructs for literal sequencing in terms of their efficiency, difficulty of implementation and closeness to the spirit of logic programming.
The investigated methods are: unification, control driven execution, data driven execution and event driven execution.
A simple event-based language is devised to control the execution of PRISM/Concurrent Prolog control structures. Based on this scheme several efficient implementations are presented.
A new control construct for sequencing atoms is proposed. We show that the new construct subsumes the notion of input/read-only variables. We demonstrate the utility of the construct to pass protected structures and to define interrupt-like execution in the framework of logic programs.
We introduce a simplified language called Controlled Logic Programs (CLP). The language is based on a two level language. The Logic Level is defined by the Horn-clause program, whereas the Control Level is provided by two simple primitives that allow the user to monitor the changing control state of the program.
The advantages of the language are: (1) It has a simple event based sequencing mechanism that allows user accessible control information. (2) The control exhibits a high degree of locality. (3) The control state and the logical state are syntactically distinguished.
Finally, we investigate parallelism in logic programs with respect to an efficient implementation on a multiprocessor.
Three methods for mapping the execution of a shared memory parallel interpreter to a multiprocessor are described and analyzed.
Since searching and intersecting (joining) are key components in many logic programming systems, optimal parallel algorithms for searching and intersection are developed.