Results 1 - 10
of
62
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
Distributed Programming with Logic Tuple Spaces
- New Generation Computing
, 1994
"... s are available from the same host in the directory /pub/TR/UBLCS/ABSTRACTS in plain text format. All local authors can be reached via e-mail at the address last-name@cs.unibo.it. UBLCS Technical Report Series 92-1 Mapping Parallel Computations onto Distributed Systems in Paralex, by O. Babao glu, L ..."
Abstract
-
Cited by 41 (6 self)
- Add to MetaCart
s are available from the same host in the directory /pub/TR/UBLCS/ABSTRACTS in plain text format. All local authors can be reached via e-mail at the address last-name@cs.unibo.it. UBLCS Technical Report Series 92-1 Mapping Parallel Computations onto Distributed Systems in Paralex, by O. Babao glu, L. Alvisi, A. Amoroso and R. Davoli, January 1992. 92-2 Parallel Scientific Computing in Distributed Systems: The Paralex Approach, by L. Alvisi, A. Amoroso, O. Babao glu, A. Baronio, R. Davoli and L. A. Giachini, February 1992. 92-3 Run-time Support for Dynamic Load Balancing and Debugging in Paralex, by O. Babao glu, L. Alvisi, S. Amoroso, R. Davoli, L. A. Giachini, September 1992. 92-4 Paralex: An Environment for Parallel Programming in Distributed Systems, by O. Babao glu, L. Alvisi, S. Amoroso, R. Davoli, L. A. Giachini, October 1992. 93-1 Consistent Global States of Distributed Systems: Fundamental Concepts and Mechanism, by O. Babao glu and K. Marzullo, January 1993. 93-2 Understand...
Compositional Parallel Programming Languages
- ACM Transactions on Programming Languages and Systems
, 1996
"... this paper, we discuss alternative approaches to the realization of this principle, which holds that properties of program components should be preserved when those components are composed in parallel with other program components. We review two programming languages, Strand and Program Composition ..."
Abstract
-
Cited by 21 (3 self)
- Add to MetaCart
this paper, we discuss alternative approaches to the realization of this principle, which holds that properties of program components should be preserved when those components are composed in parallel with other program components. We review two programming languages, Strand and Program Composition Notation, that support compositionality via a small number of simple concepts, namely monotone operations on shared objects, a uniform addressing mechanism, and parallel composition. Both languages have been used extensively for large-scale application development, allowing us to provide an informed assessment of their strengths and weaknesses. We observe that while compositionality simplifies development of complex applications, the use of specialized languages hinders reuse of existing code and tools, and the specification of domain decomposition strategies. This suggests an alternative approach based on small extensions to existing sequential languages. We conclude the paper with a discussion of two languages that realize this strategy. Categories and Subject Descriptors: D.3.2 [Programming Languages]: Language Classifications ---Concurrent, distributed, and parallel languages; D.3.3 [Programming Languages]: Language Constructs and Features---Concurrent programming structures General Terms: Languages Additional Key Words and Phrases: Compositionality, Parallel Languages, Parallel Programming ACM Transactions on Programming Languages and Systems, Vol. 8, No. 1, January 1999. Compositional Parallel Programming Languages \Delta 113 1. INTRODUCTION Parallel programming is widely regarded as difficult: more difficult than sequential programming, and perhaps (at least this is our view) more difficult than it needs to be. In addition to the normal programming concerns, the para...
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...
Performance of the Compiler-based Andorra-I System
- IN PROCEEDINGS OF THE TENTH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING
, 1993
"... Andorra-I is an experimental parallel Prolog system based on the Basic Andorra model. This model supports both dependent and-parallelism, by executing determinate goals in parallel, and or-parallelism, stemming from the nondeterminate goals. In this paper, we present a new compiler-based version of ..."
Abstract
-
Cited by 16 (10 self)
- Add to MetaCart
Andorra-I is an experimental parallel Prolog system based on the Basic Andorra model. This model supports both dependent and-parallelism, by executing determinate goals in parallel, and or-parallelism, stemming from the nondeterminate goals. In this paper, we present a new compiler-based version of the Andorra-I system and discuss its performance. We study the system with a wide set of real-life, non-trivial logic programming applications. As Andorra-I provides a powerful programming model, we are able to include Prolog programs, committed-choice programs, and Andorra-style programs. The results show that the system is very effective at exploiting both forms of parallelism, that it compares well with exclusively or-parallel and exclusively and-parallel systems, and that the extra complexity of the model is manageable. Basic performance compares quite well with other compiler-based systems such as SICStus and JAM.
The Data Diffusion Machine with a Scalable Point-to-Point Network
, 1993
"... The Data Diffusion Machine (DDM) is a virtual shared memory architecture. Data items in the machine have no fixed home location but instead migrate to the processors that are actually using the data. Coherency is maintained with a hierarchical directory scheme. In an uncongested machine, all memory ..."
Abstract
-
Cited by 14 (4 self)
- Add to MetaCart
The Data Diffusion Machine (DDM) is a virtual shared memory architecture. Data items in the machine have no fixed home location but instead migrate to the processors that are actually using the data. Coherency is maintained with a hierarchical directory scheme. In an uncongested machine, all memory operations complete in a time bounded by the logarithm of the number of processors. As the machine load increases, the natural combining of the DDM hierarchy allows better network utilisation and helps maintain performance. This paper proposes an implementation of the DDM with split directories interconnected with a point-to-point network. This is easier to construct and scales better than previous designs. The paper also defines the protocol that is needed to maintain consistency on this split tree (even though the network provides a number of paths between pairs of processors). Conflictingrequests (writes on different processors to the same data item) are resolved in a time bounded by the ...
Parallel CLP on Heterogeneous Networks
- In Proceedings of the ICLP'94
, 1994
"... The combination of Or-Parallelism and Constraint Logic Programming (CLP) has proven to be very effective in tackling large combinatorial problems in real-life applications. However, existing implementations have focused on shared-memory multiprocessors. In this paper, we investigate how we can effic ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
The combination of Or-Parallelism and Constraint Logic Programming (CLP) has proven to be very effective in tackling large combinatorial problems in real-life applications. However, existing implementations have focused on shared-memory multiprocessors. In this paper, we investigate how we can efficiently implement Or-Parallel CLP languages on heterogeneous networks, where communication bandwidth is much lower and heterogeneity requires all communication to be in a machine-independent format. Since a recomputation-based system has the potential to solve these problems, we analyse the performance of a prototype using this approach. On a representative set of CLP programs we show that close to optimal speedups can be obtained on networks for programs generating large search spaces and that the overhead of recomputation is surprisingly low. We compare this approach with that of stack-copying and also discuss how side-effects can be dealt with during recomputation. The main conclusion of the paper is that incremental recomputation is a clean and efficient execution model for Or-Parallel CLP systems on heterogeneous networks.
Distance: a New Metric for Controlling Granularity for Parallel Execution
- In 1997 Post ILPS Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming
, 1998
"... Granularity control is a method to improve parallel execution performance by limiting excessive parallelism. The general idea is that if the gain obtained by executing a task in parallel is less than the overheads required to support parallel execution, then the task is better executed sequentially. ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
Granularity control is a method to improve parallel execution performance by limiting excessive parallelism. The general idea is that if the gain obtained by executing a task in parallel is less than the overheads required to support parallel execution, then the task is better executed sequentially. Traditionally, in logic programming task size is estimated from the sequential time-complexity of evaluating the task. Tasks are only executed in parallel if task size exceeds a pre-determined threshold. We argue in this paper that the estimation of complexity on its own is not an ideal metric for improving the performance of parallel programs through granularity control. We present a new metric for measuring granularity, based on a notion of distance. We present some initial results with two very simple methods of using this metric for granularity control. We then discuss how more sophisticated granularity control methods can be devised using the new metric. 1 Introduction Granularity con...
Strategies for Scheduling And- and Or-Work in Parallel Logic Programming Systems
- Department of Computer Science, University of Bristol
, 1994
"... Recent parallel logic programming systems, such as Andorra-I, can exploit multiple forms of parallelism, and- and or-parallelism, in logic programs. In order to effectively exploit both kinds of parallelism, such systems must address one problem not yet tackled in logic programming systems, namely h ..."
Abstract
-
Cited by 9 (7 self)
- Add to MetaCart
Recent parallel logic programming systems, such as Andorra-I, can exploit multiple forms of parallelism, and- and or-parallelism, in logic programs. In order to effectively exploit both kinds of parallelism, such systems must address one problem not yet tackled in logic programming systems, namely how to distribute resources between two different kinds of parallel work, andand or-work. This paper proposes solutions to this problem. We present two dynamic scheduling strategies to distribute and- and or-work in parallel logic programming systems. One strategy, work-based, guides its decisions by looking at the amount of current and- and or-work available in an application during execution. The other strategy, efficiency-based, is designed around the intuition that workers should spend most of their execution time doing useful work, i.e., performing reductions. Results show that both strategies work reasonably well when both kinds of parallelism are available. Both strategies could be app...
A Flexible Scheduler for the Andorra-I System
- LNCS
, 1991
"... A flexible scheduler for distributing and- and or- parallel work in the Andorra-I system is presented. The scheduler allows workers to move freely between teams. Its strategy is based on estimates of and- and or- parallelism available in the execution tree. Preliminary results show that in most case ..."
Abstract
-
Cited by 9 (1 self)
- Add to MetaCart
A flexible scheduler for distributing and- and or- parallel work in the Andorra-I system is presented. The scheduler allows workers to move freely between teams. Its strategy is based on estimates of and- and or- parallelism available in the execution tree. Preliminary results show that in most cases we can reach or surpass the best performance of Andorra-I running with any fixed team configuration. Since the teams are configured dynamically and automatically, the user does not need to be concerned with choosing an appropriate configuration. Further work is being done to improve the scheduler by using data obtained from compile-time analysis. Keywords: And/Or-parallelism, Multiprocessors, Scheduling. 1 Introduction There are two main sources of parallelism in logic programming, namely or- and andparallelism. Or- parallelism is exploited when several alternative clauses for a goal are executed in parallel. And- parallelism is exploited when we execute two or more goals of the same cla...

