Results 1 - 10
of
73
ACE: And/Or-parallel Copying-based Execution of Logic Programs
, 1991
"... In this paper we present a novel execution model for parallel implementation of logic programs which is capable of exploiting both independent and-parallelism and or-parallelism in an efficient way. This model extends the stack copying approach, which has been successfully applied in the Muse system ..."
Abstract
-
Cited by 62 (38 self)
- Add to MetaCart
In this paper we present a novel execution model for parallel implementation of logic programs which is capable of exploiting both independent and-parallelism and or-parallelism in an efficient way. This model extends the stack copying approach, which has been successfully applied in the Muse system to implement or-parallelism, by integrating it with proven techniques used to support independent and-parallelism. We show how all solutions to non-deterministic andparallel goals are found without repetitions. This is done through recomputation as in Prolog (and in various and-parallel systems, like &-Prolog and DDAS), i.e., solutions of and-parallel goals are not shared. We propose a scheme for the efficient management of the address space in a way that is compatible with the apparently incompatible requirements of both and- and or-parallelism. We also show how the full Prolog language, with all its extra-logical features, can be supported in our and-or parallel system so that its sequent...
A Methodology for Granularity Based Control of Parallelism in Logic Programs
- Journal of Symbolic Computation, Special Issue on Parallel Symbolic Computation
, 1996
"... ..."
ACE: A High-Performance Parallel Prolog System for Parallel Symbolic Computing
"... : In recent years a lot of research has been invested in parallel processing of numerical applications. However, parallel processing of Symbolic and Artificial Intelligence applications has largely been ignored. This paper presents a high performance system for parallel symbolic computing based on ..."
Abstract
-
Cited by 42 (21 self)
- Add to MetaCart
: In recent years a lot of research has been invested in parallel processing of numerical applications. However, parallel processing of Symbolic and Artificial Intelligence applications has largely been ignored. This paper presents a high performance system for parallel symbolic computing based on the logic programming paradigm. Logic programming is a paradigm of programming based on a subset of first order logic. An important property of logic programming languages, such as Prolog, is that their declarative semantics is largely independent of the order in which different operations are performed during execution of the program. The different operations can also be performed in parallel, and as a result it is possible to exploit substantial parallelism from Prolog programs, that have been written for sequential machines, without requiring the user to make any modifications to them. In this paper we present a model called ACE that accomplishes this. ACE is a computational model...
Some Paradigms for Visualizing Parallel Execution of Logic Programs
- In 1993 International Conference on Logic Programming
, 1993
"... This paper addresses the design of visual paradigms for studying the parallel execution of logic programs. First, an intuitive method is proposed for arriving at the design of a paradigm and its implementation as a tool for a given model of parallelism. This method is based on stepwise refinement st ..."
Abstract
-
Cited by 27 (12 self)
- Add to MetaCart
This paper addresses the design of visual paradigms for studying the parallel execution of logic programs. First, an intuitive method is proposed for arriving at the design of a paradigm and its implementation as a tool for a given model of parallelism. This method is based on stepwise refinement starting from the definition of basic notions such as events and observables and of some precedence relationships among events which hold for the given model of parallelism. The method is then applied to several types of parallel execution models for logic programs (Or-- parallelism, Restricted And--parallelism, Determinate Dependent And parallelism) for which visualization paradigms are designed. Finally, VisAndOr, a tool which implements all of these paradigms is presented, together with a discussion of its usefulness through examples. 1 Introduction Writing programs for parallel hardware has traditionally been considered a difficult task both because of the intrinsic difficulty of having ...
The Muse Approach to Or-Parallel Prolog
- International Journal of Parallel Programming
, 1994
"... Muse (Multi-sequential Prolog engines) is a simple and efficient approach to Orparallel execution of Prolog programs. It is based on having several sequential Prolog engines, each with its local address space, and some shared memory space. It is currently implemented on a 7-processors machine with l ..."
Abstract
-
Cited by 23 (6 self)
- Add to MetaCart
Muse (Multi-sequential Prolog engines) is a simple and efficient approach to Orparallel execution of Prolog programs. It is based on having several sequential Prolog engines, each with its local address space, and some shared memory space. It is currently implemented on a 7-processors machine with local/shared memory constructed at SICS, a 16-processors Sequent Symmetry, a 96-processors BBN Butterfly I, and a 45-processors BBN Butterfly II. The sequential SICStus Prolog system has been adapted to Or-parallel implementation. Extra overhead associated with this adaptation is very low in comparison with the other approaches. The speed-up factor is very close to the number of processors in the system for a large class of problems. The goal of this paper is to present the Muse execution model, some of its implementation issues, a variant of Prolog suitable for multiprocessor implementations, and some experimental results obtained from two different multiprocessor systems. Key Words: Or-Par...
Concurrency in Prolog Using Threads and a Shared Database
- In 1999 International Conference on Logic Programming
, 1999
"... Concurrency in Logic Programming has received much attention in the past. One problem with many proposals, when applied to Prolog, is that they involve large modications to the standard implementations, and/or the communication and synchronization facilities provided do not t as naturally within ..."
Abstract
-
Cited by 22 (12 self)
- Add to MetaCart
Concurrency in Logic Programming has received much attention in the past. One problem with many proposals, when applied to Prolog, is that they involve large modications to the standard implementations, and/or the communication and synchronization facilities provided do not t as naturally within the language model as we feel is possible. In this paper we propose a new mechanism for implementing synchronization and communication for concurrency, based on atomic accesses to designated facts in the (shared) database. We argue that this model is comparatively easy to implement and harmonizes better than previous proposals within the Prolog control model and standard set of built-ins. We show how in the proposed model it is easy to express classical concurrency algorithms and to subsume other mechanisms such as Linda, variable-based communication, or classical parallelism-oriented primitives. We also report on an implementation of the model and provide performance and resourc...
A High Performance OR-parallel Prolog System
, 1992
"... PROLOG, the most popular logic programming language, has been developed for single-processor computers. The implementations of sequential Prolog became efficient with the development of the Warren Abstract Machine (WAM) and are still improving. Today many parallel computers are commercially availabl ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
PROLOG, the most popular logic programming language, has been developed for single-processor computers. The implementations of sequential Prolog became efficient with the development of the Warren Abstract Machine (WAM) and are still improving. Today many parallel computers are commercially available and the question is how to utilize this opportunity to speed up the execution of Prolog programs. Our approach has been to study and develop efficient techniques for implementing OR-parallel systems for the full Prolog language on UMA and NUMA computers. Based on those techniques a high performance OR-parallel Prolog system has been designed and implemented on six different parallel computers. The system has a number of processes, called workers, consisting of two components: the engine, which does the actual Prolog work, and the scheduler. The schedulers, working together, divide the available work between the engines and support the sequential semantics of Prolog. We have extended th...
Analysis of Or-Parallel Execution Models
, 1993
"... We discuss fundamental limitations of or-parallel execution models of nondeterministic programming languages. Or-parallelism corresponds to executing the dierent nondeterministic computational paths in parallel. A natural way to represent the state of (parallel) execution of a nondeterministic progr ..."
Abstract
-
Cited by 18 (9 self)
- Add to MetaCart
We discuss fundamental limitations of or-parallel execution models of nondeterministic programming languages. Or-parallelism corresponds to executing the dierent nondeterministic computational paths in parallel. A natural way to represent the state of (parallel) execution of a nondeterministic program is by means of an or-parallel tree. We identify three important criteria that underlie the design of or-parallel implementations based upon the or-parallel tree: constant-time access to variables, constant-time task creation, and constant-time task switching, where the term `constant-time' means that the time for these operations is independent of the number of nodes in the or-parallel tree, as well as the size of each node. We prove that all three criteria cannot be simultaneously satised by any or-parallel execution model based on a nite number of processors but unbounded memory. We discuss in detail the application of our result to the class of logic programming languages, and show ...
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.
Automatic Parallelization of Irregular and Pointer-Based Computations: Perspectives from Logic and Constraint Programming
- Parallel Computing
, 1997
"... . Irregular computations pose some of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures which make heavy use of pointer ..."
Abstract
-
Cited by 16 (12 self)
- Add to MetaCart
. Irregular computations pose some of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures which make heavy use of pointers. This complicates all the steps of a parallelizing compiler, from independence detection to task partitioning and placement. In the past decade there has been significant progress in the development of parallelizing compilers for logic programming and, more recently, constraint programming. The typical applications of these paradigms frequently involve irregular computations, which arguably makes the techniques used in these compilers potentially interesting. In this paper we introduce in a tutorial way some of the problems faced by parallelizing compilers for logic and constraint programs. These include the need for inter-procedural pointer aliasing analysis for independence detection and...

