Results 1 -
9 of
9
Parallel Execution of Prolog Programs: A Survey
"... Since the early days of logic programming, researchers in the field realized the potential for exploitation of parallelism present in the execution of logic programs. Their high-level nature, the presence of non-determinism, and their referential transparency, among other characteristics, make logic ..."
Abstract
-
Cited by 53 (23 self)
- Add to MetaCart
Since the early days of logic programming, researchers in the field realized the potential for exploitation of parallelism present in the execution of logic programs. Their high-level nature, the presence of non-determinism, and their referential transparency, among other characteristics, make logic programs interesting candidates for obtaining speedups through parallel execution. At the same time, the fact that the typical applications of logic programming frequently involve irregular computations, make heavy use of dynamic data structures with logical variables, and involve search and speculation, makes the techniques used in the corresponding parallelizing compilers and run-time systems potentially interesting even outside the field. The objective of this paper is to provide a comprehensive survey of the issues arising in parallel execution of logic programming languages along with the most relevant approaches explored to date in the field. Focus is mostly given to the challenges emerging from the parallel execution of Prolog programs. The paper describes the major techniques used for shared memory implementation of Or-parallelism, And-parallelism, and combinations of the two. We also explore some related issues, such as memory
Abstract machines for programming language implementation
- FUTURE GENERATION COMPUTER SYSTEMS
, 2000
"... We present an extensive, annotated bibliography of the abstract machines designed for each of the main programming paradigms (imperative, object oriented, functional, logic and concurrent). We conclude that whilst a large number of efficient abstract machines have been designed for particular langua ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
We present an extensive, annotated bibliography of the abstract machines designed for each of the main programming paradigms (imperative, object oriented, functional, logic and concurrent). We conclude that whilst a large number of efficient abstract machines have been designed for particular language implementations, relatively little work has been done to design abstract machines in a systematic fashion.
Relating Data-Parallelism and (And-) Parallelism in Logic Programs
, 1995
"... Much work has been done in the areas of and--parallelism and data parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and--) parallel models offer generality, being able to ex ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
Much work has been done in the areas of and--parallelism and data parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and--) parallel models offer generality, being able to exploit parallelism in a large class of programs (including that exploited by data parallelism techniques). Data parallelism techniques on the other hand offer increased performance for a restricted class of programs. The thesis of this paper is that these two forms of parallelism are not fundamentally different and that relating them opens the possibility of obtaining the advantages of both within the same system. Some relevant issues are discussed and solutions proposed. The discussion is illustrated through visualizations of actual parallel executions implementing the ideas proposed. Keywords: Parallel Logic Programming, And-Parallelism, Data-Parallelism, Fast Task Startup, Scheduling. 1 I...
Parallel Bounded Quantification-Preliminary Results
, 1992
"... We have extended D. H. D. Warren's abstract machine for sequential Prolog with parallel instructions that implement bounded quantifications, an extension to Prolog proposed by Barklund and Bevemyr. These instructions are intended for parallel computers supporting the data parallel programming mo ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
We have extended D. H. D. Warren's abstract machine for sequential Prolog with parallel instructions that implement bounded quantifications, an extension to Prolog proposed by Barklund and Bevemyr. These instructions are intended for parallel computers supporting the data parallel programming model. Luther, an emulator for the sequential abstract machine implemented in the C programming language, has been extended with these instructions, implemented in the data parallel C* programming language. We have coded three example programs that use bounded quantifications, and run them in the emulator on a Connection Machine model 200, a SIMD parallel computer. We compare the run times on this parallel computer with the run times obtained with a sequential implementation of bounded quantifications on a SUN-4M sequential computer. The best result is that one parallel bounded quantification program runs 30 times faster on the Connection Machine than an ordinary recursive program ...
Survey of Parallel Context-Free Parsing Techniques
, 1997
"... This report describes research done in the context of a subproject of the HPCN project IMPACT. The IMPACT project is headed by the ING bank and is founded by the organization for High Performance Computing and Networking (HPCN). The aim of the specific subproject, in the context of which this report ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
This report describes research done in the context of a subproject of the HPCN project IMPACT. The IMPACT project is headed by the ING bank and is founded by the organization for High Performance Computing and Networking (HPCN). The aim of the specific subproject, in the context of which this report has been written, is to develop (techniques for) natural language interfaces to information resources, focusing on the use of high-performance computers to achieve acceptable response times. This report is part of the "Parallel Parsing I" research topic. IMPACT-NLI-1997-1 ii Preface IMPACT IMPACT-NLI-1997-1 IMPACT iii Contents Preface i 1 Introduction 1 2 Basics 3
Prolog on the Multithreaded Datarol-II Machine based on the Logicflow Execution Model
- Proceedings of SPDP'96
, 1996
"... The paper presents how a massively parallel Prolog implementation can be achieved on the multithreaded Datarol-II machine. First the main features of the parallel Logicflow Model is summarized which was developed for implementing Prolog on massively parallel computers. Prolog programs are transforme ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
The paper presents how a massively parallel Prolog implementation can be achieved on the multithreaded Datarol-II machine. First the main features of the parallel Logicflow Model is summarized which was developed for implementing Prolog on massively parallel computers. Prolog programs are transformed into a dataflow-like graph called the Logicflow Graph in which nodes are macro dataflow nodes and tokens represent macrothreads. The Datarol-II architecture efficiently supports both the management of macrothreads derived from the Logicflow Model and the management of microthreads created when remote loads are necessary. The architecture of the Datarol-II machine and the macrothread management of Prolog programs are described in detail. 1. Introduction There is a growing interest in hiding remote memory access and synchronization latencies by applying the multitreaded execution mechanism in massively parallel machines. However, the application of this new method requires new compilation t...
Multi-SLD Resolution
, 1994
"... . Multi-SLD resolution is a variant of SLD resolution based on a simple idea: Let the allowed constraints be closed under disjunction, and provide a mechanism for collecting solutions to a goal and turning the solutions into a disjunctive constraint. This idea leads to an operational model of lo ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
. Multi-SLD resolution is a variant of SLD resolution based on a simple idea: Let the allowed constraints be closed under disjunction, and provide a mechanism for collecting solutions to a goal and turning the solutions into a disjunctive constraint. This idea leads to an operational model of logic programming, called data or-parallelism, in which multiple constraint environments partially replace backtracking as the operational embodiment of disjunction. The model has a natural implementation on data-parallel computers since each disjunct of a disjunctive constraint can be handled by a single (virtual) processor. In this paper, we -- formalize the notions of multi-SLD resolution, multi-derivation, multiSLD tree, and environment tree; -- prove the soundness and completeness of multi-SLD resolution; and -- describe and justify several useful optimization techniques based on the form of constraints in a multi-derivation: the distinction between engine and multi variables, t...
Design of a Resolution Multiprocessor for the Parallel Virtual Machine
- In Bosschere et al. [5
"... PAN is a process based Prolog system running in a distributed manner on the nodes of a virtual multiprocessor. It was designed to be a general purpose parallel logic programming system that would be resilient to software and hardware evolution. Programs can explicitly control parallelism through pas ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
PAN is a process based Prolog system running in a distributed manner on the nodes of a virtual multiprocessor. It was designed to be a general purpose parallel logic programming system that would be resilient to software and hardware evolution. Programs can explicitly control parallelism through passing general terms synchronously or asynchronously among PAN's Prolog engines. Alternatively several forms of parallelism can be implicitly extracted by compilation techniques and runtime scheduling on top of this architecture. The computational platform or Parallel Virtual Machine is a meshed set of daemons on a network of heterogeneous workstations offering common message passing, configuration and job control services. PAN is presented to users under X Window as a multi-headed extension of single processor Prolog systems. An interface to each Prolog engine is displayed in a separate X widget together with a console window to the PVM, and window based methods are supported for simultaneous...
Sequential and Parallel Iteration in Logic Programs
"... Iterative programs are more elegant than their recursive counterparts for many problems and can be executed more efficiently than recursive programs run in the usual way on sequential computers. Moreover, they can often be executed with low overhead on parallel computers. We propose to employ bo ..."
Abstract
- Add to MetaCart
Iterative programs are more elegant than their recursive counterparts for many problems and can be executed more efficiently than recursive programs run in the usual way on sequential computers. Moreover, they can often be executed with low overhead on parallel computers. We propose to employ bounded quantifications as an explicit iteration construct for Prolog programs and show that they do run efficiently on both sequential and data parallel computers. We increase the usefulness of our approach by showing how the iteration in an interesting class of recursive programs can be made explicit by transformation to bounded quantification programs. 1 INTRODUCTION The main thesis proposed and defended in this article is that iteration, in particular definite iteration, can be run more efficiently than general recursion also for logic programs, and that this should be exploited. A second point, which we have already developed elsewhere [5], is that including an explicit definite i...

